Image

Base de conocimientos → Monitoreo de solicitudes icmp entrantes usando tcpdump

[Servidores virtuales]
Fecha de publicación: 27.03.2024

Las solicitudes ICMP se utilizan a menudo para saber si un servidor está actualmente en línea. La verificación de la disponibilidad de un nodo se realiza con el comando ping especificando la dirección IP.

ping xx.123.xx.123
Exchange of packets from xx.123.xx.123 to 32 bytes of data:
Response from xx.123.xx.123: number of bytes=32 time=3ms TTL=64
Response from xx.123.xx.123: number of bytes=32 time=3ms TTL=64

Al mismo tiempo, el servidor remoto envía respuestas en este momento y por la salida del comando queda claro que está disponible.

En este caso, en el servidor remoto al que enviamos solicitudes, no habrá datos de eventos en el registro. A veces es necesario saber quién está enviando actualmente solicitudes icmp, para ello usaremos la utilidad tcpdump

1. Instalar tcpdump

apt update
apt install tcpdump

2. Definir la interfaz de red.

apt install net-tools
ifconfig

El comando mostrará todas las interfaces de red y debemos seleccionar aquella en la que escucharemos los paquetes, en nuestro caso enp3s0.

tcpdump -i enp3s0 icmp and icmp[icmptype]=icmp-echo -n
listening on enp3s0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
21:52:20.352600 IP xx.234.xx.234 > xx.123.xx.123: ICMP echo request, id 1, seq 57, length 40
21:52:21.360715 IP xx.234.xx.234 > xx.123.xx.123: ICMP echo request, id 1, seq 58, length 40

Para escribir en un archivo, use el comando:

tcpdump -i enp3s0 icmp and icmp[icmptype]=icmp-echo -n >> /var/log/ping.log

Este comando escribirá en un archivo todas las direcciones IP que alguna vez hayan accedido a este host utilizando el protocolo icmp.

No recomendamos dejar este comando habilitado permanentemente, ya que desperdicia recursos de hardware. Este ejemplo está pensado para utilizarse con fines de depuración.





Sin comentarios aún