Tcpdump - monitorizează rețeaua, rizloff

monitorizează

Destul de des este nevoie de a afla starea de sănătate a rețelei. Sau doar în scopuri educaționale generale - pentru a afla cum interacționează obiectele din rețea între ele. Sau pentru a explora unde stă teribilul bug :). Și asta e tot pentru aceste scopuri în Unix-s ei guvernează. Pentru că totul sensibil este scris pentru niks și abia apoi portat pe Windows. Vom vorbi astăzi despre un astfel de utilitar -tcpdump.

tcpdump (din TCP și engleză dump - dump, reset) este un utilitar UNIX care vă permite să interceptați și să analizați traficul de rețea care trece prin computerul care rulează acest program.

Principalele scopuri ale tcpdump:

  • Depanarea aplicațiilor de rețea.
  • Depanarea rețelei și a configurației rețelei în general.

Cum funcționează tcpdump

Adică, la pornire, indicăm ce vrem să găsim în acel munte de informații care vor trece prin interfață. Și este necesar să specificați prin taste și expresii.

Descrierea unora dintre chei

Filtru expresie

Expresia selectează ce pachete vor fi selectate din fluxul general. Dacă nu este specificat, atunci toate pachetele care trec prin interfață vor fi selectate și afișate. În caz contrar, vor fi procesate numai acele pachete pentru care testul de expresie evaluează drept adevărat.

O expresie este formată din una sau mai multe primitive. Primitivele constau de obicei dintr-un ID (nume sau număr) urmat de unul sau mai mulți clasificatori.

Trei tipuri de clasificatoare:

  • type Ei spun de ce tip aparține ID-ul. Valorile posibile sunt gazdă, net sau port. Exemplu: „gazdă foo”, „net 128.3”, „port 20”. Dacă nu este specificat calificativul de tip, atunci se presupune gazdă.
  • dir Specifică o direcție specificătransferurile „la” și/sau „de la” ID. Valorile posibile sunt src, dst, src sau dst și src și dst. Exemplu, „src foo”, „dst net 128.3”, „src sau dst port ftp-data”. Dacă nu este specificat, atunci se presupune src sau dst. Pentru conexiunile „nule” (de exemplu, un protocol punct la punct, cum ar fi alunecarea), indicația de direcție poate fi clasificatorii de intrare și de ieșire.
  • proto Restricționează potrivirea la un anumit protocol. Protocoalele posibile sunt ether, fddi, tr, ip, ip6, arp, rarp, decnet, tcp și udp. Exemplu, „ether src foo”, „arp net 128.3”, „tcp port 21”. Dacă nu este specificat calificativul proto, atunci se presupun toate tipurile de protocol listate. De exemplu, „src foo” înseamnă „(ip sau arp sau rarp) src foo”, „net bar” înseamnă „(ip sau arp sau rarp) net bar”, iar „port 53” înseamnă „(tcp sau udp) port 53”.

În plus, există câteva cuvinte cheie specialeprimitive :gateway,broadcast,less,greater șiexpresii aritmetice.

Expresii de filtrare mai complexe pot fi construite folosind cuvintele și, sau, și nu, combinând primitive. Exemplu, „gazdă foo și nu port ftp și nu port ftp-data”. Pentru a reduce cantitatea de informații de intrare, listele identice de clasificatoare pot fi omise. Exemplu, „tcp dst port ftp sau ftp-data sau domain” este același cu „tcp dst port ftp sau tcp dst port ftp-data sau tcp dst port domain”

Unele dintre primitivele permise (pentru o listă mai completă vezi man tcpdump):

Înainte de a trece la exemple, să ne uităm la ce ne poate oferi tcpdump atunci când este executat. Rezultatele tipice aletcpdump -ttt :

Exemple specifice

  • 1. Prindem tot traficul de intrare din rețeaua locală către server. Totul este simplu aici.

Dacă îl rulați în SSHsesiune, apoi pregătiți-vă - se va turna mult și foarte repede... 2. Prindem tot traficul de intrare, excluzând traficul generat de sesiunea noastră SSH.

Acum puteți înțelege fluxul de pachete. 3. Aveți nevoie de informații despre comunicarea DNS între server și un nod de rețea.

Aici, apropo, nu numai traficul DNS va rula. În general, tot ce trece peste UDP. Puteți remedia acest lucru făcând următoarele: