En sistemas Linux, por defecto la respuesta a ping (protocolo ICMP - Internet Control Message Protocol) está habilitada a nivel de kernel.
Para modificar este comportamiento, tenemos varias formas:
1) Modificar los parámetros de carga del kernel:
Al cargar el kernel, se leen los parámetros indicados en el fichero /etc/sysctl.conf.
Especial cuidado en modificar de forma incorrecta el contenido de este fichero.
También se pueden modificar los parámetros en caliente modificando los ficheros situados en: /proc/sys/
Dentro de /proc/sys/ encontraremos varios directorios, entre ellos el directorio net/, para configuraciones de red.
Modificar directamente /proc/sys/ hará que los cambios sean temporales, es decir, se perderán los cambios al reiniciar el equipo.
Una buena práctica es primero modificar /proc/sys/, verificar si el comportamiento es el esperado y luego modificar /etc/sysctl.conf para configurar los cambios de forma permanente.
2) Configurar el firewall del equipo:
La otra forma que tenemos para bloquear la respuesta a ping, es configurar el firewall del equipo.
Con el firewall del equipo, podemos configurar reglas que descarten los paquetes ICMP entrantes, tanto para IPv4 como para IPv6.
Veamos como habilitar o deshabilitar la respuesta ICMP a nivel de kernel:
Configuración temporal:
Para habilitar que el ICMP sea ignorado:
echo 1> /proc/sys/net/ipv4/icmp_echo_ignore_all
Para deshabilitar que el ICMP sea ignorado:
echo 0> /proc/sys/net/ipv4/icmp_echo_ignore_all
Configuración permanente:
Editamos el fichero: /etc/sysctl.conf
Para habilitar que el ICMP sea ignorado:
net.ipv4.icmp_echo_ignore_all=1
Para deshabilitar que el ICMP sea ignorado:
net.ipv4.icmp_echo_ignore_all=0
Otra forma de bloquear las respuestas ICMP es utilizando iptables:
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
Pata bloquear tráfico ICMP entrante sobre IPv6:
iptables -A INPUT -p icmpv6 --icmp-type echo-request -j DROP
Fuente: sysadmit