Oggi voglio parlarvi di uno dei comandi più conosciuti, il comando netstat. Il suo scopo è quello di restituirci informazioni complete sulle connessioni del nostro sistema come le statistiche dell’interfacce, tabella di routing, maschera di connessione, elenco delle connessioni in ascolto o attive ecc ecc.
Come sempre, informazioni complete anche sulle opzioni di netstat potete averle digitando man netstat sempre da terminale. Lo scopo di questo mini how-to è quello di mostrarvi alcuni comandi più utilizzati di netstat.
Netstat -a
Digitate da terminale questo comando per avere una lista di tutte le porte upd e tcp attive sul sistema. Ecco un possibile output:
tanino@tanino-laptop:~$ netstat -a
Connessioni internet attive (server e stabiliti)
Proto Recv-Q Send-Q Indirizzo locale Indirizzo esterno Stato
tcp 0 0 localhost:ipp *:* LISTEN
tcp 0 0 localhost:50240 *:* LISTEN
tcp 0 0 localhost:mysql *:* LISTEN
tcp 0 0 localhost:53684 localhost:50240 ESTABLISHED
tcp 0 0 localhost:40248 localhost:50240 TIME_WAIT
tcp 1 0 localhost:53680 localhost:50240 CLOSE_WAIT
tcp 0 0 localhost:50240 localhost:53698 ESTABLISHED
La lista è molto lunga e ve ne ho incollata solo una parte! Se non utilizzate l’opzione -a i socket usati dai processi server non saranno mostrati.
Netstat -at
Abbiamo aggiunto il flag t, l’unica differenza è che adesso avremo la lista delle sole porte TCP:
tanino@tanino-laptop:~$ netstat -at
Connessioni internet attive (server e stabiliti)
Proto Recv-Q Send-Q Indirizzo locale Indirizzo esterno Stato
tcp 0 0 localhost:ipp *:* LISTEN
tcp 0 0 localhost:50240 *:* LISTEN
tcp 0 0 localhost:mysql *:* LISTEN
Netstat -au
Simile al precedente ma con la differenza che ora verranno dati in output solo le connessioni attive riguardanti i processi UDP:
tanino@tanino-laptop:~$ netstat -au
Connessioni internet attive (server e stabiliti)
Proto Recv-Q Send-Q Indirizzo locale Indirizzo esterno Stato
udp 0 0 *:bootpc *:*
udp 0 0 *:57554 *:*
udp 0 0 *:mdns *:*
Netstat -an
Aggiungengo invece questo flag avrete una piccola modifica nell’output. Vi verranno sempre mostrate tutte le connessioni ma questa volta non in formato hostname ma numerico.
Connessioni internet attive (server e stabiliti)
Proto Recv-Q Send-Q Indirizzo locale Indirizzo esterno Stato
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:50240 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp 0 0 192.168.1.3:51012 74.125.159.147:80 TIME_WAIT
tcp 0 0 127.0.0.1:53684 127.0.0.1:50240 ESTABLISHED
Netstat -l
Vi restituirà solo la lista delle connessioni in ascolto ( listening ):
tanino@tanino-laptop:~$ netstat -l
Connessioni internet attive (solo server)
Proto Recv-Q Send-Q Indirizzo locale Indirizzo esterno Stato
tcp 0 0 localhost:ipp *:* LISTEN
tcp 0 0 localhost:50240 *:* LISTEN
tcp 0 0 localhost:mysql *:* LISTEN
Naturalmente anche qui potete aggiungere il flag t o u avendo quindi per -lt e -lu solo le connessioni in listening riguardanti rispettivamnte le porte tcp o udp.
Netstat -s
Avrete una completa descrizione delle statistiche, la lista è abbastanza lunga!
tanino@tanino-laptop:~$ netstat -s
Ip:
24557 pacchetti totali ricevuti
2 con indirizzi non validi
0 inoltrati
0 pacchetti entranti scartati
24465 pacchetti entranti consegnati
20775 richieste inviate
Icmp:
0 messaggi ICMP ricevuti
0 messaggi ICMP in input falliti.
Istogramma input ICMP:
8 messaggi ICMP inviati
0 messaggi ICMP falliti
Netstat -c
Qui invece avrete un effetto continuo, ogni secondo vi verranno aggiornate le informazioni sulle connessioni ed eventuali cambiamenti di stato quindi li potete monitorare facilmente da terminale:
tanino@tanino-laptop:~/Scrivania$ netstat -c
Connessioni internet attive (senza server)
Proto Recv-Q Send-Q Indirizzo locale Indirizzo esterno Stato
tcp 0 0 localhost:53684 localhost:50240 ESTABLISHED
tcp 1 0 localhost:53680 localhost:50240 CLOSE_WAIT
tcp 0 0 localhost:50240 localhost:53698 ESTABLISHED
tcp 1 0 localhost:48494 localhost:50240 CLOSE_WAIT
tcp 1 0 localhost:53700 localhost:50240 CLOSE_WAIT
Netstat -r
Ha lo stesso output del comando route -e, ci restituisce informazioni sulla tabella di routing del kernel:
tanino@tanino-laptop:~/Scrivania$ netstat -r
Tabella di routing IP del kernel
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 wlan0
link-local * 255.255.0.0 U 0 0 0 wlan0
default mygateway1.ar7 0.0.0.0 UG 0 0 0 wlan0
Netstat -ap
Ad ogni processo verrà mostrato anche il suo PID ed il nome del processo a cui ogni socket appartiene:
tanino@tanino-laptop:~/Scrivania$ netstat -ap
Proto Recv-Q Send-Q Indirizzo locale Indirizzo esterno Stato PID/Program name
tcp 0 0 localhost:ipp *:* LISTEN -
tcp 0 0 localhost:50240 *:* LISTEN 1969/beam.smp
tcp 0 0 localhost:mysql *:* LISTEN -
tcp 0 0 localhost:53684 localhost:50240 ESTABLISHED 1790/python
tcp 1 0 localhost:53680 localhost:50240 CLOSE_WAIT 1790/python
tcp 0 0 localhost:50240 localhost:53698 ESTABLISHED
Netstat -i
Concludiamo con il flag interfaces che ci darà la lista delle interfacce di rete:
tanino@tanino-laptop:~/Scrivania$ netstat -i
Tabella dell’interfaccia del kernel
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 0 0 0 0 0 0 0 0 BMU
lo 16436 0 6255 0 0 0 6255 0 0 0 LRU
wlan0 1500 0 21165 0 0 0 16758 0 0 0 BMRU
Naturalmente questi sono solo alcuni dei flag e dei possibili usi di netstat Alla prossima!
Fonte:http://www.chimerarevo.com/2010/04/28/netstat-linux-alcuni-esempi-pratici-per-controllare-le-connessioni/