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.
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 0enp2s0: 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
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.
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:
listeningonany, link-typeLINUX_SLL (Linuxcookedv1), capturesize 262144 bytes
20:20:12.568280IPlocalhost.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.568301IPlocalhost.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.568319IPlocalhost.59042 > localhost.43769: Flags[.], ack 1, win 512, options[nop,nop,TS val 2404266492 ecr 2404266492], length 0
20:20:12.568513IPlocalhost.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.568530IPlocalhost.43769 > localhost.59042: Flags[.], ack 448, win 509, options[nop,nop,TS val 2404266492 ecr 2404266492], length 0
20:20:12.584858IPlocalhost.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.584866IPlocalhost.59042 > localhost.43769: Flags[.], ack 106, win 512, options[nop,nop,TS val 2404266509 ecr 2404266509], length 0
20:20:12.584872IPlocalhost.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.584874IPlocalhost.59042 > localhost.43769: Flags[.], ack 208, win 512, options[nop,nop,TS val 2404266509 ecr 2404266509], length 0
20:20:12.585338IPlocalhost.59042 > localhost.43769: Flags[F.], seq 448, ack 398, win 512, options[nop,nop,TS val 2404266509 ecr 2404266509], length 0
20:20:12.585353IPlocalhost.43769 > localhost.59042: Flags[.], ack 449, win 512, options[nop,nop,TS val 2404266509 ecr 2404266509], length 0
20:20:13.568297IPlocalhost.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.568318IPlocalhost.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.568337IPlocalhost.59046 > localhost.43769: Flags[.], ack 1, win 512, options[nop,nop,TS val 2404267492 ecr 2404267492], length 0
20:20:13.568534IPlocalhost.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.568550IPlocalhost.43769 > localhost.59046: Flags[.], ack 448, win 509, options[nop,nop,TS val 2404267492 ecr 2404267492], length 0
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: verboseoutputsuppressed, use-vor-vvforfullprotocoldecodelisteningonany, link-typeLINUX_SLL (Linuxcookedv1), capturesize 262144 bytes
20:23:05.598182IP 52.108.52.22.https > JFORTIZRPW10.50734: Flags[P.], seq 4122892245:4122892278, ack 1473298654, win 2053, length 33
20:23:05.598219IPJFORTIZRPW10.50734 > 52.108.52.22.https: Flags[.], ack 33, win 501, length 0
20:23:05.849703IPJFORTIZRPW10.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.933930IPa2-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.952189IPJFORTIZRPW10.54702 > 52.96.183.226.443: UDP, length 1250
20:23:05.952229IPJFORTIZRPW10.54702 > 52.96.183.226.443: UDP, length 1250
20:23:05.952238IPJFORTIZRPW10.54702 > 52.96.183.226.443: UDP, length 533
Espero te sirva este turtorial.