Назад | Перейти на главную страницу

Безопасность icmp сервера Linux

У меня есть маршрутизатор Linux, он подключается к Интернету через pppoe с динамическим IP

и я бы хотел, чтобы он НЕ отвечал на ping (или любой другой тип icmp) извне (из Интернета), НО я хотел бы, чтобы этот ping (и все icmp, такие как traceroute, tcptraceroute, mtr и т. д.) изнутри (LAN) и от сервера к внешним целям работать, как я могу это сделать?

Я предполагаю, что под «маршрутизатором Linux» вы подразумеваете компьютер под управлением Linux, выступающий в качестве маршрутизатора.

Отбросить icmp трафик извне:

iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
  • -ВХОД: пакеты, предназначенные для локальных сокетов.
  • -p icmp: указывает протокол для использования, в данном случае icmp
  • --icmp-тип эхо-запрос: указывает тип фильтруемых пакетов icmp
  • -j DROP: что делать при подборе фильтра. DROP просто сбросит их, не посылая сообщение об ошибке на пинг хоста.

Вы также можете использовать REJECT вместо того DROP, что отправит сообщение об ошибке.

Разрешить внешнему трафику icmp:

iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT 
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT 
  • -A ВЫХОД: пакеты генерируются локально.
  • -p icmp: указывает протокол для использования, в данном случае icmp
  • --icmp-type эхо-ответ: указывает тип фильтруемых пакетов icmp
  • -j ПРИНЯТЬ: что делать при подборе фильтра. Мы принимаем только ответы

Убедитесь, что у вас есть расширение icmp для iptables, и отбрасывайте пакеты с типом icmp 8 на внешний интерфейс (--protocol icmp --icmp-type 8)