Se avete bisognu di analizzà o intercetta pacchetti di rete in Linux, hè megliu ad aduprà l'utilità di a console per ciò. tcpdump. Ma u prublema hè prucessu in a so gestione piuttostu complicata. Puru pare praticabu per un utilizatore cumudionale à travaglià cù l'utilità, ma quessa hè solu à prima voglia. L'articolo spieghjarà cumu cpddump hè urganizatu, ciò chì sintassi avè, cume u so, è numerosi esempi di u so usu daranu.
Vede dinò: Tutorial per a configurazione di una cunnessione Internet in Ubuntu, Debian, Server Ubuntu
Installazione
A maiò parte di i sviluppatori di sistemi operativi basati à Linux includenu l'utilità tcpdump in a lista di quelli preinstallati, ma per una ragione ùn hè in a vostra distribuzione, pudete sempre scaricà è installà via "Terminal". Se u vostru sistema operativo hè basatu nantu à Debian, è questu hè Ubuntu, Linux Mint, Kali Linux è accussì, bisognu avè da mandà stu comando:
sudo apt install tcpdump
Quandu hè installatu, avete bisognu di fà una password. Ci vole à avverà chì quandu si digita ùn hè micca visualizzata, ancu per cunfirmà l'installazione, duverete inserì u caratteru "D" e premete Enter.
Se avete Red Hat, Fedora o CentOS, u cumandamentu di l'installazione sarà simu questu:
sudo yam installà tcpdump
Dopu avè installatu l'utilità, pudete aduprà immediatamente. Questu è ancu di più sarà discupratu dopu in u testu.
Vede ancu: Guida d'installazione di PHP per u servitore Ubuntu
Sintassi
Comu qualunqui altru mancu, tcpdump hà a so propria sintassi. Cunniscendu ellu, pudete piazzà tutti i parametri necessarii chì saranu presi in considerazione quandu si esegue u cumandamentu. A sintassi hè:
opzioni tcpdump - i filtri di l'interfaccia
Quandu aduprate u cumandamentu, devi specificà l'interfaccia per seguità. Filtri è opzioni ùn sò micca variabili obbligatorie, ma permettenu una configurazione più flessibile.
Opzioni
Benchì ùn sia micca necessariu specificà l'opzione, hè necessariu listà i servizii dispunibili. A tavula ùn mostra micca tutta a so lista, ma solu i più popolari, ma sò più che sufficienti per risolve a maiò parte di e attività.
Opzione | Definizione |
---|---|
-A | Permette di ordinà i pacchetti in furmatu ASCII |
-l | Aggiunge una funzione di scorrimentu. |
-i | Dopu avè inseritu avete bisognu di specificà l'interfaccia di rete chì serà monitorata. Per cuminciare à seguità tutte e interfacce, digià a parola "qualsiasi" dopu à l'opzione. |
-c | Completa u prucessu di seguitu dopu verificà u numeru specificatu di pacchetti. |
-w | Genera un file di testu cù un rapport di verifica. |
-e | Mostra u livello di cunnessione internet di u pacchettu di dati. |
-L | Mostra solu i protocolli supportati da l'interfaccia di rete specificata. |
-C | Crea un altru archiu mentre scrive un pacchjettu se a so dimensione hè più grande di quellu specificatu. |
-r | Apre un schedariu per a lettura chì hè statu creatu cù l'opzione -w. |
-j | U formatu TimeStamp sarà adupratu per a registrazione di pacchetti. |
-J | Permette di visualizzare tutti i formati dispunibili TimeStamp |
-G | Utilisate per creà un file cun registri. A chjesa impone ancu un valore temporaneu, dopu allora chì un novu log hè creatu |
-v, -vv, -vvv | Sicondu u nùmmiru di caratteri in l'opzione, l'uscita di u comando diventa più dettagliata (un incremento hè directamente proporzionale à u numeru di caratteri) |
-f | A uscita mostra u nomu di duminiu di l'indirizzu IP |
-F | Permette di leggere l'infurmazioni micca da l'interfaccia di rete, ma da u schedariu specificatu |
-D | Dimostra tutte e interfacce di rete chì pò esse aduprate. |
-n | Disattiva a visualizzazione di nomi di dominio |
-Z | Specifica l'utente chì hà sottu per cui di cunsiderà tutti i file. |
-K | Ignorà l'analisi di una checksum |
-q | Dimostrazione di brevi informazioni |
-H | Rileva l'intestazioni 802.11s |
-I | Usatu quandu si catturà pacchetti in modalità monitor. |
Avendu esaminatu le opzioni, quì sottu giriamo direttamente à e so applicazioni. Intantu, cunduci saranu cunsiderati.
Filtri
Come parlatu à l'iniziu di l'articolo, pudete aghjunghje filtri à a sintassi tcpdump. Oghji u più popularu di elli saranu cunsiderati:
Filtru | Definizione |
---|---|
l'ospite | Specifica u nomu di l'ospite. |
net | Specifica a subnet e a rete IP |
ip | Specifica l'indirizzu di protocollo |
src | Mostra i pacchetti inviati da l'indirizzu specificatu |
dst | Mostra i pacchetti chì eranu ricevuti da l'indirizzu specificatu. |
arp, udp, tcp | Filtratu da unu di i protocolli |
portu | Mostra di l'infurmazioni relative à una porta specifica. |
è, o | Aduprate à combinà parechje filtri in un cummentu. |
menu, più grande | Pacchetti di uscita più chjughe o più grandi di a taglia specifica |
Tutti i filtri sopra cullati pò esse cumpressu tra elli, allora quandu si emette un comandamentu si osservanu solu l'infurmazioni chì vulete vede. Per capisce cun u vechju dettu l'usu di i filtri sopra sposti, vale a dà esempi.
Vede ancu: Comandi frequenti in Terminal Linux
Esempii d'usu
Opzioni di sintassi di tcpdump usate spesso saranu listate. Ognunu micca esse listati, perchè e so variazioni ponu esse infinite.
Vede a lista di l'interfaccia
Hè raccomandatu chì ogni utente prima cunsulta u listinu di tutte e so interfacce di rete chì ponu esse tracciate. Da a tavula di sopra, sapemu chì per questo avete bisognu di aduprà l'opzione -D, dunque, in u terminal aghjuntu u cumandamentu seguitu:
sudo tcpdump -D
Esempiu:
Come si vede, ci sò ottu interfacce in l'esempiu chì si pò visualizà cù u comando tcpdump. L'articolo ghjunghja esempi di ppp0, pudete aduprà ogni altra.
Catturamentu normale di u trafficu
Se avete bisognu di traccia un unicu interfaccia di rete, pudete fà ciò cù l'opzione -i. Ùn vi scurdate di entrà u nomu di l'interfaccia dopu avè entratu. Eccu un esempiu di eseguitu un tale cummentu:
sudo tcpdump -i ppp0
Nota: avete bisognu di entrà "sudo" davanti à u comando in sè, perchè necessita di u dirittu di u superaveru.
Esempiu:
Nota: dopu cliccatu Invete in u "Terminal", i pacchetti interettati sò visualizzati in continuu. Per fermà u so flussu, avete bisognu di preme a combinazione di tasti Ctrl + C.
Se avete u mandatu senza opzioni addizionali è filtri, videte u furmatu seguente per visualizà i pacchetti tracciati:
22: 18: 52.597573 IP vrrp-topf2.p.mail.ru.https> 10.0.6.67.35482: Flags [P.], seq 1: 595, ack 1118, win 6494, options [nop, nop, TS val 257060077 ecr 697597623], lunghezza 594
Induve u culore hè evidenziatu:
- blu - u tempu di a ricezione di u pacchettu;
- arancia - versione di protocollo;
- verdi - indirizzu di u mittente;
- viola - l'indirizzu di u destinatariu;
- grigiu - infurmazioni in più nantu à tcp;
- rossu - dimensioni di pacchetti (visualizati in byte).
Questa sintassi hà a capacità di uscì in a finestra "Terminal" senza usà opzioni supplementari.
Catturà trafficu cù l'opzione-v
Comu si sapi da a tavula, l'opzione -v permette di aumentà a quantità di informazioni. Fighjate un esempiu. Verificate a stessa interfaccia:
sudo tcpdump -v -i ppp0
Esempiu:
Quì pudete vede chì a linea chì seguita cumparisce in a uscita:
IP (tos 0x0, ttl 58, id 30675, offset 0, flags [DF], proto TCP (6), lunghezza 52
Induve u culore hè evidenziatu:
- arancia - versione di protocollo;
- blu - a vita di u protocolu;
- verdi - a lunghezza di l'intestazione di u campu;
- viola - versione di u pacchjettu tcp;
- rossu - dimensioni di pacchetti.
Puru, in a sintassi di i comandi, pudete scrive l'opzione -vv o -vvvchì hà da aumentà di più a quantità di informazioni visualizzate nantu à u schermu.
L'opzione -w è -r
A tabella di opzioni hà menzionatu a possibilità di salvà tutti i dati di uscita in un schedariu separatu, affinchì esse pudenu esse visualizati in un successu. A scelta hè responsabile per questu. -w. Hè abbastanza semplice d'usu, basta inserirle in u cumandamentu è allora inserisci u nome di u futuru file cun l'estensu ".pcap". Considerà tuttu l'esempiu:
sudo tcpdump -i ppp0 -w file.pcap
Esempiu:
Per piacè fate attenzione: mentre scrive logs in un file, ùn ci vene più testu nantu à u schermu "Terminal".
Quandu vulete vede l'uscimentu scrittu, avete bisognu di aduprà l'opzione -ru seguitu da u nomu di u schedariu di u precedente registratu. Hè applicatu senza altre opzioni è filtri:
sudo tcpdump -r file.pcap
Esempiu:
Entrambe queste opzioni sò perfette in casi chì avete bisognu di salvà gran quantità di testu per analisi successiva.
Filtraggio IP
Da u tabulu di filtri, sapemu chì dst permette di visualizà nant'à u schermu di a console nant'à quelli pacchetti ricevuti da l 'indirizzu specificatu in a sintaxis di u cumannu. Dunque, hè assai praticu di vede i pacchetti ricevuti da u vostru computer. Per fà quessa, a squadra deve basta specificà u vostru indirizzu IP:
sudo tcpdump -i ppp0 ip dst 10.0.6.67
Esempiu:
Comu pudete vede, in più dst, in u squadra, avemu registratu ancu u filtru ip. In altre parole, avemu dittu à u computer chì, selezziunà i pacchetti, hà fattu u rispettu à u so indirizzu IP, è micca à altri parametri.
Per IP, pudete filtrà è mandà pacchetti. In l'esempiu dà u nostru IP di novu. Hè cusì, avveremu ora chì i pacchetti sò trasmessi da u nostru computer à altre indirizzi. Per fà quessa, eseguite u comando seguente:
sudo tcpdump -i ppp0 ip src 10.0.6.67
Esempiu:
Comu pudete vede, avemu cambiatu u filtru in a sintassi di i comandi. dst on srcHè dendu à a macchina di ricerca di u mittente per IP.
HOST filtrazione
Per analogia cù IP in u squadra, pudemu specificà un filtru l'ospiteeliminà i pacchetti cù u host di interesse. Hè cusì, in a sintassi, invece di l'indirizzu IP di u mittente / destinatariu, avete bisognu di specificà a so host. Sembra questu:
sudo tcpdump -i ppp0 dst host google-public-dns-a.google.com
Esempiu:
A l'imagine si pò vede chì in "Terminal" Solamente i pacchetti chì sò stati mandati da a nostra IP à google.com host sò visualizati. Comu pudete vede, invece di google host, pudete entrà ogni altra.
Com'è per u filtrazione IP, a sintassi hè: dst pò esse rimpiazzatu da srcPer vede i pacchetti inviati à u vostru computer:
sudo tcpdump -i ppp0 src host google-public-dns-a.google.com
Nota: u filtru di l'ospite deve esse dopu à dst o src, altrimenti u mandatu genererà un errore. In u casu di filtrazione IP, à u dittu, dst è src sò davanti à u filtru ip.
Filtru è è o
Se avete bisognu di aduprà parechje filtri in una sola volta in un cumandamentu, allora avete bisognu di applicà un filtru. è o o (dipende da u casu). Specificendu i filtri in a sintassi è separandulu cù queste dichjarazioni, “fate” u travagliu cum'è una. In un esempiu, si vede questu:
sudo tcpdump -i ppp0 ip dst 95.47.144.254 o ip src 95.47.144.254
Esempiu:
Da a sintassi di i comandi pudete vede chì vogliamo visualizzare "Terminal" tutti i pacchetti inviati à l'indirizzu 95.47.144.254 è i pacchetti ricevuti da a stessa indirizzu. Pudete ancu cambià alcune variabili in sta espressione. Per esempiu, invece di IP, specifichi HOST o directamente si sustituiscenu i indirizzi stessi.
Filtru portu è portrange
Filtru portu perfetta per quandu avete bisognu di ottene informazioni nantu à i pacchetti cù una porta specifica. Allora, se avete tantu bisognu di vede risposte o query DNS, avete bisognu di specificà a porta 53:
sudo tcpdump -vv -i ppp0 port 53
Esempiu:
Se vulete vede i pacchetti http, avete bisognu di entrà a porta 80:
sudo tcpdump -vv -i ppp0 portu 80
Esempiu:
Tra l'altro, hè pussibule di seguitu immediatamente a gamma di porti. Per fà quessa, applica u filtru portrange:
sudo tcpdump portrange 50-80
Comu pudete vede, cunjunzione cù u filtru portrange Ùn hè micca necessariu specificà opzioni addizionali. Basta cunfirmà a portata.
Protocollo Filtrazione
Pudete dinò visualizà solu u trafficu chì risponde à ogni prugramma. Per fà quessa, aduprà u nome di stu protocollo cum'è un filtru. E vedemu un esempiu udp:
sudo tcpdump -vvv -i ppp0 udp
Esempiu:
Comu pudete vede in l'image, dopu avè esegitu u cumandamentu in "Terminal" solu i pacchetti cù u protocolu sò stati visualizzati udp. Di conseguenza, pudete filtrà da altri, per esempiu, arp:
sudo tcpdump -vvv -i ppp0 arp
o tcp:
sudo tcpdump -vvv -i ppp0 tcp
Filtratu rete
Operatore net aiuta a filtra i pacchetti basatu nantu à a designazione di a so rete. Hè u facili à usà cum'è u restu - bisognu dì specificà l'attributu in a sintassi net, allora inserisci l'indirizzu di rete. Eccu un esempiu di tale cummentu:
sudo tcpdump -i ppp0 net 192.168.1.1
Esempiu:
Filtra per a dimensione di u pacchettu
Ùn avemu consideratu dui filtri più interessanti: menu è maghjine. Da a tavula cun filtri, sapemu chì servenu per uscì più pacchetti di dati (menu) o menu (maghjine) a dimensione specificata dopu u attributu.
Supponemu chì voglimu cuntrullà solu i pacchetti chì ùn superano micca 50 bit, allora u cumandamentu sarà simu tale:
sudo tcpdump -i ppp0 menu 50
Esempiu:
Ora vene à vene in "Terminal" pacchetti di più chè 50 bit:
sudo tcpdump -i ppp0 maghjine 50
Esempiu:
Comu pudete vede, si utilizanu in e modu, l'unica differenza hè in u nomu di u filtru.
Conclusione
À a fine di l'articolo, pudemu cuncipitu chì a squadra tcpdump - Questu hè un ottimu strumentu cun chì pudete seguitu qualchì pacchettu di dati trasmessi da Internet. Ma per questo ùn basta micca basta à arricrà u cummandu in "Terminal". Per ghjunghje u risultatu vulemu uttenitu solu sì avete aduprà tutti i tipi di opzioni è filtri, è ancu e so combinazioni.