A diario se transmiten millones de paquetes a través de Internet para la comunicación efectiva de diversos datos y en todo este proceso existen millones de amenazas que ponen en riesgo dicha información, una práctica que podemos implementar es el bloqueo de los mensajes ICMP ya que con esto se evita inundación de IPs en el servidor y ataques de denegación de servicio lo cual afectaría notablemente el rendimiento de los procesos del sistema.
Recordemos que, para poder intercambiar datos de estado o mensajes de error de forma correcta, los nodos recurren al protocolo Internet Control Message Protocol -Protocolo de Mensajes de Control y Error de Internet (ICMP), el cual ha sido desarrollado para brindar informes de incidencias en la entrega de los paquetes o de errores en la red.
Existen diversas formas para bloquear estos mensajes ICMP y hoy en Solvetic veremos algunas de estas opciones.
1. Bloquear Pingo con IPTABLES en Linux
IPTABLES es una herramienta integrada de Firewall mediante la cual será posible crear reglas para cada filtrado de paquetes y módulos de NAT implementado así la seguridad del sistema.
En este ejemplo usaremos Ubuntu 17 y para ello accedemos a la terminal y en primer lugar debemos iniciar sesión como usuarios root ejecutando el siguiente comando:
sudo -i
Una vez estemos como usuarios root, agregaremos la siguiente regla de IPTABLES:
iptables -A INPUT --proto icmp -j DROP
Podremos ver la regla creada ejecutando lo siguiente:
iptables -L -n -v
Podremos realizar ping a un sitio web para ver si hay o no respuesta, recordemos que el comando ping nos permite ver la disponibilidad de un sitio web enviando una serie de paquetes y recibiendo respuesta de éstos. En este caso podemos ver que han pasado varios minutos y no se obtiene ningún tipo de respuesta.
2. Bloquear Ping con variables en el Kernel Linux
Otra de las opciones a usar en Linux para el bloqueo de los mensajes ICMP es añadir ciertas variables al kernel del sistema la cual se encarga de eliminar todos los paquetes ping.
Para usar este método debemos ejecutar en primer lugar el siguiente comando:
sysctl -p
Luego ejecutamos la siguiente línea:
echo “1” > /proc/sys/net/ipv4/icmp_echo_ignore_all
Luego, añadiremos la siguiente línea al archivo /etc/sysctl.conf:
echo “net.ipv4.icmp_echo_ignore_all = 1” >> /etc/sysctl.conf
3. Bloquear Ping con UFW en Linux
UFW es un firewall moderno que puede ser implementado en Debian, CentOS y Ubuntu y mediante el cual tenemos la oportunidad de realizar y administrar diversas reglas enfocadas en la seguridad del sistema.
Si usamos UFW, debemos acceder usando el editor deseado al siguiente archivo, /etc/ufw/before.rules:
sudo nano /etc/ufw/before.rules
Allí, ubicaremos la sección ok icmp codes for INPUT y añadiremos la siguiente línea:
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP
Guardamos los cambios usando la combinación de teclas siguiente:
Ctrl +O
Salimos del editor usando:
Ctrl + X
Ejecutaremos la siguiente línea para reiniciar el firewall y aplicar los cambios:
ufw disable && ufw enable
Si estamos usando CentOS 7 o RedHat debemos ejecutar las siguientes líneas para agregar la regla:
firewall-cmd --zone=public --remove-icmp-block={echo-request,echo-reply,timestamp-reply,timestamp-request} --permanent firewall-cmd –reloadDe este modo hemos bloqueado el uso de ICMP y con ello evitamos que múltiples atacantes estén en la capacidad de acceder a nuestra red y usar el direccionamiento de la red para afectar la red local y la óptima estabilidad del sistema.