iptables eliminam todas as solicitações ICMP recebidas, exceto de um IP

7

Atualmente, tenho algo como:

    iptables -A INPUT -p ICMP --icmp-type 8 -j DROP
    iptables -A INPUT -s x.x.x.x -p ICMP --icmp-type 8 -j ACCEPT

No entanto, quando eu executo o segundo comando, parece que o iptables simplesmente pára. Eu tenho que sair disso para voltar ao terminal. Talvez eu esteja fazendo tudo errado, mas algum insight seria útil.

Obrigado!

    
por Square 14.06.2011 / 02:26

3 respostas

9

Você precisa executar suas regras na ordem inversa. O Iptables é sensível à ordem em que os comandos foram executados. Se uma regra corresponde, ela não verifica mais regras, apenas obedece a essa regra. Se você definir a queda primeiro, a regra de aceitação nunca será testada. Ao definir a aceitação específica com o IP de origem, a configuração da política mais geral a ser descartada afetará o comportamento esperado.

iptables -A INPUT -s x.x.x.x -p ICMP --icmp-type 8 -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type 8 -j DROP

Quanto ao problema do jeito que você parece estar tendo, tem certeza de que inseriu um endereço IP válido? Talvez você possa prefixar esse comando com strace iptables … para ver o que ele está fazendo enquanto parece travar.

    
por 14.06.2011 / 10:31
4

Não deixe cair o ICMP a sério! Claro, algumas das solicitações do ICMP são perigosas, mas o restante é absolutamente necessário para que a rede funcione (pense em "destino inacessível" e naquele zoológico).

    
por 18.01.2013 / 03:53
-2

Você terá que adicionar uma regra como:

$ iptables -A INPUT -s x.x.x.x -p icmp --icmp-type echo-reply -j ACCEPT
    
por 14.06.2011 / 03:36