Introducere în Tcpdump

Dacă rulați un server, fără îndoială veți ajunge la un punct în care trebuie să reduceți anumite probleme legate de rețea. Desigur, ar fi ușor să trageți doar un mail către departamentul de asistență, dar uneori trebuie să vă murdăriți mâinile. În acest caz, tcpdumpeste instrumentul pentru acel job. Tcpdump este un analizator de pachete de rețea care rulează sub linia de comandă.

Acest articol va fi împărțit în trei părți:

  • Caracteristici de bază.
  • Filtrare pe baza anumitor caracteristici ale traficului.
  • Un scurt fragment de funcții mai avansate (cum ar fi expresii logice, filtrare prin steaguri TCP).

Deoarece tcpdump nu este inclus în majoritatea sistemelor de bază, va trebui să îl instalați. Cu toate acestea, aproape toate distribuțiile Linux au tcpdump în depozitele lor de bază. Pentru distribuțiile bazate pe Debian, comanda de instalare a tcpdump este:

apt-get install tcpdump

Pentru CentOS / RedHat, utilizați următoarea comandă:

yum install tcpdump

FreeBSD oferă un pachet pre-construit care poate fi instalat prin emiterea:

pkg install tcpdump

Există, de asemenea, un port, net/tcpdumpcare poate fi instalat prin:

cd /usr/ports/net/tcpdump
make install clean

Dacă executați tcpdumpfără niciun argument, veți fi bătut cu rezultate. Rularea pe o instanță proaspăt rotită aici pe Vultr pentru mai puțin de cinci secunde oferă următoarele rezultate:

2661 packets captured
2663 packets received by filter
0 packets dropped by kernel

Înainte de a vedea mai multe detalii despre modul de filtrare a intrării, ar trebui să aruncați o privire asupra unor parametri care pot fi transmise la tcpdump:

  • -i- Specifică interfața pe care doriți să ascultați pe, de exemplu: tcpdump -i eth0.
  • -n- Nu încercați să faceți căutări invers pe adresele IP, de exemplu: tcpdump -n(dacă adăugați un alt ntcpdump vă va afișa numerele de port în loc de nume).
  • -X- Arată conținutul pachetelor colectate: tcpdump -X.
  • -c- Captați doar xpachete, xfiind un număr arbitrar, de exemplu, tcpdump -c 10captează exact 10 pachete.
  • -v- Măriți cantitatea de informații despre pachete care vă sunt afișate, vadăugând mai multă veridicitate.

Fiecare dintre acești parametri menționați aici pot fi combinați împreună. Dacă doriți să capturați 100 de pachete, dar numai pe interfața VPN tun0, atunci comanda tcpdump va arăta astfel:

tcpdump -i tun0 -c 100 -X

Există zeci (dacă nu chiar sute) de opțiuni în plus față de cele puține, dar sunt cele mai comune. Simțiți-vă liber să citiți pagina de manual a lui tcpdump pe sistemul dvs.

Acum că aveți o înțelegere de bază a tcpdump, este timpul să analizați una dintre cele mai nemaipomenite caracteristici ale tcpdump: expresiile. Expresiile îți vor face viața mult mai ușoară. Ele sunt, de asemenea, cunoscute sub numele de BPF sau Berkeley Packet Filters. Utilizarea expresiilor vă permite să afișați (sau să ignorați) pachete selectiv pe baza anumitor caracteristici - cum ar fi originea, destinația, mărimea sau chiar numărul de secvență TCP.

Până acum ați reușit să vă limitați căutarea la o anumită cantitate de pachete de pe o anumită interfață, dar să fim sinceri aici: asta lasă încă prea mult zgomot de fond pentru a lucra eficient cu datele colectate. Acolo intră în joc expresiile. Conceptul este destul de simplu, așa că vom lăsa aici teoria uscată și vom susține înțelegerea cu câteva exemple practice.

Expresiile pe care le veți folosi cel mai mult sunt:

  • host - Căutați trafic pe baza numelor de gazdă sau a adreselor IP.
  • srcsau dst- Căutați trafic de la sau către o anumită gazdă.
  • proto- Căutați traficul unui anumit protocol. Funcționează pentru tcp, udp, icmp și altele. Omiterea protocuvântului cheie este de asemenea posibilă.
  • net - Căutați trafic către / dintr-o anumită gamă de adrese IP.
  • port - Căutați trafic către / dintr-un anumit port.
  • greatersau less- Căutați trafic mai mare sau mai mic decât o anumită cantitate de octeți.

