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.