Netstat

Internet collega tra di loro le reti di computer di tutto il mondo e offre perciò ottime possibilità per consentire lo scambio di dati e informazioni. Altrettanto semplice è non conoscere come avviene la trasmissione di file da A a B o anche perdere di vista le connessioni attive; di conseguenza le attività di rete indesiderate o che richiedono un maggior utilizzo delle risorse vengono scoperte troppo tardi o non vengono rilevate affatto. Per sapere con quali computer e reti è collegato il PC, basta usare netstat, che si occupa di fornire le statistiche relative a tutte le connessioni attive. Vi sveliamo in questo articolo cosa si nasconde esattamente dietro a questo strumento di rete e vi spieghiamo come usarlo correttamente. 

Che cos’è netstat?

netstat, composto dalle parole network (“rete“) e statistics (“statistiche“), è un programma che funziona tramite istruzioni date dalla riga di comando. Fornisce statistiche essenziali su tutte le attività di rete e dà informazioni su quali porte e indirizzi funzionino le rispettive connessioni (TCP, UDP), oltre ad indicare quali siano le porte aperte per accogliere le richieste. netstat fu implementato per la prima volta nel 1983 su BSD (Berkeley Software Distribution), sistema derivato di UNIX, di cui all’epoca la versione 4.2 fu tra le prime a supportare la famiglia di protocolli Internet TCP/IP. Ulteriori sviluppi hanno portato all’integrazione del programma su Linux (1991) e su Windows a partire dalla versione 3.11 (1993), che poteva anche comunicare tramite i protocolli TCP/IP grazie ad un’estensione. Le diverse implementazioni sono molto simili per quanto riguarda la loro funzionalità, mentre i parametri dei comandi di netstat, così come il loro output, si differenziano leggermente a seconda dei sistemi.

Come già accennato, netstat è sostanzialmente un programma della riga di comando e non possiede perciò alcuna interfaccia grafica. Ci sono però programmi come TCPView, sviluppato dal reparto Windows Sysinternals di Microsoft, che rendono possibile la rappresentazione grafica delle statistiche.

Perché è utile utilizzare netstat

Se siete a conoscenza di tutte le connessioni in entrata e in uscita del vostro computer e/o server, siete avvantaggiati nella lotta contro un traffico eccessivo e i software dannosi. Tutte le connessioni vengono stabilite tramite il rispettivo indirizzo di rete, che dichiara quale porta viene aperta preliminarmente per lo scambio dei dati: la porta che viene aperta, possiede prima lo stato “LISTEN” (in ascolto) e rimane poi in attesa dei tentativi di connessione. Il grande problema di queste porte aperte è il fatto che offrono la possibilità a terzi di introdurre di nascosto malware nel vostro sistema. Inoltre è anche possibile che sul vostro sistema ci siano già dei trojan che installino una backdoor, aprendo così una porta per i loro scopi. Per questo motivo dovreste controllare periodicamente le porte aperte sul vostro sistema, cosa facilmente verificabile grazie a netstat. Lo strumento di diagnosi si presenta come una soluzione unitaria per tutti i computer e i server, visto che si trova su quasi tutti i sistemi operativi (UNIX, Linux, Windows o Mac).

Porte aperte sconosciute o indirizzi IP ignoti lasciano rilevare un’eventuale infezione, ma per ottenere un risultato veritiero dovreste chiudere prima tutti i programmi, come ad esempio il browser, perché spesso si collegano a computer che dispongono di indirizzi IP sconosciuti. Grazie a statistiche dettagliate ricevete inoltre informazioni sui pacchetti trasmessi dall’ultimo avvio del sistema e sugli errori verificatisi. Anche le tabelle di routing, che chiariscono il percorso dei pacchetti in rete, vengono mostrate grazie al comando di netstat adatto al proprio sistema.

I più importanti comandi di netstat per Linux

La sintassi di netstat per Linux segue il semplice schema:

netstat [OPTION]

