GNU/Linux >> Tutoriales Linux >  >> Linux

6 opciones de filtro de tráfico de red tcpdump

El tcpdump La utilidad se utiliza para capturar y analizar el tráfico de red. Los administradores de sistemas pueden usarlo para ver el tráfico en tiempo real o guardar el resultado en un archivo y analizarlo más tarde. En este artículo de tres partes, demuestro varias opciones comunes que quizás desee usar en sus operaciones diarias con tcpdump .

La primera parte comienza con algunos trucos básicos para recopilar información sobre las interfaces y comenzar las capturas.

[ También te puede interesar: Encontrar dispositivos no autorizados en tu red usando Nmap ]

1. Opción -D

tcpdump con -D proporciona una lista de dispositivos desde los que puede capturar tráfico. Esta opción identifica qué dispositivos tcpdump sabe sobre Una vez que vea esta lista, puede decidir en qué interfaz desea capturar el tráfico. También le dice si la interfaz está activa, en ejecución y si es una interfaz de bucle invertido, como puede ver a continuación:

# tcpdump -D

1.tun0 [Up, Running]

2.wlp0s20f3 [Up, Running]

3.lo [Up, Running, Loopback]

4.any (Pseudo-device that captures on all interfaces) [Up, Running]

5.virbr0 [Up]

6.docker0 [Up]

7.enp0s31f6 [Up]

2. Opción -c X

El -c la opción captura X número de paquetes y luego se detiene. De lo contrario, tcpdump seguirá funcionando indefinidamente. Entonces, cuando desee capturar solo un pequeño conjunto de paquetes de muestra, puede usar esta opción. Sin embargo, si no hay actividad en la interfaz, tcpdump sigue esperando.

# tcpdump -c 5 -i any

dropped privs to tcpdump

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on any, link-type LINUX_SLL (Linux cooked v1), capture size 262144 bytes

16:19:22.128996 ARP, Request who-has _gateway tell 192.168.86.81, length 28

16:19:22.130560 IP 172.217.222.189.https > kkulkarni.58810: Flags [P.], seq 3506342975:3506343029, ack 2537104576, win 377, options [nop,nop,TS val 4137065873 ecr 75405758], length 54

16:19:22.130642 IP kkulkarni.58810 > 172.217.222.189.https: Flags [.], ack 54, win 501, options [nop,nop,TS val 75422756 ecr 4137065873], length 0
16:19:22.131198 IP ovpn-3-80.rdu2.redhat.com.36380 > infoblox-trust01.intranet.prod.int.rdu2.redhat.com.domain: 53320+ PTR? 1.86.168.192.in-addr.arpa. (43)

16:19:22.131395 IP kkulkarni.53013 > ovpn-rdu2-alt.redhat.com.https: UDP, length 95

5 packets captured

49 packets received by filter

37 packets dropped by kernel


3. Opción -n

Por lo general, es más fácil trabajar si usa direcciones IP en lugar de nombres, como kkulkarni.53013. como se muestra en la salida anterior. Puedes usar -n por esto.

# tcpdump -c 5 -i any -n

dropped privs to tcpdump

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on any, link-type LINUX_SLL (Linux cooked v1), capture size 262144 bytes

16:20:21.523375 IP 172.217.9.206.https > 192.168.86.31.34288: Flags [P.], seq 723352132:723352349, ack 2124268216, win 1059, options [nop,nop,TS val 2934032467 ecr 824781066], length 217

16:20:21.563992 IP 192.168.86.31.34288 > 172.217.9.206.https: Flags [.], ack 217, win 12654, options [nop,nop,TS val 824783221 ecr 2934032467], length 0

16:20:22.956717 IP 192.168.86.83.mdns > 224.0.0.251.mdns: 0 [2q] [1au] PTR (QU)? _companion-link._tcp.local. PTR (QU)? _homekit._tcp.local. (88)
16:20:22.956839 IP 192.168.86.83.mdns > 224.0.0.251.mdns: 0*- [0q] 2/0/3 (Cache flush)

16:20:22.956932 IP6 fe80::2:8c40:fdea:5a16.mdns > ff02::fb.mdns: 0*- [0q] 2/0/3 (Cache flush) PTR local., (Cache flush) PTR local. (214)

5 packets captured

5 packets received by filter

0 packets dropped by kernel


4. Opción -s

