Cómo bloquear solicitudes de ping ICMP a sistemas Linux


Algunos administradores de sistemas a menudo bloquean los mensajes ICMP a sus servidores para ocultar las cajas de Linux al mundo exterior en redes en mal estado o para evitar algún tipo de inundación de IP y ataques de denegación de servicio.

El método más simple para bloquear el comando ping en sistemas Linux es agregar una regla de iptables, como se muestra en el siguiente ejemplo. Iptables es parte del netfilter del kernel de Linux y, por lo general, se instala de forma predeterminada en la mayoría de los entornos de Linux.

# iptables -A INPUT --proto icmp -j DROP
# iptables -L -n -v  [List Iptables Rules]

Otro método general para bloquear mensajes ICMP en su sistema Linux es agregar la siguiente variable del kernel que eliminará todos los paquetes de ping.

# echo “1” > /proc/sys/net/ipv4/icmp_echo_ignore_all

Para que la regla anterior sea permanente, agregue la siguiente línea al archivo /etc/sysctl.conf y, posteriormente, aplique la regla con el comando sysctl.

# echo “net.ipv4.icmp_echo_ignore_all = 1” >> /etc/sysctl.conf 
# sysctl -p

En las distribuciones de Linux basadas en Debian que se envían con el firewall de la aplicación UFW, puede bloquear los mensajes ICMP agregando la siguiente regla al archivo /etc/ufw/before.rules, como se ilustra en el siguiente extracto.

-A ufw-before-input -p icmp --icmp-type echo-request -j DROP

Reinicie el firewall de UFW para aplicar la regla, emitiendo los siguientes comandos.

# ufw disable && ufw enable

En la distribución CentOS o Red Hat Enterprise Linux que usa la interfaz Firewalld para administrar las reglas de iptables, agregue la siguiente regla para eliminar los mensajes de ping.

# firewall-cmd --zone=public --remove-icmp-block={echo-request,echo-reply,timestamp-reply,timestamp-request} --permanent	
# firewall-cmd --reload

Para probar si las reglas del firewall se han aplicado con éxito en todos los casos discutidos anteriormente, intente hacer ping a la dirección IP de su máquina Linux desde un sistema remoto. En caso de que los mensajes ICMP estén bloqueados en su caja de Linux, debería recibir un mensaje de "Solicitud agotada" o "Host de destino inaccesible" en la máquina remota.