Cómo bloquear las solicitudes de ping ICMP a sistemas Linux


Algunos administradores de sistemas a menudo bloquean los mensajes ICMP en 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 simple para bloquear comando de ping en sistemas Linux es agregar una regla de iptables , como se muestra en el siguiente ejemplo. Iptables es una parte del kernel de Linux netfilter y, por lo general, 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 línea siguiente 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 vienen con el cortafuegos 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 extracto de abajo.

-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 de CentOS o Red Hat Enterprise Linux que utiliza la interfaz de Firewalld para administrar las reglas de 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 han aplicado con éxito en todos los casos descritos 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 casilla de Linux, debería recibir los mensajes " Tiempo de espera agotado " o " Destino del host de destino " en la máquina remota.