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

Отключить ответ ICMP на брандмауэре CentOS 7, за исключением некоторых блоков IP

У меня есть машина Centos 7 с FirewallD, а net.ipv4.conf.icmp_echo_ignore_all имеет значение 0. Я ищу некоторые конфигурации брандмауэра, чтобы отключить ответы ping на внешние IP-адреса, но разрешить некоторые IP-блоки (например, 192.168.1.0/ 24, 10.0.0.0/8 и т. Д.), Чтобы получать ответы на пинг.

Как я могу это сделать?

Вот решение с iptables

[root@ttucker ~]# iptables -A INPUT -m iprange --src-range 192.168.0.0-192.168.255.255 -p ICMP --icmp-type 8 -j ACCEPT
[root@ttucker ~]# iptables -A INPUT -m iprange --src-range 10.0.0.0-10.255.255.255 -p ICMP --icmp-type 8 -j ACCEPT
[root@ttucker ~]# iptables -A INPUT -p ICMP --icmp-type 8 -j DROP

Вот как это должно выглядеть после вардов:

[root@ttucker ~]# iptables -v -n -L INPUT | grep icmp
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            source IP range 192.168.0.0-192.168.255.255 icmptype 8
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            source IP range 10.0.0.0-10.255.255.255 icmptype 8
    0     0 DROP       icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 8

Iptables работает, оценивая правила, которые он имеет, в порядке сверху вниз в данной цепочке. В данном случае это цепочка INPUT. Когда iptables находит правило, соответствующее его условиям, он выполняет действие, указанное в -j.

Итак, в этом примере мы заявляем, что если источник находится в 10.0.0.0/8 или 192.168.0.0/16, действие будет ACCEPT. Если исходный адрес не находится в этом диапазоне, он попадает в третье правило, которое гласит: DROP.

Примечание: вам также необходимо убедиться, что в настоящее время у вас нет текущих правил, которые принимают весь трафик ICMP, предшествующий этим правилам.

В -A INPUT означает добавить к INPUT цепь. Итак, сначала вы хотите перечислить всю цепочку ввода и удалить любые другие правила ICMP, которые там существуют.

Вот как перечислить правила цепочки INPUT:

iptables -v -n -L INPUT

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