În timp ce pagina manuală tcpdumpconține doar câteva exemple, pagina de manual pentru pcap-filterexplicații oferă detalii despre modul în care funcționează și poate fi aplicat fiecare filtru.

Dacă doriți să vedeți cum merge comunicarea dvs. cu un anumit server, atunci puteți utiliza hostcuvântul cheie, de exemplu (inclusiv unii dintre parametrii de mai sus):

tcpdump -i eth0 host vultr.com

Uneori există computere în rețea care nu onorează MTU sau vă trimit spam cu pachete mari; filtrarea lor poate fi dificilă uneori. Expresiile vă permit să filtrați pachetele mai mari sau mai mici decât un anumit număr de octeți:

tcpdump -i eth0 -nn greater 128
or
tcpdump -i eth0 -nn less 32

Poate doar un anumit port vă interesează. În acest caz, utilizați portexpresia:

tcpdump -i eth0 -X port 21

Puteți, de asemenea, să aveți grijă pentru intervalele de porturi:

tcdump -i eth0 -X portrange 22-25

Deoarece gateway-urile NAT sunt destul de comune, este posibil să căutați doar porturile de destinație:

tcpdump dst port 80

Dacă urmăriți traficul către serverul dvs. web, este posibil să doriți să consultați doar traficul TCP către portul 80:

tcpdump tcp and dst port 80

Probabil că vă întrebați ce face cuvântul cheie andacolo. Buna intrebare. Asta ne aduce la ultima parte a acestui articol.

tcpdump oferă suport de bază pentru expresii logice, mai precis:

  • and/ &&- Logic „și”.
  • or/ ||- Logic "sau".
  • not/ !- Logic „nu”.

Împreună cu capacitatea de a grupa expresiile împreună, acest lucru vă permite să creați căutări foarte puternice pentru traficul de intrare și de ieșire. Deci, să filtrăm traficul care vine de la vultr.com pe portul 22 sau 443:

tcpdump -i eth0 src host vultr.com and (dst port 22 or 443)

Rularea acestui lucru pe linia de comandă vă va produce următoarea eroare:

bash: syntax error near unexpected token `('

Asta pentru că există o avertizare: bashîncearcă să evalueze fiecare personaj pe care îl poate. Aceasta include personajele (și ). Pentru a evita acea eroare, ar trebui să utilizați ghilimele unice în jurul expresiei combinate:

tcpdump -i eth0 'src host vultr.com and (dst port 22 or 443)'

Un alt exemplu util: atunci când depanați probleme SSH cu unul dintre utilizatorii dvs., poate doriți să ignorați tot ce este legat de sesiunea SSH:

tcpdump '!(host $youripaddress) && port 22)'

Din nou, cazurile de utilizare sunt interminabile și puteți specifica în profunzimi extreme ce fel de trafic doriți să vedeți. Următoarea comandă vă va arăta doar pachetele SYNACK ale unei strângeri de mână TCP:

tcpdump -i eth0 'tcp[13]=18'

Acest lucru funcționează uitându-ne la al treisprezecelea decalaj al antetului TCP și al optsprezecelea octet în cadrul acestuia.

Dacă ai făcut-o până aici, atunci ești pregătit pentru majoritatea cazurilor de utilizare care vor apărea. Abia pot atinge suprafața fără să intru în prea multe detalii. Vă recomand să experimentați un pic mai departe diferitele opțiuni și expresii; și, ca de obicei: referiți la pagina de manuale când vă pierdeți.

Nu în ultimul rând - o privire rapidă înapoi. Vă amintiți începutul acestui articol? Cu miile de pachete capturate în câteva secunde? Puterea de tcpdumppoate reduce această mulțime:

tcpdump -i eth0 tcp port 22

Rezultatul este acum:

81 packets captured
114 packets received by filter
0 packets dropped by kerne

Acest lucru este mult mai sănătos și mai ușor de depanat. Rețea fericită!

Lasă un comentariu

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.

6 lucruri extrem de nebunești despre Nintendo Switch

6 lucruri extrem de nebunești despre Nintendo Switch

Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.

Promisiuni tehnologice care sunt încă nelivrate

Promisiuni tehnologice care sunt încă nelivrate

Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!

Te-ai întrebat vreodată cum câștigă hackerii bani?

Te-ai întrebat vreodată cum câștigă hackerii bani?

Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe