Dica: Desactivar respostas a pings no Linux
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?
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
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 |
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.
Este artigo tem mais de um ano
qual é a utilidade disto?
para os serviços web funcionarem correctamente não é necessário haver resposta do nosso pc?
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.
Sim, também é uma excelente aplicação (NMAP).
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
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.
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
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…
Ok. Sorry. Seja como for esse valores são altamente enganadores, mas, concordo que podem ser uma pista
Sim, até porque no caso de existirem router pelo meio, os valores mudam. É claro que podemos sempre recorrer ao traceroute.
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.
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.sapo.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.
SIm, o Firestarter tem isso pois é um firewall. Quanto ao GUFW vou confirmar, mas deve ter.
Obrigado pelo contributo
O Firestarter não é uma firewall, mas sim uma interface gráfica para configurar o iptables.
Podiam-me indicar o modulo do joomla para estas caixas de comentários que voces usam? É a mais apelativa que alguma vez vi.
penso que isto é wordpress..
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.
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
Exacto é mesmo isso.
@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
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
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 é
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
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!
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
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
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 🙂
sim tb
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.
grande artigo. parabéns
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!
colocas a opção -4 no ping e vês o ping sob a perspectiva IPV4
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?
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
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. . .
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
Como desactivo no firestarter a resposta a pings?