tcpdump con -sXXX le ayuda a controlar el tamaño de la captura. En la segunda línea de la salida anterior, puede ver que dice tamaño de captura 262144 bytes, que es mucho más grande que el paquete. Puedes usar -s para cambiar el tamaño de captura. Si solo desea inspeccionar los encabezados de los paquetes, puede usar un tamaño más pequeño para la captura. Vea el siguiente ejemplo:

# tcpdump -c 5 -i any -n -s64
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked v1), capture size 64 bytes
16:24:39.909994 IP 10.22.3.80.46368 > 10.11.200.20.ldap: Flags [.], ack 2583785634, win 502, options [nop,nop,TS[|tcp]>
16:24:39.910118 IP 192.168.86.31.53013 > 66.187.232.72.https: UDP, length 76
16:24:39.981646 IP 192.168.86.111.mdns > 224.0.0.251.mdns: 0 [5a] [28q] [1n] [1au][|domain]
16:24:39.983954 IP 192.168.86.111.mdns > 224.0.0.251.mdns: 0*- [0q] 2/0/1[|domain]
16:24:40.186150 IP 192.168.86.111.mdns > 224.0.0.251.mdns: 0 [1n] [1au][|domain]
5 packets captured
6 packets received by filter
0 packets dropped by kernel

5. Capturas de puertos

tcpdump le permite especificar paquetes de red que usan algún puerto X como origen o destino. Por ejemplo, para capturar tráfico DNS, puede usar port 53 . Podría anteponer el puerto palabra clave con src /horario como src port 53 o dst port 53 y filtrarlo aún más.

# tcpdump -i any port 53 -n
16:49:58.979410 IP 10.22.3.80.46391 > 10.11.5.19.domain: 31741+ A? youtube.com. (29)
16:49:58.979450 IP 10.22.3.80.46391 > 10.11.5.19.domain: 4579+ AAAA? youtube.com. (29)
16:49:58.985835 IP 10.11.5.19.domain > 10.22.3.80.44202: 8898 NXDomain 0/1/0 (154)
16:49:58.986761 IP 10.22.3.80.38074 > 10.11.5.19.domain: 43241+ PTR? 31.86.168.192.in-addr.arpa. (44)
16:49:59.015164 IP 10.11.5.19.domain > 10.22.3.80.38074: 43241 NXDomain 0/1/0 (122)
16:49:59.015209 IP 10.11.5.19.domain > 10.22.3.80.46391: 4579 1/0/0 AAAA 2607:f8b0:4004:810::200e (57)
16:49:59.015231 IP 10.11.5.19.domain > 10.22.3.80.46391: 31741 1/0/0 A 172.217.15.78 (45)
16:49:59.015831 IP 10.22.3.80.51955 > 10.11.5.19.domain: 2503+ PTR? 1.122.168.192.in-addr.arpa. (44)
16:49:59.041490 IP 10.11.5.19.domain > 10.22.3.80.51955: 2503 NXDomain 0/1/0 (122)

6. Opción -w

Si desea escribir la salida de tcpdump a un archivo, use la opción -w .pcap para escribir en un archivo. Si desea ver cuántos paquetes se escribieron, puede agregar -v .

# tcpdump -c 4 -i any port 53 -w dns.pcap -v
tcpdump: data link type LINUX_SLL2
dropped privs to tcpdump
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
4 packets captured
24 packets received by filter
0 packets dropped by kernel

[ Hoja de referencia gratuita:obtenga una lista de utilidades y comandos de Linux para administrar servidores y redes. ] 

Resumir

Como puede ver, tcpdump es una excelente herramienta para recopilar datos sobre el tráfico de su red. Las capturas de paquetes brindan información útil para la resolución de problemas y el análisis de seguridad.

La segunda parte de esta serie continúa con un vistazo a seis tcpdump más características y banderas, incluyendo cómo leer los datos capturados. Finalmente, la tercera parte le brinda aún más opciones para recopilar información.


Linux
  1. Centos:¿tráfico de red separado en dos interfaces de red?

  2. Comprender las opciones de filtro de rsyslog

  3. ¿Cómo puedo canalizar todo el tráfico de mi red a través de SSH?

  4. Linux:¿Cómo medir el tráfico de red diario/mensual?

  5. Supervise el volumen de tráfico de la red a través de la interfaz

Cómo usar el comando tcpdump en Ubuntu 20.04

Aprenda diferentes opciones de red en VirtualBox

Análisis de tráfico de red con tcpdump

Instale Ntopng para monitorear el tráfico de red en Ubuntu 20.04

Ejemplos útiles de tcpdump Linux para el administrador de red

Comprobar el tráfico de red saliente