Folla de cálculo en Microsoft Excel

Se necesitas analizar ou interceptar paquetes de rede en Linux, é mellor usar a utilidade de consola para isto. tcpdump. Pero o problema xorde na súa xestión bastante complicada. Parecerá inconveniente para un usuario común traballar coa utilidade, pero isto só é a primeira vista. O artigo explicará como está organizado tcpdump, que sintaxe ten, como usalo, e daranse numerosos exemplos do seu uso.

Vexa tamén: Titorías para configurar unha conexión a Internet en Ubuntu, Debian, servidor de Ubuntu

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 algunha razón non está na súa distribución, sempre podes descargar e instalala vía "Terminal". Se o teu sistema operativo está baseado en Debian, e isto é Ubuntu, Linux Mint, Kali Linux e similares, cómpre executar este comando:

sudo apt install tcpdump

Ao instalar tes que introducir un contrasinal. Ten en conta que ao teclala non se amosa, tamén para confirmar a instalación, debes introducir o personaxe "D" e preme Intro.

Se tes Red Hat, Fedora ou CentOS, o comando de instalación será así:

sudo yam instala tcpdump

Despois de instalar a utilidade, pode usala inmediatamente. Isto e moito máis se discutirán máis adiante no texto.

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

Sintaxe

Como calquera outro comando, tcpdump ten a súa propia sintaxe. Coñecéndoo, pode configurar todos os parámetros necesarios que se terán en conta ao executar o comando. A sintaxe é:

opcións tcpdump - filtros de interface

Ao usar o comando, ten que especificar a interface para rastrexar. Os filtros e as opcións non son variables obrigatorias, pero permiten unha configuración máis flexible.

Opcións

Aínda que non é necesario especificar a opción, aínda é necesario enumerar os 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 en formato ASCII
-lEngade unha función de desprazamento.
-iDespois de introducir precisa especificar a interface de rede que será monitorizada. Para comezar a rastrexar todas as interfaces, escriba a palabra "calquera" despois da opción.
-cCompleta 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 do paquete de datos.
-LMostra só os protocolos soportados pola interface de rede especificada.
-CCrea outro ficheiro mentres escribe un paquete se o seu tamaño é maior que o especificado.
-rAbre un ficheiro para a lectura que se creou coa opción -w.
-jO formato TimeStamp empregarase para gravar paquetes.
-JPermite ver todos os formatos dispoñibles TimeStamp
-GUsado para crear un ficheiro con rexistros. A opción tamén require un valor temporal, despois do cal crearase un novo rexistro
-v, -vv, -vvvDependendo do número de caracteres da opción, a saída do comando farase máis detallada (un aumento é directamente proporcional ao número de caracteres)
-fA saída amosa o nome de dominio da dirección IP
-FPermite ler información non desde a interface de rede, senón do ficheiro especificado
-DDemostra todas as interfaces de rede que se poden usar.
-nDesactiva a visualización dos nomes de dominio
-ZEspecifica o usuario baixo o que se crearán todos os ficheiros.
-KSaltar a análise de suma de verificación
-qDemostración de información breve
-HDetecta as cabeceiras dos 802.11
-IUsado cando se capturan paquetes no modo monitor.

Despois de examinar as opcións, a continuación voltamos directamente ás súas aplicacións. Non obstante, teranse en conta os filtros.

Filtros

Como se mencionou no inicio do artigo, pode engadir filtros á sintaxe tcpdump. Agora considerarase o máis popular deles:

FiltrarDefinición
anfitriónEspecifica o nome do servidor.
netEspecifica a subrede e a rede IP
ipEspecifica o enderezo de protocolo
srcMostra os paquetes enviados desde o enderezo especificado
dstMostra os paquetes recibidos polo enderezo especificado.
arp, udp, tcpFiltrado por un dos protocolos
portoMostra información relacionada cun porto específico.
e, ouUsado para combinar varios filtros nun comando.
menos, maiorSaída de paquetes menores ou maiores que o tamaño especificado

Todos os filtros anteriores pódense combinar entre eles, polo que ao emitir un comando observarás só a información que queiras ver. Para comprender máis detalladamente o uso dos filtros anteriores, vale a pena dar exemplos.

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

Exemplos de uso

Agora listaranse as opcións de sintaxe tcpdump frecuentemente usadas. Non todos poden ser listados, xa que as súas variacións poden ser infinitas.

Ver a lista de interfaces

Recoméndase 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 tes que usar a opción -D, polo tanto no terminal execute o seguinte comando:

sudo tcpdump -D

Exemplo:

Como podes ver, hai oito interfaces no exemplo que se pode ver empregando o comando tcpdump. O artigo fornecerá exemplos de ppp0, pode usar calquera outro.

Captura de tráfico normal

Se precisa seguir unha única interface de rede, pode facelo coa opción -i. Non esqueza introducir o nome da interface despois de introducilo. Aquí tes un exemplo de executar tal comando:

sudo tcpdump -i ppp0

Ten en conta: ten que introducir "sudo" antes do comando en si, xa que require o dereito do superusuario.

Exemplo:

Nota: despois de premer Intro no "Terminal", os paquetes interceptados mostraranse continuamente. Para deter o seu fluxo, ten que premer a combinación de teclas Ctrl + C.

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

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

Onde se resalta a cor:

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

Esta sintaxe ten a capacidade de saír na xanela "Terminal" sen o uso de opcións adicionais.

Captura o tráfico coa opción -v

Como se sabe na táboa, a opción -v permítelle aumentar a cantidade de información. Consideremos un exemplo. Comproba a mesma interface:

sudo tcpdump -v -i ppp0

Exemplo:

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

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

Onde se resalta a cor:

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

Tamén na sintaxe de comandos pode escribir a opción -vv ou -vvv, que aumentará aínda máis a cantidade de información que se amosa na pantalla.

A opción -w e -r

A táboa de opcións mencionou a posibilidade de gardar todos os datos de saída nun ficheiro separado para que poidan ser vistos máis tarde. A opción é responsable diso. -w. É moi sinxelo de usar, só tes que ingresalo no comando e despois introducir o nome do futuro ficheiro coa extensión ".pcap". Considere todo o exemplo:

sudo tcpdump -i ppp0 -w file.pcap

Exemplo:

Ten en conta: mentres escribe os rexistros nun ficheiro, non se amosa texto na pantalla "Terminal".

Cando queiras ver a saída gravada, tes que usar a opción -rseguido do nome do ficheiro gravado anteriormente. Aplícase sen outras opcións e filtros:

sudo tcpdump -r file.pcap

Exemplo:

Estas dúas opcións son perfectas nos casos en que ten que gardar grandes cantidades de texto para análises posteriores.

Filtrado IP

Na táboa de filtros, sabemos diso dst permítelle mostrar na pantalla da consola só os paquetes que foron recibidos pola dirección especificada na sintaxe do comando. Así, é moi cómodo ver os paquetes recibidos polo seu ordenador. Para facer isto, o equipo só precisa especificar o seu enderezo IP:

sudo tcpdump -i ppp0 ip dst 10.0.6.67

Exemplo:

Como podes ver, ademais dst, no equipo, tamén rexistramos o filtro ip. Noutras palabras, dixemos ao ordenador que ao seleccionar os paquetes, prestaría atención ao seu enderezo IP e non a outros parámetros.

Pola IP, pode filtrar e enviar paquetes. No exemplo que volvemos a dar ao noso IP. É dicir, agora seguiremos os paquetes que se envían desde o noso ordenador a outros enderezos. Para facelo, executa o seguinte comando:

sudo tcpdump -i ppp0 ip src 10.0.6.67

Exemplo:

Como podes ver, cambiamos o filtro na sintaxe do comando. dst en src, así dicindo á máquina que busca o remitente por IP.

Filtrado HOST

Por analogía co IP do equipo, podemos especificar un filtro anfitriónpara eliminar os paquetes co servidor de interese. É dicir, na sintaxe, no canto da dirección IP do remitente / destinatario, deberá especificar o seu host. Parece así:

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

Exemplo:

Na imaxe podes ver isto "Terminal" Só se amosan os paquetes que foron enviados desde o noso IP ao servidor de google.com. Como podes ver, no canto de google host, podes introducir calquera outro.

Igual que o filtrado 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 xerará un erro. No caso do filtrado IP, ao contrario, dst e src están fronte ao filtro ip.

Filtrar e e ou

Se necesitas usar varios filtros á vez nun comando, tes que aplicar un filtro. e ou ou (depende do caso). Ao especificar os filtros na sintaxe e separalos por estas afirmacións, "fai" funcionar como un. Nun exemplo, parece que:

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

Exemplo:

Desde a sintaxe de comandos podes ver que queremos mostrar "Terminal" todos os paquetes que foron enviados á dirección 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 directamente os enderezos.

Filtrar o porto e localizar

Filtrar porto perfecto para cando teña que obter información sobre paquetes cun porto específico. Polo tanto, se só precisa ver respostas ou consultas DNS, ten que especificar a porta 53:

porto sudo tcpdump -vv -i ppp0 53

Exemplo:

Se queres ver os paquetes http, tes que entrar no porto 80:

porto 80 de sudo tcpdump -vv -i ppp0

Exemplo:

Entre outras cousas, é posible rastrexar inmediatamente o rango de portos. Para facelo, aplique o filtro portrange:

sudo tcpdump porta 50-80

Como podes ver, xunto co filtro portrange Non é necesario especificar opcións adicionais. Só ten que definir o rango.

Filtrado de protocolos

Tamén pode amosar só o tráfico que corresponde a calquera protocolo. Para facelo, use o nome deste protocolo como filtro. Vexamos un exemplo udp:

sudo tcpdump -vvv -i ppp0 udp

Exemplo:

Como podes ver na imaxe, despois de executar o comando en "Terminal" só se mostraron os paquetes co protocolo udp. Polo tanto, pode filtrar por outros, por exemplo, arp:

sudo tcpdump -vvv -i ppp0 arp

ou tcp:

sudo tcpdump -vvv -i ppp0 tcp

Filtro de rede

Operador net axuda a filtrar os paquetes en función da designación da súa rede. É tan fácil de usar como o resto: ten que especificar o atributo na sintaxe net, a continuación, introduza o enderezo de rede. Aquí está un exemplo de tal comando:

sudo tcpdump -i ppp0 líquido 192.168.1.1

Exemplo:

Filtrar por tamaño do paquete

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

Supoñamos que só queremos supervisar os paquetes que non excedan os 50 bits, entón o comando será así:

sudo tcpdump -i ppp0 menos 50

Exemplo:

Agora imos mostrar "Terminal" paquetes de máis de 50 bits:

sudo tcpdump -i ppp0 maior 50

Exemplo:

Como podes ver, úsanse igualmente, a única diferenza é o nome do filtro.

Conclusión

Ao final do artigo podemos concluír que o equipo tcpdump - Esta é unha gran ferramenta coa que podes controlar calquera paquete de datos transmitido por Internet. Pero para iso non basta con introducir o mando en si "Terminal". Para lograr o resultado desexado obterase só se usa todo tipo de opcións e filtros, así como as súas combinacións.