Dec 20 2004

Le porte TCP/UDP


by tonycrypt

In un ufficio postale esistono vari sportelli, ognuno dei quali svolge un servizio ben determinato: uno per le raccomandate, uno per i pacchi, uno per i telegrammi, uno per vaglia e conti correnti, uno per il pagamento delle pensioni, ecc… Analogamente, una macchina connessa in rete ha una serie di porte, ognuna delle quali ha un numero ed e’ associata a un ben determinato servizio. Gli indirizzi di porta vanno da 0 a 65535, e quelli inferiori a 1024 sono i cosiddetti Well Known Services (Servizi Ben Noti).
I piu’ usati sono il 21 per l’ftp, il 23 per telnet, il 25 per smtp (invio di posta), 80 (http, pagine web; molti server usano anche la porta 8080), il 110 per pop3 (ricezione di posta), il 119 per nntp (le news). Perche’ ci si possa collegare a una determinata porta, occorre che sulla macchina ci sia un server in ascolto su di essa. Per esempio, quando riusciamo a spedire una mail a qualcuno, e’ perche’ il server di posta del nostro provider ha un “demone” in ascolto permanente sulla porta 25, mentre se l’invio fallisce significa che quel programma non e’ in esecuzione (macchina spenta perche’ guasta, oppure il programma stesso ha dato i numeri).
Per informazioni più dettagliate sulla funzione delle porte più usate, potete scaricare un piccolo file di testo cliccando su PORTE.ZIP

Ma è opportuno osservare che, purtroppo, da una porta possono entrare anche intrusi malintenzionati. Non bisogna pero’ farsi prendere dalla frenesia di chiudere tutte le porte. Infatti, se una porta e’ aperta e’ (normalmente) perche’ ci deve passare qualche dato “legittimo”, come la porta 80 su macchine che ospitano un server web. In generale, prima di chiudere una porta bisogna sapere perche’ sia aperta; per esempio, il famigerato ICQ apre una porta per ogni comunicazione che ha in corso, e queste non cadono nell’intervallo WKP, formato dalle porte <1024. E’ possibile rendersene conto aprendo una shell MS-DOS con ICQ attivo e scrivendo il comando “netstat -na” (senza virgolette) che mostrerà tutte le porte attive e l’indirizzo remoto a cui sono connesse, oltre allo stato della connessione (“netstat /?” per avere tutte le opzioni).
Ci si può rendere conto del fatto che qualcuno stia tentando di trovare una porta aperta nel nostro computer aprendo (nel caso di Windows) un prompt MS-DOS e digitando il comando:

netstat -snap tcp

In tal modo è possibile visionare il numero di porte aperte scansionate dall’esterno (solo per le porte aperte e’ possibile sapere se sono state scansionate). In particolare, il valore indicato e’ il numero di scansioni “invisibili” avvenute in successione su porte che un nosro ipotetico avversario ha trovato aperte (NON, come in Linux, il totale delle scansioni che ha tentato).
L’argomento è comunque molto lungo e pubblicherò ulteriori approfondimenti appena possibile. Al momento una delle soluzioni migliori consiste nel far uso di server proxy e di filewalls.