54 votos

¿Por qué no bloquear ICMP?

Creo que casi tengo mi iptables instalación completa en mi CentOS 5.3 sistema. Aquí está mi script...

# Establish a clean slate
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F # Flush all rules
iptables -X # Delete all chains

# Disable routing. Drop packets if they reach the end of the chain.
iptables -P FORWARD DROP

# Drop all packets with a bad state
iptables -A INPUT -m state --state INVALID -j DROP
# Accept any packets that have something to do with ones we've sent on outbound
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# Accept any packets coming or going on localhost (this can be very important)
iptables -A INPUT -i lo -j ACCEPT
# Accept ICMP
iptables -A INPUT -p icmp -j ACCEPT

# Allow ssh
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Allow httpd
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# Allow SSL
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Block all other traffic 
iptables -A INPUT -j DROP

Para el contexto, esta máquina es un Servidor Privado Virtual de la aplicación Web de host.

En una pregunta anterior, Lee B me dijo que yo debería de "bloqueo de ICMP un poco más." ¿Por qué no simplemente bloquearlo por completo? ¿Qué pasaría si yo hiciera eso (lo que algo malo iba a pasar)?

Si me necesita para no bloquear ICMP, cómo se podría ir sobre el bloqueo que por más?

120voto

Michael Graff Puntos 5432

ICMP es mucho más que "traceroute" y "ping." Se utiliza para la retroalimentación cuando se ejecuta un servidor DNS (puerto inalcanzable) que, en un moderno servidor DNS, en realidad puede ayudar a seleccionar un equipo diferente para consulta rápida.

ICMP es también, como se mencionó anteriormente, se utiliza para path MTU discovery. Es probable que su OS conjuntos "DF" (don't fragment) en los paquetes TCP envía. Se está a la espera de conseguir un ICMP "fragmentación necesaria" paquete de vuelta si algo a lo largo de la ruta de falla a manejar el tamaño de paquete. Si bloquea todos los ICMP, su equipo se tiene que utilizar otros mecanismos de reserva, que básicamente utiliza un tiempo de espera para detectar un PMTU "agujero negro", y nunca optimizar correctamente.

Además, usted debe preguntarse ¿por qué desea bloquear ICMP. Específicamente, ¿qué estás tratando de evitar aquí? Es bastante claro que no entiendes lo que es de ICMP, que es bastante común. Me gustaría ser extremadamente cuidadosos en el bloqueo de algo que usted no entiende completamente.

Para hacer aún más difícil de aprender acerca de esto, muchos de los más comunes firewall libros dicen "bloque de ICMP" -- es claro que sus autores nunca han leído un RFC o tenido que resolver los problemas que rodean a tales consejos. Es un mal consejo para bloquear todos los ICMP.

Ahora, la limitación de velocidad también puede afectar. Si su máquina está ocupado, o incluso si no lo es, usted puede conseguir una buena cantidad de tráfico ICMP. Mi servidor web, probablemente, recibe alrededor de 10 a 100 paquetes ICMP por minuto, la mayoría de los cuales es el descubrimiento de PMTU. Incluso si alguien escogió a atacar a mi servidor con paquetes ICMP de algún tipo, realmente no es tan grande de un acuerdo. Si su máquina acepta incluso una conexión TCP (ssh, http, correo, etc) son las posibilidades de que un mayor vector de ataque de mal entendido ICMP será nunca.

26voto

Ryan Sampson Puntos 2898

ICMP se utiliza para una variedad de diagnóstico (por ejemplo, ping, traceroute) y de control de red (por ejemplo, el descubrimiento de PMTU) funciones. Bloqueo indiscriminado de ICMP causas ajenas a todo tipo de acidez, y a menos que usted sepa exactamente lo que está haciendo, usted debe dejar sola.

16voto

ss1271 Puntos 244

Nunca he entendido por qué la gente reloj ICMP, como se dijo anteriormente sólo provoca dolores de cabeza para usted y los demás. Usted puede determinar si un host está arriba con bastante facilidad, y en la medida que es bastante limitada como para no ser utilizado como un DOS, a continuación, nunca he oído a ningún razones de peso para bloquearlo. (Si alguien puede venir para arriba con una razón, por favor, post)

9voto

Daniel Puntos 2171

usted podría probar límite-ing icmp de esa manera no puede ser utilizado como un ataque DOS. pero hay muchas herramientas de solución de problemas como ping, mtr (se me olvida equivalente en windows), traceroute (tracert), que utiliza icmp. colocándolos total, es sólo una tontería. Es una buena manera de comprobar si la instancia es incluso aunque usted no puede telnet en todos los puertos.

--limit 10/second

a su icmp regla(s) es, probablemente, una decente límite dado lo mucho que un ordenador puede manejar.

3voto

ping es una buena herramienta de diagnóstico, que realmente te gustaría tener algún día. Estoy usando estos:

-A icmp_packets -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A icmp_packets -p icmp -m icmp --icmp-type 11 -j ACCEPT

también puede ser que desee acelerador.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: