Bloquear ping de um endereço IP específico

Bloquear ping de um endereço IP específico

Meu servidor é Ubuntu 12.04:-> IP 192.168.56.100Tenho 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-typeecho-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, pingo 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:

  1. pingenviar pacote de solicitação ICMP para 192.168.56.101(é ICMP de saída)

  2. 192.168.56.101receba este pacote e envieresponder pacote ICMPde volta ao seu servidor

  3. Agora 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 \\icmpno 192.168.56.101. Ele mostrará todas as solicitações/respostas ICMP online.

Fazem isto:

  1. Remova esta regra do servidor:

    iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -s 192.168.56.101 -j DROP

  2. Adicione esta regra ao seu servidor:

    iptables -A INPUT -i eth0 -p ICMP -s 192.168.56.101 -j DROP

  3. Agora execute este comando em 192.168.56.101:

    sudo tcpdump ip proto \\icmp

  4. Execute ping 192.168.56.101no servidor.

Agora você deve ver 192.168.56.101que 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.

informação relacionada