¿Qué es ICMP? ¿Por qué deberías bloquearlo?

ICMP es un protocolo de informe de errores que es (o fue a la vez) requerido para cualquier dispositivo conectado a Internet. El mensaje ICMP más conocido es “echo”, alias. “silbido”. Existen varios códigos de respuesta posibles, cada uno de los cuales puede ser útil para diagnosticar problemas de red.

0 red inalcanzable
1 host inalcanzable
2 Protocolo inalcanzable
3 puertos inalcanzables
4 Fragmentación necesaria y no se configuró Fragmento
5 Ruta de origen fallida
6 Red de destino desconocida
7 Host de destino desconocido
8 host de origen aislado
9 La comunicación con la red de destino es
Prohibido administrativamente
10 La comunicación con el host de destino es
Prohibido administrativamente

Si su conexión de red falla, ICMP puede decirle dónde podría estar el problema: quizás su firewall saliente está bloqueando un puerto, o su enrutamiento es incorrecto, un firewall entrante está bloqueando algo o la máquina simplemente no está escuchando. A menudo, una máquina responderá a una solicitud UDP no admitida con un paquete ICMP, mientras que si ICMP está bloqueada, la conexión simplemente no funcionará; eventualmente podría notar que nunca llegaron datos.

En mi opinión, hay poca justificación para bloquear el ICMP, o al menos el eco: los paquetes peligrosos generalmente no tienen efecto (por ejemplo, una sugerencia de que utilice una ruta alternativa). Microsoft bloqueó ICMP en el firewall de Windows hace algunos años, pero siempre lo enciendo; por las razones mencionadas anteriormente, es útil para diagnosticar problemas de red.

Hay un par de razones más o menos paranoicas para bloquear ICMP. Una es que podría usarse para la extracción de datos de una máquina pirateada: si se permite ICMP a través de firewalls, entonces los datos podrían integrarse en paquetes ICMP que normalmente no se inspeccionarían. Esto no es del todo descabellado, algo similar se ha hecho con los paquetes DNS, pero es extremadamente improbable. Es mucho más probable que una máquina pirateada solo use IRC o HTTP para filtrar datos.

Otra razón para bloquearlo es que puede usarse para vigilancia: un adversario puede enumerar máquinas en una red simplemente haciendo ping a las direcciones numéricas en secuencia. En la práctica, los escáneres como Nmap pueden usar paquetes TCP para descubrir puertos abiertos en una máquina, mientras que es más probable que los escritorios de Windows sean atacados a través del usuario, por correo electrónico. El bloqueo de ICMP simplemente dificulta que una organización realice un monitoreo interno, pero no aumenta significativamente la seguridad.

Una tercera razón histórica para bloquear ICMP es defenderse contra el Ping de la muerte. Durante un breve período alrededor de noviembre de 1996, los administradores bloquearon ICMP en los cortafuegos hasta que se hayan actualizado todos sus dispositivos conectados a la red. Se descubrió que Windows NT podía enviar un paquete de ping ilegal que colapsaría la mayoría de los otros sistemas operativos. No hace falta decir que eso se arregló en 1996, o al menos en 1997.

ver, por ejemplo, tipos y códigos ICMP

Como se destaca en las otras publicaciones, ICMP tiene muchas características importantes que

son esenciales para: –

– Solución de problemas de red

– Permite que la red funcione

Ping and Traceroute utiliza los servicios de ICMP. La fragmentación y el “tiempo excedido” utiliza ICMP.

Como línea de defensa, puede utilizar un “límite de velocidad” con solicitudes ICMP excesivas a su

Cortafuegos Esto ayudará a liberar los recursos de CPU muy necesarios. En lugar de bloquear completamente ICMP, puede “limitar la velocidad” de los tipos de tráfico ICMP.

Nota:

RFC 4821 se desarrolló para ayudar a los hosts a solucionar este problema utilizando el descubrimiento de MTU de ruta de capa de paquetes (PLPMTUD), que descubre la MTU de ruta aumentando gradualmente el MSS para tratar de encontrar un valor adecuado para la ruta.

https://www.ietf.org/rfc/rfc4821