
Eu tenho uma máquina Centos 7 com FirewallD e net.ipv4.conf.icmp_echo_ignore_all está definido como 0. Estou procurando algumas configurações de firewall para desabilitar respostas de ping para endereços IP externos, mas permitir alguns blocos de IP (como 192.168.1.0/ 24, 10.0.0.0/8 etc.) para obter respostas de ping.
Como eu posso fazer isso?
Responder1
Aqui está uma solução comiptables
[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
Aqui está como deve ser depois das enfermarias:
[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
O Iptables funciona avaliando as regras que possui em ordem de cima para baixo em uma determinada cadeia. Neste caso, é a cadeia INPUT. Quando o iptables encontra uma regra que corresponde às suas condições, ele executa a ação especificada em -j
.
Portanto, neste exemplo, estamos afirmando que se a fonte for 10.0.0.0/8 ou 192.168.0.0/16, a ação será ACCEPT
. Se o endereço de origem não estiver nesse intervalo, ele atingirá a terceira regra que afirma DROP
.
Observação: você também precisa se certificar de que atualmente não possui nenhuma regra atual que aceite todo o tráfego ICMP anterior a essas regras.
Os -A INPUT
meios para anexar à INPUT
cadeia. Portanto, primeiro você deseja listar toda a cadeia de entrada e excluir quaisquer outras regras ICMP que existam lá.
Aqui está como listar as regras da cadeia INPUT:
iptables -v -n -L INPUT
Por favor, deixe-me saber se isso funciona para você ou se você tiver alguma dúvida adicional.