Exemples d'tcpdump en Linux

Si necessita analitzar o interceptar paquets de xarxa en Linux, la millor manera de fer-ho és utilitzar la utilitat de consola tcpdump. Però el problema sorgeix en la seva complicada gestió. L'usuari mitjà el trobarà bastant incòmode, però això és només a primera vista. En aquest article, direm com es construeix tcpdump, quina és la seva sintaxi, com usar-lo i també donarem nombrosos exemples del seu ús.

Llegiu també: Guies de configuració de la connexió a Internet per Ubuntu, Debian, Ubuntu Server

instal·lació de

La majoria dels proveïdors de sistemes operatius basats en Linux inclouen la utilitat tcpdump en la llista de preinstal·lats, però si per alguna raó no està en la seva distribució, sempre es pot descarregar i instal·lar a través d' "Terminal".. Si tens un sistema operatiu basat en Debian, que és Ubuntu, Linux Mint, Kali Linux i similars, has d'executar aquesta comanda:

sudo apt install tcpdump

A l'instal·lar-lo, haurà d'introduir una contrasenya. Tingueu en compte que això no es mostra quan s'escriu, i també cal introduir el "Д" i premi entre en.

Si tens Red Hat, Fedora o CentOS, la comanda per instal·lar serà el següent:

sudo yam install tcpdump

Un cop instal·lada la utilitat, pot utilitzar immediatament. Això i molt més es tractarà més endavant en el text.

Llegiu també: Guia per instal·lar PHP en Ubuntu Server

sintaxi

Com qualsevol altre ordre, tcpdump té la seva pròpia sintaxi. Conèixer-li permetrà establir tots els paràmetres necessaris per a executar la comanda. La sintaxi és la següent:

tcpdump опции -i интерфейс фильтры

A l'utilitzar la comanda, assegureu-vos d'especificar la interfície que es va a rastrejar. Els filtres i les opcions són variables opcionals, però permeten una personalització més flexible.

Opcions

Encara que no cal especificar una opció, si cal enumerar les disponibles. Aquesta taula no les conté totes, només les més populars, però són més que suficients per resoldre la majoria dels teus problemes.

opciódefinició
-APermet ordenar els paquets amb format ASCII
-lAfegeix una funció de desplaçament
-iDesprés d'entrar, ha d'especificar la interfície de xarxa que es va a supervisar. Per començar a supervisar totes les interfícies, escriviu la paraula "any" després de l'opció
-cCompleta el procés de rastreig després de comprovar el nombre de paquets especificat
-wGenera un arxiu de text amb un informe de verificació
-eIndica el nivell de connexió a Internet de l'paquet de dades
-LNomés es mostren els protocols que admeten la interfície de xarxa especificada
-CCrea un altre arxiu mentre escriu un paquet si la seva mida és més gran que l'especificat
-rObre l'arxiu per a la seva lectura que va ser creat amb l'opció -w
-jS'utilitzarà el format TimeStamp pel registre dels paquets
-JPermet veure tots els formats disponibles d'marques de temps
-GServeix per crear un fitxer de registre. L'opció també requereix especificar un valor de temps després de el qual es crearà un nou registre
-v, -vv, -vvvDepenent de el nombre de caràcters de l'opció, la sortida de la comanda serà més detallada (l'augment és directament proporcional a el nombre de caràcters)
-fLa sortida mostra el nom de domini de les adreces IP
-FPermet llegir la informació d'un arxiu especificat en lloc d'una interfície de xarxa
-DDemostra totes les interfícies de xarxa que es poden utilitzar
-nDesactiva la visualització dels noms de domini
-ZEspecifica l'usuari sota la compte crearà els arxius
-KOmetre l'anàlisi de la suma de comprovació
-qDemostració d'informació breu
-HPermet detectar capçaleres 802.11s
-IS'utilitza quan es capturen paquets en mode monitor

Un cop desglossades les opcions, a continuació passarem directament a les seves aplicacions. Per ara es consideraran els filtres.

filtres

Com s'ha comentat a l'inici d'aquest article, pots afegir filtres a la sintaxi de tcpdump. A continuació veurem els més populars:

Filtrardefinició
hostS'utilitza per especificar un nom d'amfitrió
vermellEspecifica la subxarxa IP i la xarxa
ipS'utilitza per especificar l'adreça de l'protocol
srcMostra els paquets enviats des de l'adreça especificada
primerMostra els paquets rebuts per l'adreça especificada
arp, udp, tcpFiltrat per un dels protocols
portMostra informació relacionada amb un port específic
i, oS'utilitza per combinar diversos filtres en una ordre
menys, mésSortida de paquets més petits o més grans que la mida especificada

