Запретить ICMP трафик к серверу


Запретить ICMP трафик к своему серверу можно добавив правило в сетевой фильтр iptables, с указанием источника, адресата, типа протокола и нужного действия.



Как запретить ICMP трафик к своему серверу


Адрес сервера в примере -123.123.123.123



С локального компьютера отправляем один пакет ICMP

ping -c 1 123.123.123.123

PING 123.123.123.123 (123.123.123.123) 56(84) bytes of data.
64 bytes from 123.123.123.123: icmp_seq=1 ttl=53 time=75.7 ms

— 123.123.123.123 ping statistics —
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 75.787/75.787/75.787/0.000 ms


Потери 0%, значит никаких запретов изначально нет.



Чтобы ограничить трафик требуется отредактировать правила iptables на сервере.

iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -d 123.123.123.123 -m state --state NEW,ESTABLISHED,RELATED -j DROP



В качестве действия указываем DROP

iptables-save

# Generated by iptables-save v1.6.0 on Fri Aug 31 06:48:58 2018 *filter :INPUT ACCEPT [7:488] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [4:680] -A INPUT -d 123.123.123.123/32 -p icmp -m icmp --icmp-type 8 -m state --state NEW,RELATED,ESTABLISHED -j DROP COMMIT



Вновь проверяем с локального компьютера

ping -c 1 123.123.123.123

PING 123.123.123.123 (123.123.123.123) 56(84) bytes of data.

— 123.123.123.123 ping statistics —
1 packets transmitted, 0 received, 100% packet loss, time 0ms


Потери 100%, входящие ICMP  пакеты будут отбрасываться во всех случаях.



Пример приведен на скриншоте:

Как запретить ICMP трафик к своему серверу


Здесь видно, что пинг до сервера проходил, после добавления блокировки ситуация изменилась. Пинг не проходит.



Стоит отметить, что ICMP пакеты могут быть двух типов:

0 — echo-reply

8 — echo-request



В примере заблокированы только те, которые относятся к типу echo-request



Запретить исходящий ICMP трафик с сервера можно так

iptables -A OUTPUT -p icmp --icmp-type 8 -j DROP


Чтобы правила сохранились после перезагрузки сервера можно установить дополнительно пакет iptables-persistent

Сказать спасибо