У меня есть машина Centos 7 с FirewallD, а net.ipv4.conf.icmp_echo_ignore_all установлен на 0. Я ищу некоторые конфигурации брандмауэра, чтобы отключить ответы ping на внешние IP-адреса, но разрешить некоторым блокам IP (например, 192.168.1.0/24, 10.0.0.0/8 и т. Д.) Получать ответы ping.
Как я могу это сделать что?
Вот решение с 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
Пожалуйста, дайте мне знать, работает ли это для вас или у вас есть любые дополнительные вопросы.