next up previous contents
Next: I principali file di Up: La configurazione manuale della Previous: Il comando host   Contents


Il comando netstat

Questo è un comando diagnostico molto utile ed estremamente complesso, che permette di visualizzare una grande quantità di informazioni relative alla rete. La trattazione di tutte le sue capacità comporterebbe un approfondimento dei concetti relativi alle reti che va al di là delle possibilità di un corso introduttivo.

Qui ne tratteremo solo un caso specifico, quello che permette di visualizzare tutte le connessioni attive sulla macchina (un po' come potrebbe fare il quadro di un centralino che mostra tutti i collegamenti in corso). Per questo è anche uno dei primi comandi che un eventuale intruso che si sia introdotto nella vostra macchina cercherà di sostituire con una sua versione ``taroccata'' perché può mostrare eventuali collegamenti ``indesiderati''.

Anche per capire questi risultati è comunque necessario di un minimo di conoscenza dei protocolli e dei servizi: è facile trovare persone che allarmano perché hanno ``un collegamento strano sulla porta 25'', e in realtà stanno semplicemente inviando la posta che hanno appena finito di scrivere.

Il comando usato con le opzioni di default mostra le informazioni riguardo a tutti i socket aperti; anche i collegamenti interni al sistema (usati da vari programmi per scambiarsi i dati con l'interfaccia dei socket) che di norma non han nulla a che fare con la rete. Per questo motivo è d'uopo specificare le opzioni -t per richiedere di visualizzare solo i socket TCP o -u per vedere quelli UDP, che sono quelli che riguardano le connessioni con la rete esterna.

Un possibile esempio del risultato di netstat è il seguente:

[piccardi@gont piccardi]$ netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 *:printer               *:*                     LISTEN
tcp        0      0 *:5865                  *:*                     LISTEN
tcp        0      0 *:webcache              *:*                     LISTEN
tcp        0      0 *:tproxy                *:*                     LISTEN
tcp        0      0 gont.earthsea.ea:domain *:*                     LISTEN
tcp        0      0 localhost:domain        *:*                     LISTEN
tcp        0      0 *:ssh                   *:*                     LISTEN
tcp        0      0 *:ipp                   *:*                     LISTEN
tcp        0      0 *:nntp                  *:*                     LISTEN
tcp        0      0 *:smtp                  *:*                     LISTEN
tcp        0      0 ppp-42-241-98-62.:32798 serverone.firenze:imaps ESTABLISHED

Il comando riporta una tabella con le indicazioni relative a ciascuna connessione. Il campo Proto riporta il protocollo della connessione. I campi Local Address e Foreign Address indicano gli indirizzi locale e remoto della stessa (che può essere stampato in forma numerica anziché usando lo switch -n), nella forma:

indirizzo:porta
dove un asterisco indica un indirizzo o una porta qualunque. Il campo State indica lo stato della connessione. Una spiegazione dettagliata del significato dei vari campi va di nuovo al di là delle possibilità di un corso introduttivo (specie per il campo State), per gli interessati mi limito a segnalare il capitolo Socket TCP elementari http://gapil.firenze.linux.itGaPiL, in cui questi concetti vengono spiegati in dettaglio.

Delle varie righe quelle che meritano attenzione sono quelle relative agli stati LISTEN ed ESTABLISHED. Lo stato LISTEN indica la presenza di un programma in ascolto sulla vostra macchina in attesa di connessione, nel caso ce ne sono vari corrispondenti a servizi come la posta, le news, il dns, la stampa via rete, gli indirizzi sono di norma non specificati in quanto la connessione può essere effettuata su uno qualunque degli indirizzi locali, da un qualunque indirizzo esterno. Lo stato ESTABLISHED indica le connessioni stabilite ed attive, e riporta nei campi degli indirizzi i due capi della connessione. Altri stati che possono essere riportati sono FIN_WAIT, TIME_WAIT, e si riferiscono a connessioni che si stanno chiudendo.


next up previous contents
Next: I principali file di Up: La configurazione manuale della Previous: Il comando host   Contents
Simone Piccardi 2002-08-08