Búsqueda de sitios web

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 difíciles o para evitar algún tipo de inundación de IP y ataques de denegación de servicio.

El método más sencillo para bloquear el comando ping en sistemas Linux es agregar una regla iptables, como se muestra en el siguiente ejemplo. Iptables es parte del netfilter del kernel de Linux y, normalmente, se instala de forma predeterminada en la mayoría de los entornos 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 distribuciones de Linux basadas en Debian que se entregan con el firewall de aplicaciones 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 UFW para aplicar la regla, emitiendo los siguientes comandos.

ufw disable && ufw enable

En la distribución CentOS o Red Hat Enterprise Linux que utiliza la interfaz Firewalld para administrar las reglas iptables, agregue la siguiente regla a soltar 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 aplicaron exitosamente 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 máquina Linux, debería recibir un mensaje "Se agotó el tiempo de espera de la solicitud" o "Host de destino inalcanzable" en la máquina remota.