Este tutorial tiene la finalidad de enseñar un poco acerca del comando tcpdump, que aunque no lo vimos en el curso, me parece muy útil para analizar y capturar el tráfico las tarjetas de red del servidor de linux.
- Inicialmente debes conocer las interfaces de red de tu linux. Este proceso lo hacemos con el comando ifconfig
ifconfig
El resultado será parecido al siguiente:
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
inet6 fe80::42:13ff:fe5f:4d35 prefixlen 64 scopeid 0x20<link>
ether 02:42:13:5f:4d:35 txqueuelen 0 (Ethernet)
RX packets 786 bytes 47118 (47.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5229 bytes 2389666 (2.3 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.104 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::a51b:1a17:d425:8efd prefixlen 64 scopeid 0x20<link>
ether b0:22:7a:ed:f9:55 txqueuelen 1000 (Ethernet)
RX packets 5785037 bytes 6341747789 (6.3 GB)
RX errors 0 dropped 42059 overruns 0 frame 0
TX packets 2054895 bytes 597343407 (597.3 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- Uso de comando tcpdump
tcpdump -i docker0
Este comando captura y muestra en tiempo real el tráfico en la interfaz de red eth0.
-i docker0: Especifica la interfaz de red a escuchar. Puedes reemplazar eth0 con el nombre de la interfaz de red que te interese.
Este comando mostrará información detallada sobre cada paquete capturado, incluyendo direcciones IP, puertos, protocolos y otros detalles.
- Uso de comando tcpdump con un host específico.
Puedes usar el comando tcpdump acompañado de la palabra host y después colocas el nombre de host o IP al cual deseas verificar tu tráfico.
Para el siguiente ejemplo utilizaré la busqueda para el local host.
tcpdump -i any host localhost
El resultado será parecido al siguiente:
listening on any, link-type LINUX_SLL (Linux cooked v1), capture size 262144 bytes
20:20:12.568280 IP localhost.59042 > localhost.43769: Flags [S], seq 3934381741, win 65495, options [mss 65495,sackOK,TS val 2404266492 ecr 0,nop,wscale 7], length 0
20:20:12.568301 IP localhost.43769 > localhost.59042: Flags [S.], seq 1494548542, ack 3934381742, win 65483, options [mss 65495,sackOK,TS val 2404266492 ecr 2404266492,nop,wscale 7], length 0
20:20:12.568319 IP localhost.59042 > localhost.43769: Flags [.], ack 1, win 512, options [nop,nop,TS val 2404266492 ecr 2404266492], length 0
20:20:12.568513 IP localhost.59042 > localhost.43769: Flags [P.], seq 1:448, ack 1, win 512, options [nop,nop,TS val 2404266492 ecr 2404266492], length 447
20:20:12.568530 IP localhost.43769 > localhost.59042: Flags [.], ack 448, win 509, options [nop,nop,TS val 2404266492 ecr 2404266492], length 0
20:20:12.584858 IP localhost.43769 > localhost.59042: Flags [P.], seq 1:106, ack 448, win 512, options [nop,nop,TS val 2404266509 ecr 2404266492], length 105
20:20:12.584866 IP localhost.59042 > localhost.43769: Flags [.], ack 106, win 512, options [nop,nop,TS val 2404266509 ecr 2404266509], length 0
20:20:12.584872 IP localhost.43769 > localhost.59042: Flags [P.], seq 106:208, ack 448, win 512, options [nop,nop,TS val 2404266509 ecr 2404266509], length 102
20:20:12.584874 IP localhost.59042 > localhost.43769: Flags [.], ack 208, win 512, options [nop,nop,TS val 2404266509 ecr 2404266509], length 0
20:20:12.585338 IP localhost.59042 > localhost.43769: Flags [F.], seq 448, ack 398, win 512, options [nop,nop,TS val 2404266509 ecr 2404266509], length 0
20:20:12.585353 IP localhost.43769 > localhost.59042: Flags [.], ack 449, win 512, options [nop,nop,TS val 2404266509 ecr 2404266509], length 0
20:20:13.568297 IP localhost.59046 > localhost.43769: Flags [S], seq 1313835277, win 65495, options [mss 65495,sackOK,TS val 2404267492 ecr 0,nop,wscale 7], length 0
20:20:13.568318 IP localhost.43769 > localhost.59046: Flags [S.], seq 3361466086, ack 1313835278, win 65483, options [mss 65495,sackOK,TS val 2404267492 ecr 2404267492,nop,wscale 7], length 0
20:20:13.568337 IP localhost.59046 > localhost.43769: Flags [.], ack 1, win 512, options [nop,nop,TS val 2404267492 ecr 2404267492], length 0
20:20:13.568534 IP localhost.59046 > localhost.43769: Flags [P.], seq 1:448, ack 1, win 512, options [nop,nop,TS val 2404267492 ecr 2404267492], length 447
20:20:13.568550 IP localhost.43769 > localhost.59046: Flags [.], ack 448, win 509, options [nop,nop,TS val 2404267492 ecr 2404267492], length 0
- Uso de comando tcpdump con filtro de puerto
Puedes usar el comando tcpdump para filtrar por el puerto que necesitas. En este ejemplo utilizaré el puerto 443
tcpdump -i any port 443
El resultado será similar al siguiente:
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
20:23:05.598182 IP 52.108.52.22.https > JFORTIZRPW10.50734: Flags [P.], seq 4122892245:4122892278, ack 1473298654, win 2053, length 33
20:23:05.598219 IP JFORTIZRPW10.50734 > 52.108.52.22.https: Flags [.], ack 33, win 501, length 0
20:23:05.849703 IP JFORTIZRPW10.33078 > a2-19-172-211.deploy.static.akamaitechnologies.com.https: Flags [.], ack 388942433, win 501, options [nop,nop,TS val 3809284169 ecr 210732182], length 0
20:23:05.933930 IP a2-19-172-211.deploy.static.akamaitechnologies.com.https > JFORTIZRPW10.33078: Flags [.], ack 1, win 501, options [nop,nop,TS val 210777294 ecr 3809239079], length 0
20:23:05.952189 IP JFORTIZRPW10.54702 > 52.96.183.226.443: UDP, length 1250
20:23:05.952229 IP JFORTIZRPW10.54702 > 52.96.183.226.443: UDP, length 1250
20:23:05.952238 IP JFORTIZRPW10.54702 > 52.96.183.226.443: UDP, length 533
Espero te sirva este turtorial.
Curso de Introducción a la Terminal y Línea de Comandos