Exemplos de tcpdump de Linux

Pin
Send
Share
Send

Se precisa analizar ou interceptar paquetes de rede en Linux, é mellor empregar unha utilidade para consolas tcpdump. Pero o problema xorde na súa xestión bastante complicada. Parecerá ao usuario medio que traballar coa utilidade non é conveniente, pero isto só é a primeira vista. O artigo contaráche como funciona tcpdump, que sintaxe ten, como empregalo e se darán numerosos exemplos do seu uso.

Vexa tamén: Guías para configurar unha conexión a Internet en Ubuntu, Debian, Ubuntu Server

Instalación

A maioría dos desenvolvedores de sistemas operativos baseados en Linux inclúen a utilidade tcpdump na lista de preinstalados, pero se por algún motivo non está na súa distribución, sempre pode descargala e instalala a través de "Terminal". Se o teu sistema operativo está baseado en Debian e estes son Ubuntu, Linux Mint, Kali Linux e outros, necesitará executar este comando:

sudo apt instalar tcpdump

Ao instalar, ten que introducir un contrasinal. Teña en conta que ao marcar non se mostra, tamén para confirmar a configuración que precisa introducir o personaxe D e fai clic Introduza.

Se tes Red Hat, Fedora ou CentOS, o comando de instalación terá o seguinte aspecto:

sudo yam instalar tcpdump

Despois de instalar a utilidade, pódese empregar de inmediato. Isto e moito máis falaremos máis adiante no texto.

Vexa tamén: Guía de instalación de PHP no servidor Ubuntu

Sintaxe

Como calquera outro comando, tcpdump ten a súa propia sintaxe. Coñecéndoo, podes establecer todos os parámetros necesarios que se terán en conta á hora de executar o comando. A sintaxis é a seguinte:

opcións tcpdump -i filtros de interface

Ao usar o comando, debes especificar a interface para o seguimento. Os filtros e as opcións son variables opcionais, pero permiten unha personalización máis flexible.

Opcións

Aínda que non é necesario indicar unha opción, aínda hai que listar as dispoñibles. A táboa non mostra a súa lista completa, senón só as máis populares, pero son máis que suficientes para resolver a maioría das tarefas.

OpciónDefinición
-APermite ordenar paquetes con formato ASCII
-lEngade unha función de desprazamento.
-iDespois de entrar, cómpre especificar a interface de rede que se vai controlar. Para comezar a controlar todas as interfaces, introduza a palabra "calquera" despois da opción
-cFinaliza o proceso de seguimento despois de comprobar o número especificado de paquetes
-wXera un ficheiro de texto cun informe de verificación
-EMostra o nivel de conexión a internet coa conexión de datos
-LMostra só os protocolos que admite a interface de rede especificada.
-CCrea outro ficheiro durante a gravación de paquetes se o seu tamaño é maior que o especificado
-rAbre un ficheiro de lectura que se creou usando a opción -w
-jO formato TimeStamp empregarase para gravar paquetes
-JPermite ver todos os formatos dispoñibles TimeStamp
-GServe para crear un ficheiro de rexistro. A opción tamén require un valor temporal, despois do cal se creará un novo rexistro
-v, -vv, -vvvDependendo do número de caracteres da opción, a saída do comando será máis detallada (o aumento é directamente proporcional ao número de caracteres)
-fA saída mostra o nome de dominio dos enderezos IP
-FPermite ler información non desde a interface de rede, senón desde o ficheiro especificado
-DDemostra todas as interfaces de rede que se poden usar.
-nDesactiva a visualización de nomes de dominio
-ZEspecifica o usuario en cuxa conta se crearán todos os ficheiros.
-KSkipping Checksum Análise
-qResumo da vitrina
-HDetecta cabeceiras 802.11s
-EuEmprégase para capturar paquetes en modo monitor

Examinadas as opcións, un pouco máis baixas imos directamente ás súas aplicacións. Mentres tanto, consideraranse filtros.

Filtros

Como se di ao principio do artigo, pode engadir filtros á sintaxe de tcpdump. Agora considerarase o máis popular deles:

FiltroDefinición
anfitriónEspecifica o nome do servidor
netoIndica subredes e redes IP
ipEspecifica o enderezo do protocolo
srcMostra os paquetes que foron enviados desde o enderezo especificado
dstMostra os paquetes que foron recibidos polo enderezo especificado
arp, udp, tcpFiltrado por un dos protocolos
portoMostra información relacionada cun porto específico
e, ouCombina varios filtros nun comando.
menos maiorPaquetes de saída menores ou maiores que o tamaño especificado

