18.5 netstat e tcpdump
Per effettuare dei test sul funzionamento della comunicazione via rete, sono utili i
comandi come netstat (man page netstat(8)) e tcpdump (man page tcpdump(8)). Il
primo è utilizzato per mostrare le connessioni di rete attive, le routing table, le
statistiche relative ai pacchetti inviati/ricevuti dalle interfacce di rete e così via,
mentre il secondo viene utilizzato per catturare i pacchetti che transitano sulle
interfacce di rete e poter così effettuare un’analisi successiva delle informazioni in essi
contenute.
____________________________________________________________________
Comando: netstat
Path: /bin/netstat
SINTASSI
$ netstat [option]
DESCRIZIONE
-
option indica la modalità di funzionamento di netstat. Può assumere i seguenti
valori:
-
-r | --route
visualizza le routing table;
-
-g | --groups
visualizza le informazioni dei membri relativi ai gruppi multicast;
-
-i iface | --interface=iface
visualizza l’elenco delle interfacce di rete o quella specificata (iface);
-
-M | --masquerade
visualizza l’elenco delle connessioni che usano la tecnica del
masquerading o NAT (v. cap. 25);
-
-s | --statistics
visualizza le statistiche per ogni protocollo;
-
-v | --verbose
indica di visualizzare più informazioni;
-
-n | --numeric
visualizza le informazioni in forma numerica per gli indirizzi IP, le
porte e gli utenti;
- --numeric-hosts
visualizza gli indirizzi IP in forma numerica (decimal dotted
notation);
- --numeric-ports
visualizza i numeri di porta in forma numerica;
- --numeric-users
visualizza gli utenti in forma numerica;
-
-A family | --protocol=family
specifica la famiglia di indirizzi relativa ai protocolli di cui
visualizzare le connessioni, secondo quanto indicato da family
(v. tab. 18.2 - può essere anche specificato un elenco di valori
separati dal simbolo ‘,’);
| Tabella 18.2: | I possibili valori per specificare le famiglie di
protocolli. |
|
-
-c | --continuous
indica di visualizzare continuamente le informazioni aggiornate ogni
secondo;
-
-e | --extend
indica di visualizzare ulteriori informazioni (può essere specificato 2 volte
per ottenere il massimo delle informazioni);
-
-o | --timers
indica di visualizzare informazioni relative ai timer;
-
-p | --programs
visualizza il PID ed il nome del processo al quale appartiengono i
socket;
-
-l | --listening
visualizza soltanto i socket in ascolto (per default non vengono
visualizzati);
-
-a | --all
visualizza tutti i socket (in ascolto o meno);
-
-F | --fib
visualizza le informazioni di routing dal FIB (default);
-
-C | --cache
visualizza le informazioni di routing dalla route cache;
-
delay indica di visualizzare continuamente le informazioni ogni delay
secondi;
-
-t | --tcp
visualizza soltanto i socket TCP;
-
-u | --udp
visualizza soltanto i socket UDP;
-
-w | --raw
visualizza soltanto i socket raw;
-
-x | --unix
visualizza soltanto gli Unix domain socket;
-
--ax25 visualizza soltanto i socket AX25;
-
--ipx visualizza soltanto i socket IPX;
-
--netrom
visualizza soltanto i socket NET/ROM;
-
--ddp visualizza soltanto i socket DDP (AppleTalk);
-
-h | --help
visualizza un aiuto sommario di netstat;
-
-V | --version
visualizza la versione di netstat;
Se non viene specificata nessuna opzione, viene visualizzato l’elenco dei socket
aperti presenti sul sistema.
____________________________________________________________________
Il comando netstat visualizza l’elenco dei socket attivi sul sistema. Per ognuno di essi
possono essere visualizzate una serie di informazioni di seguito riportate (v. anche il
contenuto della directory /proc/net).
-
Active Internet connections
(TCP, UDP, raw)
-
Proto
indica il tipo di protocollo;
-
Recv-Q
indica il numero di byte non ancora ricevuti dal processo associato al
socket;
-
Send-Q
indica il numero di byte per i quali non è stato ricevuto l’acknowledge
da parte del ricevente;
-
Local Address
indica l’indirizzo e la porta locali;
-
Foreign Address
indica l’indirizzo e la porta remoti;
-
State indica lo stato del socket, secondo quanto riportato in tab. 18.3 (solo
per le comunicazioni connection-oriented);
| Tabella 18.3: | I possibili stati dei socket. |
|
-
User indica l’utente proprietario del socket;
-
PID/Program name
indica il PID ed il nome del processo proprietario del socket;
-
Active UNIX domain Sockets
-
RefCnt
indica il numero di processi collegati al socket;
-
Flags indica i flag del socket;
-
Type indica il tipo di socket, secondo quanto riportato in tab. 18.4;
| Tabella 18.4: | I possibili tipi dei socket. |
|
-
State indica lo stato del socket, secondo quanto riportato in tab. 18.5;
| Tabella 18.5: | I possibili stati dei socket. |
|
-
PID/Program name
indica il PID ed il nome del processo che ha il socket aperto;
-
Path indica il path del file che ha lanciato il processo associato al socket;
____________________________________________________________________
Comando: tcpdump
Path: /usr/sbin/tcpdump
SINTASSI
# tcpdump [option]
DESCRIZIONE
-
option indica la modalità di funzionamento di tcpdump. Può assumere i seguenti
valori:
-
-a tenta di convertire gli indirizzi IP in nomi di dominio;
- -c count
indica di uscire dopo aver ricevuto count pacchetti;
____________________________________________________________________________________________________________________
[da completare ...]