Image

База знаний → Мониторинг входящих icmp запросов с помощью tcpdump

[Виртуальные сервера]
Дата публикации: 27.03.2024

ICMP запросы часто используются, чтобы узнать, находится ли в данный момент сервер в сети. Проверка доступности узла осуществляется командой ping с указанием ip адреса.

ping xx.123.xx.123
Обмен пакетами с xx.123.xx.123 по с 32 байтами данных:
Ответ от xx.123.xx.123: число байт=32 время=3мс TTL=64
Ответ от xx.123.xx.123: число байт=32 время=3мс TTL=64

При этом удаленный сервер отправляет в этот момент ответы и по выводу команды понятно, что он доступен.

При это на удаленном сервере, на который мы посылаем запросы в логе не будет данных событий. Иногда нужно узнать кто в данный момент посылает icmp запросы, для этого мы будем использовать утилиту tcpdump

1. Установка tcpdump

apt update
apt install tcpdump

2. Определим сетевой интерфейс

apt install net-tools
ifconfig

Команда покажет все сетевые интерфейсы и нам нужно выбрать тот на котором мы будем прослушивать пакеты, в нашем случае 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

Для того чтобы записать в файл, используйте команду:

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

Данная команда будет записывать в файл все ip адреса, которые когда-либо обращались к данному узлу по icmp протоколу.

Мы не рекомендуем оставлять включенной данную команду на постоянной основе, так как она затрачивает ресурсы оборудования. Данный пример предполагает использование на время отладки.





Нет комментариев