Come controllare la rete da terminale con Linux
Anche se non tutti fanno uso di pratiche del genere, monitorare lo stato della propria rete può rivelarsi utile in molteplici casi.
Ad esempio, se improvvisamente notate attività sospetta (ed inaspettata) di una o più applicazioni della vostra macchina, con una serie di comandi potrete rendervi conto delle applicazioni che si collegano alla rete per constatare se siete vittime di un rootkit o di un malware in generale.
O, ancora, potrebbe ritornare utile rendervi conto di quale programma usa maggiormente la banda di rete. Se siete sviluppatori e state scrivendo un’app che fa uso di Internet, inoltre, monitorare il tutto può essere molto utile ai fini di debug.
Di seguito mostreremo alcuni esempi di utilizzo tipico di quattro applicazioni da linea di comando – utili quindi anche per l’utilizzo da remoto – atte allo scopo.
Le applicazioni contrassegnate come “monitor” permetteranno di monitorare il sistema in real-time finché non verranno manualmente interrotte, quelle contrassegnate come “istantanee” restituiranno come output un’istantanea dello stato della rete.
Controllare la rete da terminale con Linux
Nethogs (Monitor)
Indubbiamente uno dei tool dall’utilizzo più semplice e particolarmente adatto agli scopi prefissi: in poche parole nethogs permette di visualizzare il traffico di rete in transito tra le applicazioni eseguite in modalità grafica.
Richiede i privilegi di root per essere utilizzato.
Tramite nethogs si possono ottenere informazioni quali il pid del processo, l’utente che lo esegue, il nome (ed eventualmente i parametri) del processo, l’interfaccia di rete e la velocità di invio e ricezione dei dati (in KB/s).
Per procedere, basterà digitare a terminale il comando
nethogs interfaccia_di_rete
(ad es. nethogs wlan0). E’ possibile uscire in qualsiasi momento dal monitor utilizzando il tasto “q”.
Nethogs potrebbe non essere installato di default sul sistema operativo: in tal caso potrete utilizzare il vostro gestore pacchetti (apt, dnf, yum, pacman, yaourt o quant’altro) per procedere al download e all’installazione.
Nel caso di Ubuntu e Debian potrete installare nethogs tramite il comando
sudo apt install nethogs
TCPDUMP (Monitor)
TCPDump è indubbiamente uno degli applicativi più completi ed utili (forse qualche volta fin troppo) per sorvegliare del traffico di rete.
Esso permette di monitorare, visualizzare, analizzare e loggare qualsiasi cosa passi attraverso la rete, permettendo all’utente di prendere visione degli indirizzi di arrivo e destinazione, delle porte d’ascolto, dell’offset dei pacchetti, della tipologia dei pacchetti in transito, dell’header (o del contenuto completo) dei pacchetti, delle applicazioni locali che li gestiscono e tanto, tanto altro ancora.
Come avrete inteso tcpdump è particolarmente utile ai fini di low-level debugging e necessita dei permessi di root per funzionare. Un utilizzo di base di tcpdump potrebbe essere
tcpdump -bi interfaccia_di_rete
Volendo è possibile redirigere l’output in un file di testo, digitando
tcpdump -bi interfaccia_di_rete > logfile.txt
Per interrompere la scansione è possibile utilizzare in qualsiasi momento la combinazione di tasti CTRL+C.
LSOF (Istantanea)
Il comando lsof (list open file) permette, nel suo utilizzo di base, di ottenere una lista dei file aperti dal sistema operativo.
Se invocato col parametro -i permette di ottenere informazioni sui processi (nomi e pid) che utilizzano la rete, sul loro stato (connessione stabilita, in chiusura, in listening), sul tipo di protocollo IP usato (ipv4/v6), sulla dimensione dei pacchetti, sulle porte locali in uso e sull’indirizzo di destinazione dei pacchetti in uscita (o l’indirizzo di arrivo dei pacchetti in entrata).
Quindi, per ottenre una lista di tutti i processi utente che interagiscono con la rete, bisognerà digitare:
lsof -i
Per ottenere una lista dei processi utente che stanno utilizzando la rete andremo a digitare
lsof -i | grep ESTABLISHED
Per ottenere una lista dei processi di tutti gli utenti (e del sistema operativo) che interagiscono con la rete dovremo eseguire gli stessi comandi da root (o utilizzando sudo).
Netstat (istantanea)
Il comando netstat, nel suo utilizzo di base, permette di visualizzare diverse statistiche su tutte le connessioni (sia internet che di sistema, tramite socket).
Se raffinato con determinati parametri sarà possibile visualizzare informazioni sull’utilizzo della rete del tutto simili a quelle mostrate da lsof, con in più le code di invio e ricezione pacchetti.
Quindi, per ottenre una lista di tutti i processi utente che interagiscono con la rete, bisognerà digitare:
netstat -tuapw --numeric-hosts --numeric-ports
Per ottenere una lista dei processi utente che stanno utilizzando la rete bisognerà digitare
netstat -tuapw --numeric-hosts --numeric-ports | grep ESTABLISHED
Chiaramente è possibile salvare in un file l’output del comando semplicemente utilizzando l’operatore di redirezione:
netstat -tuapw --numeric-hosts --numeric-ports | grep ESTABLISHED > log.txt
Per ottenere una lista dei processi di tutti gli utenti (e del sistema operativo) che interagiscono con la rete basterà eseguire gli stessi comandi da root (o utilizzando sudo).
L’articolo Come controllare la rete da terminale con Linux appare per la prima volta su Chimera Revo – News, guide e recensioni sul Mondo della tecnologia.
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!
Hai dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.