Monitorare il traffico di rete con SS

shell

Buongiorno a tutti! Oggi in questo post vi mostriamo come monitorare il traffico di rete, utilizzando un comando molto particolare, ossia ss.

Ss è un comando utilizzato tra gli amministratori di sistema, poiché riesce a dare molte informazioni particolari riguardo alla rete, le connessioni, i socket TCP, i socket UDP, quali processi stanno utilizzando dei socket, insomma ha funzioni molto simili al vecchio comando netstat.

Esso si trova praticamente in tutti i repository delle distribuzioni Linux, in ogni caso di facile installazione se non presente, poiché fa parte del gruppo iproute2.

Vediamo ora alcune opzioni molto utili di questo comando.

Per avere delle statistiche sulle varie connessioni aperte, finite o in timewait utilizziamo la seguente opzione:

 

ss -s

 

opzione-s

 

Come possiamo vedere ci da anche delle informazioni sul tipo di connessione che è stata aperta.

Con la seguente opzione possiamo vedere tutti i processi che stanno utilizzando una connessione, ed il loro nome:

 

ss -pl

 

Molto interessante poiché ci mostra ogni singolo processo che ha una connessione aperta, con la porta che sta utilizzando. Se ad esempio, in seguito ad una scansione delle porte, vogliamo sapere quale processo sta utilizzando una determinata porta, allora possiamo combinarlo con il comando grep, come il seguente esempio:

 

ss -pl | grep 14128

 

port14128

 

Come potete vedere dall’immagine qui sopra, ci è stato restituito anche il pid del processo, quindi possiamo andare ad ottenere ulteriori informazioni utilizzando il suo identificativo, ad esempio con questo comando:

 

ps aux | grep 5124

 

Un’altra opzione interessante è la seguente:

 

ss -t -a

 

Che da come potrete notare, mostra tutte le connessioni tcp aperte nel sistema.

C’è anche un’opzione analoga sia per le connessioni udp che i socket raw:

 

ss -u -a

 

Mentre per i socket raw:

 

ss -w -a

 

Con questo comando possiamo utilizzare anche degli state-filter, che ci servono per vedere tutte le connessioni aperte, chiuse o altro con un determinato protocollo. Ad esempio se vogliamo vedere tutte le connessioni aperte con il protocollo SSH allora utilizziamo il seguente filtro:

 

ss -o state established '( dport = :ssh or sport = :ssh )'

 

Mentre se non mettiamo '( dport = :ssh or sport = :ssh )' ovviamente ci mostra ogni singola connessione stabilita. Possiamo mettere ovviamente anche altri stati, come ad esempio uno degli stati utilizzati dal protocollo tcp come syn-sent, syn-recv, fin-wait-1, fin-wait-2, time-wait o altri che si possono trovare nel manuale di ss.

Bene, non vi resta che sperimentare questo comando divertendovi a combinare le varie opzioni tra di loro 😉

Dottore in Informatica. Da sempre appassionato di Linux, reti informatiche, sicurezza e, in modo amatoriale, all'elettronica. Il mio intento è quello di trasmettere le mie conoscenze ad altri appassionati.

Lascia un commento