Todos os filtros anteriores pódense combinar entre si, polo que na emisión do comando só verás a información que queres ver. Para comprender con máis detalle o uso dos filtros anteriores, paga a pena dar exemplos.

Vexa tamén: Comandos de uso frecuente no terminal de Linux

Exemplos de uso

As opcións de sintaxe usadas frecuentemente para o comando tcpdump mostraranse agora. Non se poden enumerar todos, xa que pode haber un número infinito das súas variacións.

Ver unha lista de interfaces

É recomendable que cada usuario comprobe inicialmente a lista de todas as súas interfaces de rede que se poden rastrexar. Na táboa anterior sabemos que para iso cómpre usar a opción -D, polo que no terminal, execute o seguinte comando:

sudo tcpdump -D

Un exemplo:

Como podes ver, o exemplo ten oito interfaces que se poden ver co comando tcpdump. O artigo fornecerá exemplos ppp0Podes usar calquera outro.

Captura de tráfico normal

Se precisa rastrexar unha interface de rede, pode facelo usando a opción -i. Non esquezas introducir o nome da interface despois de ingresala. Aquí ten un exemplo de tal comando:

sudo tcpdump -i ppp0

Teña en conta: antes do comando hai que introducir "sudo", xa que require dereitos de usuario.

Un exemplo:

Nota: despois de premer Enter no "Terminal", os paquetes interceptados mostraranse continuamente. Para deter o fluxo, cómpre premer a combinación de teclas Ctrl + C.

Se executa o comando sen opcións e filtros adicionais, verá o seguinte formato para mostrar paquetes controlados:

22: 18: 52.597573 IP vrrp-topf2.p.mail.ru.https> 10.0.6.67.35482: Bandeiras [P.], sec. 1: 595, ack 1118, win 6494, opcións [nop, nop, TS val 257060077 ecr 697597623], lonxitude 594

Onde resalta a cor:

  • azul: hora de recepción do paquete;
  • laranxa: versión de protocolo;
  • verde - enderezo do remitente;
  • violeta: o enderezo do destinatario;
  • gris - información adicional sobre tcp;
  • tamaño de paquete vermello (mostrado en bytes).

Esta sintaxe ten a capacidade de mostrar nunha xanela. "Terminal" sen usar opcións adicionais.

Captura de tráfico coa opción -v

Como se sabe na táboa, a opción -v permite aumentar a cantidade de información. Tomemos un exemplo. Comprobe a mesma interface:

sudo tcpdump -v -i ppp0

Un exemplo:

Aquí podes ver que na saída apareceu a seguinte liña:

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

Onde resalta a cor:

  • laranxa: versión de protocolo;
  • azul: vida útil do protocolo;
  • verde: a lonxitude da cabeceira do campo;
  • púrpura - versión do paquete tcp;
  • vermello: tamaño do paquete.

Tamén na sintaxe do comando pode escribir unha opción -vv ou -vvv, o que aumentará aínda máis a cantidade de información visualizada na pantalla.

Opción -w e -r

Na táboa de opcións mencionábase a posibilidade de gardar toda a saída nun ficheiro separado para que poida visualizalo máis tarde. A opción é responsable diso. -w. Usalo é bastante sinxelo, só tes que especificalo na orde e logo introduza o nome do futuro ficheiro coa extensión ".pcap". Vexamos un exemplo:

sudo tcpdump -i ppp0 -w file.pcap

Un exemplo:

Teña en conta: ao escribir os rexistros nun ficheiro, non aparece ningún texto na pantalla "Terminal".

Cando queiras ver a saída gravada, debes usar a opción -r, despois do cal escriba o nome do ficheiro anteriormente gravado. Úsase sen outras opcións e filtros:

sudo tcpdump -r file.pcap

Un exemplo:

Ambas as opcións son excelentes nos casos en que precisa gardar grandes cantidades de texto para analizar máis tarde.

Filtrado IP

Desde a táboa de filtros sabemos diso dst Permite amosar na pantalla da consola só aqueles paquetes que recibiron o enderezo especificado na sintaxe do comando. Así, é moi conveniente ver os paquetes recibidos polo seu ordenador. Para iso, o equipo só precisa especificar o seu enderezo IP:

sudo tcpdump -i ppp0 ip dst 10.0.6.67

Un exemplo:

Como podes ver, ademáis dst, tamén rexistramos un filtro no equipo ip. Noutras palabras, dixémoslle á computadora que ao seleccionar paquetes prestaría atención ao seu enderezo IP e non a outros parámetros.