Le opzioni sono composte da diverse modalità, ad esempio l’analisi standard delle porte o l’indicazione delle tabelle di routing, oltre che diverse opzioni del protocollo, che servono per chiarire e specificare meglio i risultati. Tutte le opzioni dispongono, com’è tipico sui sistemi UNIX/Linux, sia di un nome per esteso, preceduto da due trattini, sia di una forma abbreviata, a cui viene posto davanti solo un trattino. Avviate le modalità con i seguenti comandi:

[OPZIONE] Abbreviazione Comando Descrizione della modalità
    sudo netstat Modalità standard che informa su tutte le connessioni di rete attive
--route -r sudo netstat -r Con questo comando netstat si possono richiamare le tabelle di routing
--interface -i sudo netstat -i Indica le statistiche sui pacchetti trasmessi alle singole interfacce di rete
--statistics -s sudo netstat -s Fornisce statistiche più dettagliate
--groups -g sudo netstat -g Informa sul multicast (traffico di rete, che viene inviato ad un gruppo di terminali)

Le modalità non possono essere combinate tra loro in uno stesso comando, mentre è invece possibile con le opzioni di protocollo, rilevanti soprattutto nella modalità standard. Una combinazione conosciuta è ad esempio quella con cui vengono elencate tutte le porte del sistema, raggiungibili dagli altri computer:

netstat -tulpen

Nella tabella seguente potete vedere i singoli parametri, di cui si compone il comando netstat, e quali altre opzioni del protocollo sono possibili:

[OPZIONE] Abbreviazione Comando Descrizione dell’opzione del protocollo
--listening -l sudo netstat -l Vengono mostrate solo le porte aperte (stato “LISTEN“)
--all -a sudo netstat -a Vengono mostrate le connessioni esistenti e le porte aperte
--tcp -t sudo netstat -t Elenca tutte le connessioni TCP
--udp -u sudo netstat -u Elenca tutte le connessioni UDP
--numeric -n sudo nestat -n Tutte le cifre (indirizzi IP, protocolli, ID) vengono mostrate in modo invariato nella loro forma numerica
--extend -e sudo netstat -e Fornisce informazioni avanzate
--program -p sudo netstat -p Informa sull’ID del processo e sul nome del programma

Consultando il sito netstat.net, trovate informazioni dettagliate sulle opzioni presentate, ma anche sulle altre possibilità.

Comandi netstat dal cmd di Windows

I servizi di netstat sono utilizzabili anche sui sistemi operativi Windows tramite la relativa riga di comando (cmd.exe), che trovate nel menu start alla voce “Tutti i programmi” -> “Accessori“ -> “Prompt dei comandi“. In alternativa potete anche cercare direttamente “Prompt dei comandi” nel campo di ricerca del menu start o avviare la riga di comando tramite “Esegui” (premere il tasto Windows + “R” e inserire “cmd”). La sintassi dei comandi segue lo stesso schema di Linux:

netstat [OPTION]

Però i singoli parametri sono molto diversi e sono disponibili solo nella loro forma abbreviata, e non in quella intera. I principali comandi netstat dal cmd sono:

[OPZIONE] Abbreviazione Descrizione dell’opzione
-i netstat -i Apre il menu generale di netstat
  netstat Si tratta di un elenco standard di tutte le connessioni attive
-a netstat -a Elenca in aggiunta anche le porte aperte (“LISTEN“)
-e netstat -e Fornisce la statistica dell’interfaccia (pacchetti ricevuti e inviati, ecc.)
-n netstat -n Indicazione numerica degli indirizzi e del numero delle porte
-o netstat -o Aggiunge ad ogni connessione il rispettivo ID del processo
-r netstat -r Mostra le tabelle di routing
-p protocol netstat -p TCP Mostra le connessioni per il protocollo inserito, in questo caso TCP (ma sono anche possibili: UDP, TCPv6 o UDPv6)

La combinazione delle singole opzioni risulta, come è solito su Linux, dall’allineamento dei singoli parametri, a patto che la connessione sia possibile. Un comando conosciuto di nestat su cmd, grazie al quale vengono mostrate sia le porte aperte sia le connessioni attive numericamente e inclusive di ID del processo, è ad esempio:

netstat -ano