Tcpdump

Cred că majoritatea dintre voi, cei care aveţi de a face cu Linuxul sau networking-ul aţi auzit de tcpdump. Ştiţi că este un tool foarte important ce ne ajută atunci când avem nevoie de network debugging.
De exemplu, să zicem că avem nevoie “să prindem” toate pachetele incoming înspre portul 80, de unde vin aceste pachete şi înspre cine se îndreaptă, folosim tcpdump în forma de mai jos:
#tcpdump -i eth1 tcp port 80
Comanda de mai sus va monitoriza traficul de pe interfaţa eth1 înspre portul 80 sau care are ca port sursă portul 80. Haideţi să mai aruncăm repede încă o comandă:
#tcpdump -i eth1 tcp dst port 443 and src host 172.16.20.5
Cred că este destul de clar care va fi rezultatul…va fi monitorizat traficul outbound către portul 443(https). În exemplul de mai sus, adresa IP 172.16.20.5 este asociată interfeţei eth1.
Output-ul comenzii de mai sus este unul foarte in detaliu. Ceva de genul:
tcpdump -i eth0 tcp dst port 443 and src host 172.16.20.5
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes0 packets captured
0 packets received by filter
0 packets dropped by kernel
În mod normal ar fi trebuit să urmeze şi nişte destination remote adresses dacă ar fi fost cazul…dar cum eu sunt pe un server care nu are nimic pornit pe 443, acestea nu apar mai sus.
Deşi este un tool command-line based, este foarte folositor pentru adminii de reţea. Output-ul poate fi salvat într-un fişier pentru analize ulterioare sau poate fi real-time atunci când trebuie să rezovăm repede anumite chestiuni stringente. În plus linia de comandă este una foarte flexibilă şi putem “cere” să vedem exact pachetele care ne interesează.
De obicei, tcpdump este inclus cam în toate distribuţiile Linux, deşi poate nu este instalat by default.
P.S. Aici găsiţi “man-ul” acestei comenzi dacă nu sunteţi acum în faţa unui sistem Linux.




