Meu servidor é Ubuntu 12.04:-> IP 192.168.56.100
Tenho um cliente Ubuntu 13.04:->IP 192.168.56.101
Tenho que bloquear o ping do cliente para o servidor. Então escrevi a regra IPTABLE.
iptables -A INPUT -i eth0 -p ICMP -s 192.168.56.101 -j DROP
Agora o cliente não pode fazer ping para o servidor, essa parte está correta, mas o servidor não pode fazer ping para o cliente, o que não deveria estar acontecendo. Antes de adicionar esta regra, o servidor e o cliente poderiam executar ping um no outro.
Por favor, me diga o que estou perdendo aqui ...
As respostas dadas estão corretas, mas como funciona....??? Adicionar --icmp-type
echo-request resolve o problema, mas esta regra está sendo adicionada às regras da cadeia INPUT, então como essa regra pode atrapalhar a cadeia OUTPUT, pois está bloqueando o ping para o cliente.
Responder1
Pelo que entendi, ping
o comando envia uma solicitação de eco ICMP para o host e, em seguida, o host responde à resposta de eco ICMP. Portanto, 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á apenas a solicitação, mas não a resposta
Respondendo sua pergunta nos comentários
Não bloqueia a solicitação de ping de saída. Está bloqueando todos os pacotes ICMP recebidos.
Quando você executa ping
:
ping
enviar pacote de solicitação ICMP para192.168.56.101
(é ICMP de saída)192.168.56.101
receba este pacote e envieresponder pacote ICMPde volta ao seu servidorAgora o seu servidor iptables bloqueia este pacote de resposta recebido. É isso que está acontecendo.
Você pode verificar isso usando este comando sudo tcpdump ip proto \\icmp
no 192.168.56.101
. Ele mostrará todas as solicitações/respostas ICMP online.
Fazem isto:
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 192.168.56.101
que ele recebe a solicitação de ping e envia a resposta. Mas o iptables no servidor bloqueia esta resposta.
Responder2
Obviamente você não receberá nenhuma resposta. Uma solicitação de ping tem duas partes:
- Cliente -> Servidor: solicitação de eco ICMP (também conhecido como "ping")
- Servidor -> Cliente: resposta de eco ICMP (também conhecido como "pong")
Bloquear todos os tipos de ICMP irátrazer problemas. Se você quiser evitar que o cliente faça "ping" (enviando uma solicitação PING), use a seguinte regra noservidor:
-A INPUT -i eth0 -s 192.168.56.101/32 -p ICMP --icmp-type echo-request -j DROP
Para evitar que o cliente envie uma solicitação de ping ICMP, você pode aplicar esta regra nocliente:
-A OUTPUT -o eth0 -d 192.168.56.100/32 -p ICMP --icmp-type echo-request -j DROP
É altamente incomum evitar impedir que um cliente execute ping em um único endereço IP, embora do lado do cliente. A única razão pela qual você faria isso é porque sua tarefa exige quenãoO pacote de ping ICMP flui pela rede do cliente, direcionado ao servidor.
Eu me pergunto por que você deseja bloquear solicitações de ping em uma LAN. Com o ARP, o cliente ainda pode saber que este servidor está conectado à rede.