Si necessiteu analitzar o interceptar paquets de xarxa en Linux, és millor utilitzar la utilitat de consola per a això. tcpdump. Però el problema sorgeix en una gestió força complicada. Sembla inconvenient que un usuari normal pugui treballar amb l’equip, però només a primera vista. L’article explicarà com s’organitza tcpdump, quina sintaxi té, com utilitzar-la i es donaran nombrosos exemples del seu ús.
Vegeu també: Tutorials per configurar una connexió a Internet a Ubuntu, Debian, servidor d'Ubuntu
Instal·lació
La majoria dels desenvolupadors de sistemes operatius basats en Linux inclouen la utilitat tcpdump a la llista de preinstal·lats, però si per alguna raó no es troba a la vostra distribució, sempre la podeu descarregar i instal·lar a través de "Terminal". Si el vostre sistema operatiu està basat en Debian, i aquest és Ubuntu, Linux Mint, Kali Linux i similars, necessiteu executar aquesta ordre:
sudo apt install tcpdump
En instal·lar heu d’introduir una contrasenya. Tingueu en compte que quan escriviu no es mostra, també per confirmar la instal·lació, heu d’introduir el caràcter "D" i premeu Introduïu.
Si teniu Red Hat, Fedora o CentOS, la comanda d’instal·lació serà així:
sudo yam instal·la tcpdump
Un cop instal·lada la utilitat, la podeu utilitzar immediatament. Això i molt més es discutiran més endavant en el text.
Vegeu també: Guia d’instal·lació de PHP per al servidor d’Ubuntu
Sintaxi
Com qualsevol altra comanda, tcpdump té la seva pròpia sintaxi. Coneixent-lo, podeu configurar tots els paràmetres necessaris que es tindran en compte a l’execució de l’ordre. La sintaxi és:
opcions tcpdump -i filtres d'interfície
Quan utilitzeu l’ordre, heu d’especificar la interfície per fer el seguiment. Els filtres i les opcions no són variables obligatòries, però permeten una configuració més flexible.
Opcions
Tot i que no cal especificar l’opció, encara cal que enumereu els disponibles. La taula no mostra la seva llista completa, sinó només les més populars, però són més que suficients per resoldre la majoria de les tasques.
Opció | Definició |
---|---|
-A | Permet ordenar paquets en format ASCII |
-l | Afegeix una funció de desplaçament. |
-i | Després d’entrada heu d’especificar l’interfície de xarxa que s’ha de supervisar. Per iniciar el seguiment de totes les interfícies, escriviu la paraula "qualsevol" després de l’opció. |
-c | Finalitza el procés de seguiment després de comprovar el nombre de paquets especificat. |
-w | Genera un fitxer de text amb un informe de verificació. |
-e | Mostra el nivell de connexió a Internet del paquet de dades. |
-L | Mostra només els protocols compatibles amb la interfície de xarxa especificada. |
-C | Crea un altre fitxer mentre escriu un paquet si la seva mida és superior a la especificada. |
-r | Obre un fitxer de lectura que s’ha creat amb l’opció -w. |
-j | El format TimeStamp s'utilitzarà per gravar paquets. |
-J | Us permet veure tots els formats disponibles de TimeStamp |
-G | S'utilitza per crear un fitxer amb registres. L’opció també requereix un valor temporal, després es crearà un registre nou |
-v, -vv, -vvv | Depenent del nombre de caràcters de l’opció, la sortida de l’ordre es detallarà (l’augment és directament proporcional al nombre de caràcters) |
-f | La sortida mostra el nom de domini de l’adreça IP |
-F | Us permet llegir informació no des de la interfície de xarxa, sinó del fitxer especificat |
-D | Demostra totes les interfícies de xarxa que es poden utilitzar. |
-n | Desactiva la visualització dels noms de domini |
-Z | Especifica l’usuari en el qual s’hauran de crear tots els fitxers. |
-K | Omet l’anàlisi de la suma de verificació |
-q | Demostració d'informació breu |
-H | Detecta els encapçalaments dels 802.11 |
-I | S'utilitza per capturar paquets en mode de monitor. |
Un cop analitzades les opcions, a continuació girem directament a les seves aplicacions. Mentrestant, es tindran en compte els filtres.
Filtres
Com es va esmentar al principi de l’article, podeu afegir filtres a la sintaxi tcpdump. Ara es tindrà en compte el més popular d’ells:
Filtre | Definició |
---|---|
amfitrió | Especifica el nom d'amfitrió. |
net | Especifica la subxarxa i la xarxa IP |
ip | Especifica l’adreça de protocol |
src | Mostra els paquets enviats des de l'adreça especificada |
dst | Mostra els paquets rebuts per l'adreça especificada. |
arp, udp, tcp | Filtrat per un dels protocols |
port | Mostra informació relacionada amb un port específic. |
i, o | S'utilitza per combinar diversos filtres en una ordre. |
menys, més gran | Paquets de sortida més petits o més grans que la mida especificada |
Tots els filtres anteriors es poden combinar entre ells, de manera que en emetre una ordre només observareu la informació que voleu veure. Per entendre amb més detall l’ús dels filtres anteriors, val la pena donar exemples.
Vegeu també: Comandes utilitzades amb freqüència en el terminal Linux
Exemples d’ús
Ara s’indicaran les opcions de sintaxi tcpdump que s’utilitzen amb freqüència. No tots poden ser llistats, ja que les seves variacions poden ser infinites.
Mostra la llista d’interfícies
Es recomana que cada usuari comprovi inicialment la llista de totes les seves interfícies de xarxa que es puguin localitzar. Des de la taula anterior, sabem que per a això heu d’utilitzar l’opció -D, per tant, al terminal executeu l’ordre següent:
sudo tcpdump -D
Exemple:
Com podeu veure, hi ha vuit interfícies a l’exemple que es pot visualitzar amb l’ordre tcpdump. L’article proporcionarà exemples de ppp0, podeu utilitzar qualsevol altre.
Captura de trànsit normal
Si necessiteu fer un seguiment d’una única interfície de xarxa, podeu fer-ho amb l’opció -i. No oblideu introduir el nom de la interfície després d’introduir-lo. Aquí teniu un exemple d’execució d’aquesta ordre:
sudo tcpdump -i ppp0
Tingueu en compte: heu d’introduir "sudo" abans del propi comandament, ja que requereix el dret del superusuari.
Exemple:
Nota: després de prémer Enter al "Terminal", els paquets interceptats es mostraran contínuament. Per aturar el flux, cal prémer la combinació de tecles Ctrl + C.
Si executeu l’ordre sense opcions i filtres addicionals, veureu el següent format per mostrar els paquets seguits:
22: 18: 52.597573 IP vrrp-topf2.p.mail.ru.https> 10.0.6.67.35482: Banderes [P.], seq 1: 595, ack 1118, guanyar 6494, opcions [nop, nop, TS val 257060077 ecr 697597623], longitud 594
On es ressalta el color:
- blau: el moment de recepció del paquet;
- taronja - versió del protocol;
- verd - adreça de l'emissor;
- porpra: l'adreça del destinatari;
- gris: informació addicional sobre tcp;
- vermell: mida del paquet (que es mostra en bytes).
Aquesta sintaxi té la capacitat de sortir a la finestra "Terminal" sense l’ús d’opcions addicionals.
Captura el trànsit amb l’opció -v
Com se sap de la taula, l'opció -v li permet augmentar la quantitat d'informació. Considerem un exemple. Comproveu la mateixa interfície:
sudo tcpdump -v -i ppp0
Exemple:
Aquí podeu veure que la línia següent apareixia a la sortida:
IP (tos 0x0, ttl 58, id 30675, desplaçament 0, banderes [DF], proto TCP (6), longitud 52
On es ressalta el color:
- taronja - versió del protocol;
- blau: la vida del protocol;
- verd: la longitud de la capçalera del camp;
- porpra: versió del paquet tcp;
- vermell: mida del paquet.
També a la sintaxi de comandes podeu escriure l’opció -vv o bé -vvv, que augmentarà encara més la quantitat d’informació que es mostra a la pantalla.
L’opció -w i -r
La taula d'opcions va esmentar la possibilitat de desar totes les dades de sortida en un fitxer separat per tal que es puguin visualitzar més endavant. L'opció és responsable d'això. -w. És molt senzill d’utilitzar, simplement introduïu-lo a l’ordre i introduïu el nom del futur fitxer amb l’extensió ".pcap". Penseu en tot l’exemple:
sudo tcpdump -i ppp0 -w file.pcap
Exemple:
Tingueu en compte: mentre escriviu registres a un fitxer, no es mostra cap text a la pantalla "Terminal".
Quan vulgueu veure la sortida enregistrada, heu d’utilitzar l’opció -rseguit del nom del fitxer enregistrat anteriorment. S'aplica sense altres opcions i filtres:
sudo tcpdump -r file.pcap
Exemple:
Ambdues opcions són perfectes en els casos en què heu de guardar grans quantitats de text per a l'anàlisi posterior.
Filtrat IP
Des de la taula de filtre, ho sabem dst us permet visualitzar a la pantalla de la consola només els paquets que s’han rebut per l’adreça especificada a la sintaxi de l’ordre. Per tant, és molt convenient veure els paquets rebuts pel vostre ordinador. Per fer-ho, l’equip només ha d’especificar la vostra adreça IP:
sudo tcpdump -i ppp0 ip dst 10.0.6.67
Exemple:
Com podeu veure, a més dst, a l’equip, també vam registrar el filtre ip. En altres paraules, vam dir a l’ordinador que en seleccionar paquets prestaria atenció a la seva adreça IP, i no a altres paràmetres.
Per IP, podeu filtrar i enviar paquets. A l’exemple que donem de nou la nostra IP. És a dir, ara farem un seguiment de quins paquets s'envien des del nostre ordinador a altres adreces. Per fer-ho, executeu l’ordre següent:
sudo tcpdump -i ppp0 ip src 10.0.6.67
Exemple:
Com podeu veure, hem canviat el filtre de la sintaxi de l’ordre. dst on src, donant així la màquina a la recerca del remitent per IP.
Filtratge HOST
Per analogia amb la IP de l’equip, podem especificar un filtre amfitrióper eliminar paquets amb l'amfitrió d’interès. És a dir, en la sintaxi, en lloc de l'adreça IP del remitent / destinatari, haureu d'especificar el seu amfitrió. Sembla així:
sudo tcpdump -i ppp0 dst host google-public-dns-a.google.com
Exemple:
A la imatge es pot veure això "Terminal" Només es mostren els paquets que s’han enviat des de l’IP a google.com host. Com podeu veure, en comptes de google host, podeu introduir-ne qualsevol.
Igual que amb el filtratge IP, la sintaxi és: dst es pot substituir per srcPer veure els paquets que s’envien al’ordinador:
sudo tcpdump -i ppp0 src amfitrió google-public-dns-a.google.com
Nota: el filtre d’amfitrió ha de ser després dst o src, en cas contrari l’ordre generarà un error. En el cas de filtratge IP, al contrari, dst i src es troben davant del filtre IP.
Filtreu i / o
Si heu d’utilitzar diversos filtres a la vegada en una sola ordre, haureu d’aplicar un filtre. i o bé o bé (depèn del cas). En especificar els filtres a la sintaxi i separar-los amb aquests operadors, els feu "funcionar" com a únics. En un exemple, sembla així:
sudo tcpdump -i ppp0 ip dst 95.47.144.254 o ip src 95.47.144.254
Exemple:
Des de la sintaxi de comandes es pot veure que es vol mostrar "Terminal" tots els paquets que s’han enviat a l’adreça 95.47.144.254 i als paquets rebuts per la mateixa adreça. També podeu canviar algunes variables d’aquesta expressió. Per exemple, en lloc d’IP, especifiqueu HOST o substituïu directament les adreces.
Filtreu el port i posicioneu-lo
Filtre port perfecte per a quan necessiteu obtenir informació sobre paquets amb un port específic. Per tant, si només voleu veure respostes o consultes DNS, heu d’especificar el port 53:
sudo tcpdump -vv -i port ppp0 53
Exemple:
Si voleu veure els paquets http, heu d’introduir el port 80:
sudo tcpdump -vv -i port ppp0 80
Exemple:
Entre altres coses, és possible fer un seguiment immediat del rang de ports. Per fer-ho, apliqueu el filtre portrange:
sudo tcpdump portrange 50-80
Com podeu veure, juntament amb el filtre portrange No cal especificar opcions addicionals. Només heu de configurar l’interval.
Protocol de filtratge
També podeu mostrar només el trànsit que correspon a qualsevol protocol. Per fer-ho, utilitzeu el nom d'aquest protocol com a filtre. Vegem un exemple udp:
sudo tcpdump -vvv -i ppp0 udp
Exemple:
Com podeu veure a la imatge, després d’executar l’ordre en "Terminal" només es van mostrar els paquets amb el protocol udp. En conseqüència, podeu filtrar per altres persones, per exemple, arp:
sudo tcpdump -vvv -i ppp0 arp
o bé tcp:
sudo tcpdump -vvv -i ppp0 tcp
Filtra la xarxa
Operador net ajuda a filtrar paquets basant-se en la designació de la seva xarxa. És tan fàcil d'utilitzar com la resta: cal especificar l’atribut a la sintaxi net, després introduïu l’adreça de xarxa. Heus aquí un exemple d’aquesta ordre:
sudo tcpdump -i ppp0 net 192.168.1.1
Exemple:
Filtre per mida del paquet
No hem considerat dos filtres més interessants: menys i major. De la taula amb filtres, sabem que serveixen per produir més paquets de dades (menys) o menys (major) la mida especificada després de l’entrada de l’atribut.
Suposem que només volem controlar els paquets que no superin els 50 bits, llavors l’ordre apareixerà així:
sudo tcpdump -i ppp0 menys 50
Exemple:
Ara anem a mostrar "Terminal" paquets de més de 50 bits:
sudo tcpdump -i ppp0 major 50
Exemple:
Com podeu veure, s’utilitzen igualment, l’única diferència en el nom del filtre.
Conclusió
Al final de l'article podem concloure que l'equip tcpdump - Aquesta és una gran eina amb la qual podeu fer un seguiment de qualsevol paquet de dades transmès per Internet. Però per a això no n'hi ha prou amb introduir el propi comandament en "Terminal". Per aconseguir el resultat desitjat, s’obtindrà només si utilitzeu tot tipus d’opcions i filtres, així com les seves combinacions.