Pelo que entendi, o comando ping
envia uma solicitação de eco ICMP para o host e, em seguida, responde a resposta de eco ICMP do host. Então, se você bloquear todo o ICMP, o ping não funcionará.
Você deve adicionar isto:
iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -s 192.168.56.101 -j DROP
Isso bloqueará somente a solicitação, mas não responderá
Respondendo a sua pergunta nos comentários
Ele não bloqueia a solicitação de ping de saída. Está bloqueando todos os pacotes ICMP de entrada.
Quando você executa ping
:
-
ping
envia pacote de solicitação ICMP para192.168.56.101
(é o ICMP de saída) -
192.168.56.101
recebe este pacote e envia responde ao pacote ICMP de volta ao seu servidor -
Agora o seu servidor iptables bloqueia este pacote de resposta. Isso é o que está acontecendo.
Você pode verificar usando este comando sudo tcpdump ip proto \icmp
on 192.168.56.101
. Ele mostrará todas as solicitações / respostas do ICMP online.
Faça isso:
-
Remova esta regra do servidor:
iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -s 192.168.56.101 -j DROP
-
Adicione esta regra ao seu servidor:
iptables -A INPUT -i eth0 -p ICMP -s 192.168.56.101 -j DROP
-
Agora execute este comando em
192.168.56.101
:sudo tcpdump ip proto \icmp
-
Execute
ping 192.168.56.101
no servidor.
Agora você deve ver no 192.168.56.101
que ele recebe o pedido de ping e enviar a resposta. Mas o iptables no servidor bloqueia esta resposta.