Tots els filtres anteriors poden combinar-se entre si, de manera que només veurà la informació que vulgueu a la sortida de la comanda. Per saber més sobre com utilitzar els filtres anteriors, heus aquí alguns exemples.

Llegiu també: Ordres d'ús freqüent en la "Terminal" de Linux

Exemples d'ús

A continuació, enumerarem les variants més utilitzades de la sintaxi de la comanda tcpdump. No és possible enumerar-les totes, perquè pot haver-hi un nombre infinit de variacions.

Veure llista d'interfícies

Es recomana que cada usuari comprovi inicialment la llista de totes les seves interfícies de xarxa que poden ser rastrejades. Sabem, per la taula anterior, que cal utilitzar l'opció -DAixí que en el terminal executi la següent comanda:

sudo tcpdump -D

Exemple:

Com podeu veure, hi ha vuit interfícies en l'exemple, que es poden veure utilitzant la comanda tcpdump. En aquest article s'ofereixen exemples amb ppp0.Podeu fer servir qualsevol altre.

Els habituals agafades de trànsit

Si voleu rastrejar una sola interfície de xarxa, pot fer-ho amb la funció -i. No oblidis especificar el nom de la interfície després d'introduir-lo. Heus aquí un exemple d'execució d'aquest comandament:

sudo tcpdump -i ppp0

Nota: ha d'escriure "sudo" abans de l'propi comandament, ja que requereix privilegis de root.

Exemple:

Nota: després de prémer Enter a "Terminal", els paquets capturats es mostraran contínuament. Per aturar el seu flux, amb Control + C.

Si executa la comanda sense cap opció o filtre addicional, veurà el següent format per mostrar els paquets rastrejats:

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], length 594

On es destaca el color:

  • en blau - temps de recuperació de paquets;
  • en taronja - versió de l'protocol;
  • verd - direcció de l'remitent;
  • porpra - direcció de l'destinatari;
  • carn de porc - més informació sobre tcp;
  • en vermell - mida de l'paquet (mostrat en bytes).

Aquesta sintaxi té la capacitat d'emetre a la finestra "Terminal". sense utilitzar opcions addicionals.

Captura de trànsit amb l'opció -v

Com sabem per la taula, l'opció -v permet augmentar la quantitat d'informació. Anem a desglossar amb un exemple. Comprovem la mateixa interfície:

sudo tcpdump -v -i ppp0

Exemple:

Aquí pot notar que la següent línia va aparèixer a la sortida:

