mercoledì 12 gennaio 2011

Monitorare le connessioni di rete del computer con netstat

Un computer collegato in rete è raggiungibile mediante l'indirizzo IP ad esso associato. L'indirizzamento a un particolare processo in esecuzione o servizio sulla medesima macchina prevede un ulteriore numero, detto numero di porta (port number). Solo in questo modo due applicazioni di rete possono scambiare dati tra loro, che altrimenti giungerebbero presso l'interfaccia di rete senza un ulteriore destinazione locale.
Va subito detto che non tutti i processi necessitano di una comunicazione di rete, qualora ciò fosse invece necessario l'applicazione dovrà implementare mediante socket (a cui è associato un numero di porta) la comunicazione e gestirla attraversa un protocollo di trasporto (ad esempio TCP o UDP). Una socket in attesa di comunicazioni è detta in stato di ascolto (listen).
Su ogni computer sono eseguiti in background dei servizi di rete, ognuno di questi prevede dunque delle connessioni in ingresso e/o uscita. Per alcuni servizi il numero di porta è stato fissato, ad esempio: 21 per ftp (file transfer protocol), 23 per telnet, 25 per smtp (simple mail transfer protocol) etc... Il file /etc/services contiene un elenco dei servizi di rete ed altre informazioni sui servizi configurati presso un computer, per accedere a queste informazioni occorre usare il comando netstat.
La lista delle opzioni e delle cose che è possibile osservare con netstat è davvero lunga, mi limiterò pertanto ad elencare le opzioni più comuni. Come sempre, maggiori informazioni sul comando possono essere cercate nelle pagine del manuale con man netstat.
  • -a: mostra tutte le connessioni, attive e in ascolto;
  • -l: mostra solo le connessioni in ascolto (listening);
  • -t: mostra le connessioni su TCP;
  • -u: mostra le connessioni su UDP;
  • -p: mostra i programmi che utilizzano le connessioni (per ogni programma viene indicato il PID e il nome del processo);
  • -n: disabilita il reverse lookup nell'output, gli indirizzi vengono sostituiti con i rispettivi IP;
  • -r: mostra la tabella di routing;
  • -s: mostra le statistiche, per ogni protocollo di rete;
  • -c: le statistiche vengono aggiornata ogni secondo;
  • -i: mostra le statistiche relative alle interfacce di rete riconosciute dal kernel;
L'output generato dal comando netstat è solitamente molto lungo, non dimenticate di combinarlo con i comandi less, more o grep.

Nessun commento:

Posta un commento