Dica: Desactivar respostas a pings no Linux

36 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 da redes, uma vez que permite testar a conectividade entre equipamentos.

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á activa e alcançável na rede.

Como bloquear então a resposta a pings?

ping_02

O comando ping recorre ao 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

ping

Vamos agora ver dois métodos que permitem activar/desactivar 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

Desactivar 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

ping_01

Método 2

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

Partilhar:
Tags:

Comentários

36

Deixe um comentário

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

  1. Avatar de teste
    teste

    qual é a utilidade disto?
    para os serviços web funcionarem correctamente não é necessário haver resposta do nosso pc?

    1. Avatar de Fellipe
      Fellipe

      A resposta do ping (ICMP ECHO) não afeta em nada outros serviços.

      Por outro lado, é muito fácil descobrir se a máquina está ativa por outros meios sem ser o PING. Com o NMAP ou outro scanner, ou qualquer sniffer, pode se detectar bem mais se a máquina está ativa.

      1. Avatar de Pedro Pinto

        Sim, também é uma excelente aplicação (NMAP).

  2. Avatar de BESTCINE

    De informar apenas que estes valores são apenas valores de referência:

    * UNIX: 255
    * Linux: 64
    * Windows: 128

    Nem sempre um ping devolve estes valores, mas nos casos em que não devolve, andará lá muito perto…

    De qualquer maneira boa dica!

    Abraço,
    BESTCINE

    1. Avatar de José
      José

      O valor é próximo pois indica o número de hops que o pacote passou pelo caminho.

      Se o TTL é 123, provavelmente é um Windows, e o número de roteadores entre vc e o destino é 5: 128 – 5 = 123.

  3. Avatar de Sergio
    Sergio

    TTL o quê?!? Lá porque esse valor costuma a ser o valor padrão nesses SO, não quer dizer que uma resposta com esse valores seja mesmo de uma maquina com esse SO. No máximo, haverá uma lata probabilidade de o ser

    1. Avatar de Pedro Pinto

      Sérgio, e tu não sabes ler?

      “Por outro lado, em algumas circunstâncias (pode variar, uma vez que o valor pode ser alterado)…”

      Há momentos em que se ganha mais quando se está calado…

      1. Avatar de Sergio
        Sergio

        Ok. Sorry. Seja como for esse valores são altamente enganadores, mas, concordo que podem ser uma pista

        1. Avatar de Pedro Pinto

          Sim, até porque no caso de existirem router pelo meio, os valores mudam. É claro que podemos sempre recorrer ao traceroute.

    2. Avatar de Manoel Pedro

      TTL (Time to Live) é o tempo de vida do pacote na rede, é um campo no cabeçalho que pacote que é incrementado a cada roteador em que o pacote passa, ele é utilizado para evitar que um pacote circule eternamente na rede, quando o valor TTL de um pacote alcança um valor determinado sem encontrar seu destino, este pacote é descartado.

  4. Avatar de S-K
    S-K

    Pedro Pinto, eu uso o front-end firestarter, que tem essa opção para desactivar as respostas ping.

    O GUFW não tem essa opção para desactivar as respostas ping? (Nunca usei o GUFW)
    https://pplware.sitedev.pt/linux/gufw-10-04-5-firewall-nao-complicado-para-o-ubuntu/

    Outra coisa. Após reiniciar a máquina, as configurações serão “perdidas”.

    Será necessário criar um script dentro do init para executar os comandos que exemplificas-te em cima, de cada vez que a máquina arranca.

    1. Avatar de Pedro Pinto

      SIm, o Firestarter tem isso pois é um firewall. Quanto ao GUFW vou confirmar, mas deve ter.

      Obrigado pelo contributo

      1. Avatar de Marco
        Marco

        O Firestarter não é uma firewall, mas sim uma interface gráfica para configurar o iptables.

  5. Avatar de Nuno Santos
    Nuno Santos

    Podiam-me indicar o modulo do joomla para estas caixas de comentários que voces usam? É a mais apelativa que alguma vez vi.

    1. Avatar de sergio91pt
      sergio91pt

      penso que isto é wordpress..

  6. Avatar de Miguel Pereira Leite
    Miguel Pereira Leite

    TTL = hops???
    TTL com valores padrão do SO de destino??

    http://searchnetworking.techtarget.com/sDefinition/0,,sid7_gci214184,00.html

    A moderação tem que ter cuidado. Há muita gente q vem aqui ler.

    1. Avatar de Sergio
      Sergio

      Agora é a minha vez de responder pelo Pedro. Lê o que ele disse 😀 “Por outro lado, em algumas circunstâncias (pode variar, uma vez que o valor pode ser alterado)…”

      É um indicador, não diz que é

      e sim quem define o TTL é o endereço de destino que retorna o seu TTL. Por padrão tem aqueles valores naqueles SO. Se cada router descontar um valor pode-se aferir, mais ao menos, qual o SO. Mas é tal coisa, depende do numero de routers que se apanha pelo caminho (que pode ser calculado) e dos valores definido pela maquina de destino. Mais uma vez, não dá certezas, mas dá pistas.
      Eu pessoalmente nunca usei o ping para isso, mas admito que possa ser usado

      1. Avatar de Pedro Pinto
    2. Avatar de Pedro Pinto

      @Miguel Pereira Leite

      Acho que o debate torna-se em certas circunstâncias mais importante que o próprio artigo. Acho que estas trocas de know-how só nos enriquecem.

      Obrigado pelo partilha

    3. Avatar de lmx
      lmx

      boas..
      epa eu sei que este tema é muito interessante e importante, no entanto vocês que eu saiba nunca fizeram alusão a ele, e independentemente de estar completamente correcto, ou “indirectamente” correcto, acho que essas criticas são muito mal vindas, até porque não acrescentam grande coisa.
      Se querem acrescentar informação útil e eu apenas falo como leitor e por mim agradeço obviamente agora determinado tipo de comentários não são necessários, parecem ataques directos a alguém em concreto.
      querem acrescentar info pois muito bem acho que todos agradecemos, mas não é preciso entrar numa de arrogância, em relação a nenhum assunto e nem a um alvo em concreto.

      Pedro Pinto, mais uma vez parabéns por ter lançado este assunto sobre segurança.

      Cumprimentos a todos

      1. Avatar de Sergio
        Sergio

        lmx, este é o problema da net. Por vezes determinado tipo de comentários, quer apenas referir que não está correcto, mas a forma como são expressos por vezes dão um ar de arrogancia. Coisa que muitas vezes não é

        1. Avatar de Pedro Pinto

          eh eh eh..eu digo isso tantas vezes. A Internet não permite “olhar nos olhos” para dizer as coisas e acima de tudo nunca sabemos em que “tom” são ditas..Os Instant Messengers são outro exemplo

        2. Avatar de Ricardo Elias
          Ricardo Elias

          Esse e’ o problema nas pessoas. A net e’ apenas o meio que se usa para comunicar. Acho que dizer que e’ a net, acaba por ajudar o mesmo grupo a serem ainda piores: funciona como desculpa.

          Antigamente, tambem haviam cartas anonimas, chamadas anonimas, etc. Agora os meios sao outros.

          Excelente dica do Pedro Pinto. E a tua explicacao ajudou-me a perceber a dica!

          Fiquem Bem!

        3. Avatar de lmx
          lmx

          boas..

          Sergio:
          o meu post acima não foi somente dirigido ati, foi também a Miguel Pereira Leite,e talvez mais.
          É verdade que a net não daixa ver nos olhos, por isso mesmo as pessoas usam truques de escrita para que se possa simular embora de uma forma deficiente sentimentos, etc.
          Para prevenir este tipo de enganos, as pessoas teriam que ter um cuidado acrescido, devido a má interpretação,nunca gostei de individuos chicoespertinhos,etc, e sou da mesma opinião que o Ricardo ellias, as pessoas arranjam as vezes cada desculpa para as suas atitudes, vale tudo, e não é so na net.

          cmps

  7. Avatar de Sergio
    Sergio

    já agora para que é eu uso mais o ping:

    1) Forçar preenchimento nas tabelas ARP
    2) Validar se uma maquina/equipamento está activo
    3) E principalmente verificar a latência da rede

    1. Avatar de chicosoft
      chicosoft

      Alem disso eu muitas vezes faço pings para a sessão não me cair, por exemplo em sessões via radio para a antena não te mandar para fora temos que gerar trafego… um simples ping resolve a coisa 🙂

  8. Avatar de kwimerA
    kwimerA

    Excelente dica.
    Já conhecia o primeiro método. Não sabia que o TTL variava com o SO, pensei que fosse um valor por defeito do protocolo ICPM. Mas agora que me estou a lembrar.. realmente no Packet Tracer eu via um TTL=128 enquanto que na linha de comandos do linux vejo 64.

  9. Avatar de Hélder Pinheiro
  10. Avatar de Cristiano Alves
    Cristiano Alves

    Este artigo parece-me bastante interessante, principalmente pelas questões e opiniões consequentes…
    As coisas no IPv6 já não funcionam bem assim, deixo a sugestão de analisarem a ajuda do ping 🙂

    Boa continuação!

    1. Avatar de Sergio
      Sergio

      colocas a opção -4 no ping e vês o ping sob a perspectiva IPV4

  11. Avatar de Simões
    Simões

    Boas tardes.
    Nem de proposito, estou com um problema que pode ser relacionado com isto.
    Imaginem que tem a seguinte configuração:
    Um router R1 que liga a um switch que por sua ver tem outro router R2 ligado.
    Caso esteja ligado ao switch consigo fazer ping aos ips que estão ligados ao router 2, caso esteja ligado ao router R1 não consigo fazer ping nem trace nem com o nmap la chego.
    O trace pára sempre no router 2.
    Alguma ideia?

    1. Avatar de Miguel Pereira Leite
      Miguel Pereira Leite

      Assim assim, sem mais dados, parece um problema de routing no R2. Pode n ter rotas para conseguir responder à rede q está atras do R1

      Ou seja: para alem de teres q ter routing para ires da rede R1 até a rede r2, o caminho inverso, routing, tb tem q existir.

      Mas pode n ser nada disto, se deres mais dados pode-se chegar a outra conclusao

      1. Avatar de Simões
        Simões

        Obrigado pela resposta.
        No R2, tenho as rotas bem definidas, acho eu.
        Um exemplo de uma rota.
        Abaixo de R2 tenho um pc com o endereco 10.1.1.1 com default gateway 10.1.1.253 (endereço da porta de R2).
        A rede para baixo é R2 -> switch -> pc + router wireless.
        O pc responde aos pings.
        Tenho em R2 as seguintes rotas:
        Todo o trafego para 10.1.2.0 segue para a gateway 10.1.1.254.
        10.1.1.254 é o router wireless. . .
        não tenho acesso às configurações do Router wireless pois é um produto externo à nossa empresa.
        Caso esteja conectado ao switch, posso fazer ping aos ips conectados ao router wireless, gama( 10.1.2.1 -> 10.1.2.10)
        O traceroute para 10.1.2.5 mostra 10.1.1.30(meu ip) -> 10.1.1.253 (porta de R2) -> 10.1.1.254 (R wireless) -> 10.1.2.5.
        Caso me conecte a outra porta do router tenho:
        192.168.1.10 (meu ip) -> 10.1.1.254 . . .
        pára ai.
        Ou seja, o router wireless não está a retornar os pedidos de ping. . .

        1. Avatar de Simões
          Simões

          Tudo isto foi referente ao R2. Conectado a R1 consigo fazer ping ao pc, 10.1.1.1, consigo fazer ping ao Router wireless 10.1.1.254, mas tb não consigo aos endereços 10.1.2.x

  12. Avatar de Rafael
    Rafael

    Como desactivo no firestarter a resposta a pings?