Por IP, tamén pode filtrar os paquetes saíntes. Volveremos a dar a nosa IP no exemplo. É dicir, agora faremos un seguimento dos paquetes que se envían desde o noso ordenador a outros enderezos. Para iso, execute o seguinte comando:

sudo tcpdump -i ppp0 ip src 10.0.6.67

Un exemplo:

Como podes ver, na sintaxe do comando cambiamos o filtro dst en diante src, dándolle así á máquina que busque un remitente mediante IP.

Filtrado HOST

Por analoxía con IP no comando, podemos especificar un filtro anfitriónfiltrar paquetes coa hostia de interese. É dicir, na sintaxe, en lugar do enderezo IP do remitente / receptor, precisará especificar o seu host. Parece así:

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

Un exemplo:

Na imaxe podes ver iso "Terminal" só se amosan os paquetes que foron enviados desde a nosa IP á host de google.com. Como podes entender, en vez do google host, podes ingresar calquera outro.

Do mesmo xeito que co filtrado de IP, a sintaxe dst pódese substituír por srcPara ver os paquetes que se envían ao ordenador:

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

Nota: o filtro do host debe estar despois de dst ou src, se non, o comando lanzará un erro. No caso do filtrado por IP, pola contra, dst e src están diante do filtro ip.

Aplicando o e ou o filtro

Se precisa usar varios filtros nun só comando á vez, entón debe aplicar un filtro e ou ou (depende do caso) Ao especificar filtros na sintaxe e separalos con estes operadores, faralles funcionar como un. Por exemplo, semella:

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

Un exemplo:

A sintaxe do comando mostra o que queremos mostrar "Terminal" todos os paquetes que foron enviados ao enderezo 95.47.144.254 e os paquetes recibidos polo mesmo enderezo. Tamén pode cambiar algunhas variables nesta expresión. Por exemplo, no canto de IP, especifique HOST ou substitúa directamente as direccións.

Filtro de porto e porta

Filtro porto perfecto nos casos en que necesite obter información sobre paquetes cun porto específico. Polo tanto, se só precisa ver respostas ou consultas DNS, ten que especificar o porto 53:

sudo tcpdump -vv -i ppp0 port 53

Un exemplo:

Se desexa ver paquetes http, ten que entrar no porto 80:

porto 80 sudo tcpdump -vv -i ppp0

Un exemplo:

Entre outras cousas, é posible rastrexar de inmediato a gama de portos. Aplícase un filtro para iso. arranxar:

sudo tcpdump portrange 50-80

Como podes ver, xunto co filtro arranxar opcións opcionais son obrigatorios. Basta configurar o rango.

Filtrado de protocolos

Tamén podes ver o tráfico que corresponda a calquera protocolo. Para iso, use o nome deste protocolo como filtro. Vexamos un exemplo udp:

sudo tcpdump -vvv -i ppp0 udp

Un exemplo:

Como podes ver na imaxe, despois de executar o comando en "Terminal" só se mostraron paquetes co protocolo udp. Así, pódense filtrar por outros, por exemplo arp:

sudo tcpdump -vvv -i ppp0 arp

ou tcp:

sudo tcpdump -vvv -i ppp0 tcp

Filtro neto

Operador neto axuda a filtrar os paquetes en función da súa designación de rede. Usalo é tan sinxelo coma o resto: cómpre especificar un atributo na sintaxe netoe logo introduza o enderezo da rede. Aquí ten un exemplo de tal comando:

sudo tcpdump -i ppp0 net 192.168.1.1

Un exemplo:

Filtrado de tamaño de paquetes

Non consideramos dous filtros máis interesantes: menos e maior. Da táboa con filtros, sabemos que serven para emitir máis paquetes de datos (menos) ou menos (maior) o tamaño especificado despois de introducir o atributo.

Supoñamos que queremos controlar só paquetes que non superen a marca de 50 bits, entón o comando terá o seguinte aspecto:

sudo tcpdump -i ppp0 menos 50

Un exemplo:

Agora imos amosar "Terminal" paquetes maiores de 50 bits:

sudo tcpdump -i ppp0 maior 50

Un exemplo:

Como podes ver, aplícanse do mesmo xeito, a única diferenza é o nome do filtro.

Conclusión

Ao final do artigo, podemos concluír que o equipo tcpdump - Esta é unha excelente ferramenta coa que podes rastrexar calquera paquete de datos transmitido por Internet. Pero non é suficiente con introducir o comando "Terminal". O resultado desexado obterase só se empregas todo tipo de opcións e filtros, así como as súas combinacións.

Pin
Send
Share
Send