Solución 1:
ICMP es mucho, mucho más que "traceroute" y "ping". Se usa para recibir comentarios cuando ejecuta un servidor DNS (puerto inalcanzable) que, en un servidor DNS moderno, puede ayudar a seleccionar una máquina diferente para consultar más rápido.
ICMP también se usa, como se mencionó anteriormente, para el descubrimiento de rutas MTU. Lo más probable es que su sistema operativo establezca "DF" (no fragmentar) en los paquetes TCP que envía. Espera recibir un paquete ICMP de "fragmentación requerida" si algo a lo largo de la ruta no puede manejar ese tamaño de paquete. Si bloquea todos los ICMP, su máquina tendrá que usar otros mecanismos alternativos, que básicamente usan un tiempo de espera para detectar un "agujero negro" de PMTU y nunca se optimizarán correctamente.
Además, debe preguntarse por qué desea bloquear ICMP. ¿Qué estás tratando de evitar específicamente aquí? Está bastante claro que no entiende para qué se usa ICMP, lo cual es bastante común. Sería extremadamente cauteloso al bloquear algo que no entienda completamente.
Para que sea aún más difícil aprender sobre esto, muchos libros de firewall comunes dicen "bloquear ICMP":está claro que sus autores nunca han leído un RFC o han tenido que resolver problemas relacionados con dichos consejos. Es un mal consejo bloquear todos los ICMP.
Ahora, limitar la velocidad también puede hacer daño. Si su máquina está ocupada, o incluso si no lo está, puede obtener una buena cantidad de tráfico ICMP. Mi servidor web probablemente recibe entre 10 y 100 paquetes ICMP por minuto, la mayoría de los cuales son descubrimientos de PMTU. Incluso si alguien decide atacar mi servidor con paquetes ICMP de algún tipo, en realidad no es gran cosa. Si su máquina acepta incluso una conexión TCP (ssh, http, correo, etc.), es probable que sea un vector de ataque más grande que el mal entendido ICMP.
Solución 2:
ICMP se utiliza para una variedad de funciones de diagnóstico (p. ej., ping, traceroute) y control de red (p. ej., detección de PMTU). El bloqueo indiscriminado de ICMP causa a otras personas todo tipo de acidez estomacal y, a menos que sepa exactamente lo que está haciendo, debe dejarlo en paz.
Solución 3:
Nunca entendí por qué la gente registra ICMP, como se dijo anteriormente, solo causa dolores de cabeza para usted y para los demás. Puede determinar si un host está activo con la suficiente facilidad y, siempre que esté lo suficientemente limitado como para no usarse como DOS, nunca escuché ninguna razón convincente para bloquearlo. (Si alguien puede encontrar una razón, publíquela)
Solución 4:
podría simplemente intentar limitar icmp de esa manera, no se puede usar como un ataque de DOS. pero hay demasiadas herramientas de solución de problemas como ping, mtr (olvidé el equivalente de Windows), traceroute (tracert), que usan icmp. dejarlos por completo es una tontería. Es una buena manera de comprobar si su instancia está activa aunque no pueda hacer telnet en ningún puerto.
--limit 10/second
a su (s) regla (s) icmp es probablemente un límite decente dado cuánto puede manejar una computadora.
Solución 5:
Aquí hay un punto de vista alternativo, en el espíritu de lo que sugeriría la teoría de la seguridad. Otros carteles tienen razón en que la práctica de la seguridad suele ser demasiado entusiasta, pero hay una buena base para gran parte de ella.
La teoría de seguridad generalmente es que solo habilitas LO QUE NECESITAS. Un atacante puede usar otras cosas (que podrían ser útiles, por ejemplo, respuestas de ping) para rastrear su sistema, o posiblemente como un vector de ataque para alguna vulnerabilidad aún por descubrir.
Entonces, al observar los tipos de mensajes ICMP, ¿qué NECESITA para el funcionamiento normal y adecuado de su sistema?
- respuesta de eco (ping) - no tanto
- destino inalcanzable:aquí hay mucha información útil. Deshabilite esto e interrumpirá el acceso a su servidor para algunos clientes.
- apagado de fuente:obsoleto desde 1995 y aparentemente eliminado de las implementaciones de host desde (a más tardar) 2005. tools.ietf.org/html/rfc6633#section-1.
- redireccionar - casi seguro que no
- publicidad y solicitud de enrutador:no es necesario si configura estáticamente sus rutas y podría usarse para DoS. Lo bloquearía a menos que sepa que lo necesita, y si lo necesita, quizás codifique una regla para aceptar información solo de los posibles enrutadores conocidos.
- ttl excedido:no solo para traceroute, le dice que su tráfico no llega a su destino
...y así. Si realmente quiere entender esto, infórmese sobre los distintos tipos de ICMP y para qué sirven. El artículo de wikipedia es un buen punto de partida.
En la práctica, la realmente fea es la redirección; si solo quiere hacer algo rápido y útil, bloquee eso y permita el resto.
Agregaría que el seguimiento de la conexión de IPtables permitirá los paquetes ICMP de retorno apropiados para las conexiones activas. Entonces, si está ejecutando conntrack, debería poder bloquear la mayoría de los ICMP entrantes, siempre que acepte paquetes RELACIONADOS (antes de bloquear ICMP en su conjunto de reglas).