Tutoriais · Networking

Sabe como desativar respostas a pings no Linux? É assim…

10 Comentários

Um dos métodos que normalmente usamos para saber se uma máquina está “viva” na rede, é recorrer ao comando ping. Para quem não conhece, o comando ping é dos mais usados no mundo das redes, uma vez que permite testar a conectividade entre equipamentos.

Sabe como desativar respostas a pings no Linux? É assim...


No entanto, ao permitirmos que a nossa máquina responda a pedidos de uma máquina remota, é como se estivéssemos a confirmar que a máquina existe, está ativa e alcançável na rede.

Como bloquear a resposta a “pings”?

O comando ping usa o protocolo ICMP, permitindo testar a conectividade entre equipamentos (end-to-end). Em termo de analogia, o ping pode ser comparado ao ping-pong (se enviarmos a bola para um lado (echo), do outro, se estiver la alguém, vamos receber uma resposta (reply).

Por outro lado, em algumas circunstâncias (pode variar, uma vez que o valor pode ser alterado) é mesmo possível saber qual o sistema operativo que a máquina que está do outro lado está a utilizar. Para tal, basta estarmos atentos ao campo TTL (time to live) e verificar qual o valor.

  • UNIX: 255
  • Linux: 64
  • Windows: 128

Sabe como desativar respostas a pings no Linux? É assim...

Vamos agora ver dois métodos que permitem ativar/desativar a resposta aos pings em máquinas Linux. O primeiro método baseia-se na alteração da flag associada ao icmp_echo_ignore_all, e o segundo método recorre ao iptables.

Método 1

Desativar as respostas ping

sudo -i 

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

Activar as respostas ping

echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

Método 2

Desativar as respostas ping

iptables -I INPUT -i ech0 -p icmp -s 0/0 -d 0/0 -j DROP

Activar a respostas ping

iptables -I INPUT -i ech0 -p icmp -s 0/0 -d 0/0 -j ACCEPT

Se a nossa máquina tiver informação sensível e estiver ligada em rede, este pequeno truque pode dar uma ajuda no processo de “ocultar/calar” a máquina na rede. Desta forma, se à nossa máquina estiver a ser feito um pedido ICMP de uma máquina remota, ela simplesmente não responde, ficando o utilizador da máquina remota em dúvida, se a máquina está ou não ativa.

No entanto, obviamente que há algumas técnicas para saber se realmente a máquina existe na rede.

Autor: Pedro Pinto
Partilhar:
Também pode gostar

Comentários

10

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Jorge
    Jorge

    “No entanto, obviamente que há algumas técnicas para saber se realmente a máquina existe na rede.” Isso, na própria rede basta um simples ARP.

  2. Avatar de Tobias
    Tobias

    Mais interessante e bastante mais util ver todos os outros ICMP.
    Como?

    1. Avatar de Tobias
      Tobias

      ## User defined. Hookit on egress and ingress choosed chains
      ## Logs ICMP (except echo request & reply)
      iptables -N ICMP
      iptables -A ICMP -p icmp –icmp-type 8/0 -j ACCEPT
      iptables -A ICMP -p icmp –icmp-type 0/0 -j ACCEPT
      iptables -A ICMP -p icmp –icmp-type 3/0 -j LOG –log-level warning –log-ip-options –log-tcp-options –log-tcp-sequence –log-prefix “IPT-ICMPnetunreach# ”
      iptables -A ICMP -p icmp –icmp-type 3/1 -j LOG –log-level warning –log-ip-options –log-tcp-options –log-tcp-sequence –log-prefix “IPT-ICMPhostunreach# ”
      iptables -A ICMP -p icmp –icmp-type 3/2 -j LOG –log-level warning –log-ip-options –log-tcp-options –log-tcp-sequence –log-prefix “IPT-ICMPprotounreach# ”
      iptables -A ICMP -p icmp –icmp-type 3/3 -j LOG –log-level warning –log-ip-options –log-tcp-options –log-tcp-sequence –log-prefix “IPT-ICMPportunreach# ”
      iptables -A ICMP -p icmp –icmp-type 3/4 -j LOG –log-level warning –log-ip-options –log-tcp-options –log-tcp-sequence –log-prefix “IPT-ICMPFragNeedDFbitset# ”
      iptables -A ICMP -p icmp –icmp-type 3/5 -j LOG –log-level warning –log-ip-options –log-tcp-options –log-tcp-sequence –log-prefix “IPT-ICMPsourceroutefail# ”
      iptables -A ICMP -p icmp –icmp-type 3/11 -j LOG –log-level warning –log-ip-options –log-tcp-options –log-tcp-sequence –log-prefix “IPT-ICMPnetunreachforTOS# ”
      iptables -A ICMP -p icmp –icmp-type 3/12 -j LOG –log-level warning –log-ip-options –log-tcp-options –log-tcp-sequence –log-prefix “IPT-ICMPhostunreachforTOS# ”
      iptables -A ICMP -p icmp –icmp-type 3/13 -j LOG –log-level warning –log-ip-options –log-tcp-options –log-tcp-sequence –log-prefix “IPT-ICMPprohibitbyfilter# ”
      iptables -A ICMP -p icmp –icmp-type 4/0 -j LOG –log-level warning –log-ip-options –log-tcp-options –log-tcp-sequence –log-prefix “IPT-ICMPsourcequench# ”
      iptables -A ICMP -p icmp –icmp-type 5/0 -j LOG –log-level warning –log-ip-options –log-tcp-options –log-tcp-sequence –log-prefix “IPT-ICMPredirectfornetwork# ”
      iptables -A ICMP -p icmp –icmp-type 5/1 -j LOG –log-level warning –log-ip-options –log-tcp-options –log-tcp-sequence –log-prefix “IPT-ICMPredirectforhost# ”
      iptables -A ICMP -p icmp –icmp-type 10/0 -j LOG –log-level warning –log-ip-options –log-tcp-options –log-tcp-sequence –log-prefix “IPT-ICMProutersolicit# ”
      iptables -A ICMP -p icmp –icmp-type 11/0 -j LOG –log-level warning –log-ip-options –log-tcp-options –log-tcp-sequence –log-prefix “IPT-ICMPTTL0duringtransit# ”
      iptables -A ICMP -p icmp –icmp-type 11/1 -j LOG –log-level warning –log-ip-options –log-tcp-options –log-tcp-sequence –log-prefix “IPT-ICMPTTL0duringreassemb# ”
      iptables -A ICMP -p icmp –icmp-type 12/0 -j LOG –log-level warning –log-ip-options –log-tcp-options –log-tcp-sequence –log-prefix “IPT-ICMPIPbadheader# ”
      iptables -A ICMP -p icmp –icmp-type 12/1 -j LOG –log-level warning –log-ip-options –log-tcp-options –log-tcp-sequence –log-prefix “IPT-ICMPreqoptionmiss# ”
      iptables -A ICMP -p icmp –icmp-type 13/0 -j LOG –log-level warning –log-ip-options –log-tcp-options –log-tcp-sequence –log-prefix “IPT-ICMPtimestamprequest# ”
      iptables -A ICMP -p icmp –icmp-type 14/0 -j LOG –log-level warning –log-ip-options –log-tcp-options –log-tcp-sequence –log-prefix “IPT-ICMPtimestampreply# ”
      iptables -A ICMP -p icmp –icmp-type 17/0 -j LOG –log-level warning –log-ip-options –log-tcp-options –log-tcp-sequence –log-prefix “IPT-ICMPaddrmaskrequest# ”
      iptables -A ICMP -p icmp –icmp-type 18/0 -j LOG –log-level warning –log-ip-options –log-tcp-options –log-tcp-sequence –log-prefix “IPT-ICMPaddrmask# ”
      iptables -A ICMP -p icmp -j ACCEPT

      /etc/rsyslog.conf:
      template (name=”IPTFile” type=”list”)
      {
      constant(value=”/xvar/iptables/logs/”)
      property(name=”msg” regex.type=”ERE” regex.expression=”IPT-(.*[^#])# .*” regex.submatch=”1″)
      constant(value=”.log”)
      }

      # goes to /xvar/iptables/logs and /dev/console.
      # Grab /dev/console with X client xconsole

      if $syslogfacility-text == ‘kern’ and $syslogseverity-text == ‘warning’ and $msg contains ‘IPT-‘ then
      {
      action(name=”IPT” type=”omfile” dynaFile=”IPTFile” Template=”ipt” closeTimeout=”10″
      dynaFileCacheSize=”20″ ioBufferSize=”32k” flushInterval=”5″ asyncWriting=”on”
      queue.size=”1000″ queue.workerthreadminimummessages=”100″ queue.workerthreads=”4″ queue.type=”linkedlist”)
      & /dev/console
      stop
      }

      1. Avatar de Tobias
        Tobias

        Embora sem consequencias para o resultado adicionei intencionalmente um erro. Alguem identifica?

        1. Avatar de José Maria Oliveira Simões
          José Maria Oliveira Simões

          Qual erro ?

          1. Avatar de Tobias
            Tobias

            O erro e inocuo dado que tudo funciona na mesma.
            –log-tcp-options –log-tcp-sequence
            ICMP transita apenas em pacotes IP. Nao ha tcp nem udp.
            Portanto acrescentar –log-tcp-options –log-tcp-sequence e irrelevante.

  3. Avatar de Pedro Gonçalves
    Pedro Gonçalves

    A resposta ao ping permite também que terceiros possam usar a nossa máquina para realizarem debug de acesso à nossa rede. Não responder é semelhante a não responder ao nosso vizinho, inútil em termos de segurança e privacidade, mas má educação.

    1. Avatar de jorge
      jorge

      A sério que não percebi o teu comentário. O primeira passo de uma ataque é o reconhecimento, por isso….. “O debug” de acesso à nossa rede deve ser o menor das nossas preocupações. É falta de educação não responder a indesejados?

    2. Avatar de Nirelle
      Nirelle

      A sério? Disparar contra os dois pés?

  4. Avatar de Hacker Alhinho
    Hacker Alhinho

    Num ping a uma máquina Debian dá-me o TTL=62.