Bloquear ping de um determinado endereço IP

1

Meu servidor é o Ubuntu 12.04: - > IP 192.168.56.100 Eu tenho um cliente Ubuntu 13,04: - > IP 192.168.56.101

Eu tenho que bloquear o ping do cliente para o servidor Então eu 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 o ping para o servidor que parte está bem, mas o servidor não pode pingar para o cliente que não deveria estar acontecendo. Antes de adicionar essa regra, tanto o servidor quanto o cliente poderiam fazer ping uns aos outros.

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, portanto, como essa regra pode mexer com a cadeia OUTPUT, já que ela está bloqueando o ping para o cliente.

    
por SleepyLord 09.02.2014 / 10:29

2 respostas

1

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 :

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

  2. 192.168.56.101 recebe este pacote e envia responde ao pacote ICMP de volta ao seu servidor

  3. 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:

  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.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.

    
por c0rp 09.02.2014 / 10:42
0

Obviamente, você não receberá nenhuma resposta. Um pedido de ping tem duas partes:

  • Cliente - > Servidor: echo-request ICMP (também conhecido por "ping")
  • Servidor - > Cliente: Resposta de eco ICMP (também conhecido por "pong")

O bloqueio de todos os tipos de ICMP traz problemas . Se você quiser evitar que o cliente faça "ping" (enviando uma solicitação PING), use a seguinte regra no servidor :

-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 essa regra no cliente :

-A OUTPUT -o eth0 -d 192.168.56.100/32 -p ICMP --icmp-type echo-request -j DROP

É muito incomum evitar que um cliente faça o ping de um único endereço IP, do lado do cliente. A única razão pela qual você faria isso é porque sua atribuição requer que o pacote ping ICMP não flua através da rede a partir do cliente, direcionado para o servidor.

Gostaria de saber por que você deseja bloquear solicitações de ping em uma LAN. Com o ARP, o cliente ainda pode saber que esse servidor está conectado à rede.

    
por Lekensteyn 09.02.2014 / 10:42