IP (tos 0x0, ttl 58, id 30675, offset 0, flags [DF], proto TCP (6), length 52

On es destaca el color:

  • en taronja - versió de l'protocol;
  • en blau - la durada de l'protocol;
  • en verd - la longitud de la capçalera de camp;
  • porpra - versió de l'paquet tcp;
  • en vermell - mida de el paquet.

També pots posar una opció en la sintaxi de la comanda -vv O -vvvLa següent taula descriu les etiquetes d'aquesta pantalla.

Opcions -wy -r

A la taula d'opcions s'esmenta la possibilitat de guardar tots els resultats en un arxiu separat per poder visualitzar-los posteriorment. Això es controla amb l'opció -w. És bastant senzill d'utilitzar, només cal especificar-ho en la comanda i després escriure el nom de el futur arxiu amb l'extensió ".Pcap". Considerem tot amb l'ajuda d'un exemple:

sudo tcpdump -i ppp0 -w file.pcap

Exemple:

Nota: No es mostra cap text a la pantalla de l'Terminal mentre s'escriuen els registres en un arxiu.

Quan vulgui veure la sortida gravada, ha d'utilitzar l'opció -rseguit del nom de l'arxiu prèviament gravat. S'aplica sense altres opcions i filtres:

sudo tcpdump -r file.pcap

Exemple:

Les dues opcions són excel·lents quan es necessita guardar grans quantitats de text per al seu posterior anàlisi.

Filtrat per IP

A partir de la taula de filtres, sabem que primer li permet mostrar només els paquets que van ser rebuts per la direcció que s'especifica en la sintaxi de la comanda. És molt convenient mirar a través dels paquets rebuts per la seva ordinador d'aquesta manera. Tot el que has de fer és especificar la teva adreça IP en la comanda:

sudo tcpdump -i ppp0 ip dst 10.0.6.67

Exemple:

Com es pot veure, a més de primeren la comanda també prescrivim un filtre ip. En altres paraules, li hem dit a l'ordinador que presti atenció a la direcció IP dels paquets i no a altres paràmetres quan els estigui seleccionant.

També pot filtrar els paquets que s'envien per IP. En l'exemple, prenguem de nou la nostra IP. Així que ara veurem quins paquets s'envien des del nostre ordinador a altres direccions. Per a això, executeu la següent comanda

sudo tcpdump -i ppp0 ip src 10.0.6.67

Exemple:

Com pots veure, en la sintaxi de la comanda hem canviat el filtre primer en src, Indicant així a la màquina que busqui el remitent per IP.

Filtrat per HOST

De manera similar a IP, podem especificar un filtre en la comanda hostper filtrar els paquets amb el host d'interès. Això vol dir que en lloc de l'adreça IP de l'emissor / receptor hauràs d'especificar el seu host a la sintaxi. Es veu així:

sudo tcpdump -i ppp0 dst host google-public-dns-a.google.com

Exemple:

A la imatge, es pot veure que en el "Terminal". només es mostren els paquets enviats des de la nostra IP a l'host de google.com. Com pots entendre, en lloc de google host, pots introduir qualsevol altre.

A l'igual que amb el filtrat d'IP, en la sintaxi primer pot substituir-se per srcper veure els paquets que s'envien al seu ordinador:

sudo tcpdump -i ppp0 src host google-public-dns-a.google.com

Nota: El filtre d'amfitrió ha d'anar després de dst o src, en cas contrari la comanda generarà un error. En el cas de l'filtrat IP, per contra, dst i src vénen abans de l'filtre ip.

Aplicació de l'filtre yyo

Si necessita utilitzar diversos filtres en una ordre alhora, ha d'aplicar el filtre y o o (Depèn de el cas). A l'especificar els filtres en la sintaxi i separar-los amb aquests operadors, els "fa" funcionar com un de sol. En un exemple es veu així:

sudo tcpdump -i ppp0 ip dst 95.47.144.254 or ip src 95.47.144.254

Exemple:

De la sintaxi de la comanda podem veure que volem mostrar "Terminal". tots els paquets enviats a 95.47.144.254 i els paquets rebuts per la mateixa direcció. També pots canviar algunes variables en aquesta expressió. Per exemple, pot substituir IP per HOST o substituir la pròpia direcció.

Filtre de port i portrange

Filtrar port és genial quan es vol obtenir informació sobre els paquets en un port específic. Per exemple, si només necessita veure les respostes o peticions DNS, ha d'especificar el port 53:

sudo tcpdump -vv -i ppp0 port 53

Exemple:

Si voleu veure els paquets http, ha d'introduir el port 80:

sudo tcpdump -vv -i ppp0 port 80

Exemple:

Entre altres coses, és possible rastrejar una sèrie de ports alhora. Per a això, apliqui un filtre portrange:

sudo tcpdump portrange 50-80

Com podeu veure, juntament amb el filtre portrange No cal especificar opcions addicionals. N'hi ha prou amb especificar el rang.

Filtrat per protocol

També pot mostrar només el trànsit que coincideixi amb un protocol determinat. Per això, utilitzeu el nom de l'protocol com a filtre. Vegem un exemple udp:

sudo tcpdump -vvv -i ppp0 udp

Exemple:

Com es pot veure a la imatge, després d'executar la comanda a "Terminal". només els paquets amb el protocol udp. En conseqüència, també pot filtrar per altres, per exemple arp:

sudo tcpdump -vvv -i ppp0 arp

o tcp:

sudo tcpdump -vvv -i ppp0 tcp

Xarxa de filtres

Operador vermell ajuda a filtrar els paquets prenent com a base la seva designació de xarxa. És tan fàcil d'utilitzar com els altres: cal especificar l'atribut en la sintaxi vermelli després escriviu l'adreça de la xarxa. Heus aquí un exemple d'aquest comandament:

sudo tcpdump -i ppp0 net 192.168.1.1

Exemple:

Filtrat per grandària de paquet

No hem cobert altres dos filtres interessants: menys и . De la taula amb els filtres sabem que serveixen per donar sortida a paquets de dades més grans (menys) O menys () De la mida especificada després d'introduir l'atribut.

Suposem que només volem supervisar els paquets que no superen la marca de 50 bits, llavors la comanda tindria la següent manera:

sudo tcpdump -i ppp0 less 50

Exemple:

Ara anem a mapejar en "Terminal". paquets de mida superior a 50 bits:

sudo tcpdump -i ppp0 greater 50

Exemple:

Com podeu veure, s'apliquen de la mateixa manera, l'única diferència és el nom de l'filtre.

Conclusió:

A la fi de l'article, es pot concloure que l'equip tcpdump - és una gran eina que pot utilitzar per rastrejar qualsevol paquet de dades que es transmeti per Internet. Però no n'hi ha prou amb teclejar el propi comandament a "Terminal".. Només podrà aconseguir el resultat desitjat si utilitza totes les opcions i filtres possibles i les seves combinacions.

Ens alegrem que hàgim pogut ajudar amb el seu problema.

Descriviu el que no li ha funcionat.
Els nostres especialistes intentaran respondre amb la major rapidesa possible.

Li ha ajudat aquest article?