Creo que casi tengo mi configuración de iptables completa en mi sistema CentOS 5.3. Aquí está mi guión ...
# 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
Por contexto, esta máquina es un host de aplicación web de servidor privado virtual.
En una pregunta anterior , Lee B dijo que debería "bloquear ICMP un poco más". ¿Por qué no simplemente bloquearlo por completo? ¿Qué pasaría si hiciera eso (qué cosa mala sucedería)?
Si no necesito bloquear ICMP, ¿cómo podría bloquearlo más?
Respuestas:
ICMP es mucho más que "traceroute" y "ping". Se utiliza para 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 utiliza, como se mencionó anteriormente, para el descubrimiento de MTU de ruta. Lo más probable es que su sistema operativo establezca "DF" (no fragmente) en los paquetes TCP que envía. Se espera recuperar un paquete de "fragmentación requerida" ICMP 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" PMTU y nunca se optimizará correctamente.
Además, debe preguntarse por qué desea bloquear ICMP. ¿Qué estás tratando de prevenir específicamente aquí? Está bastante claro que no entiendes para qué se usa ICMP, que es bastante común. Sería extremadamente cauteloso al bloquear algo que no entiendes 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 doler. 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 es el descubrimiento de PMTU. Incluso si alguien elige atacar mi servidor con paquetes ICMP de algún tipo, realmente no es tan importante. Si su máquina acepta incluso una conexión TCP (ssh, http, mail, etc.), es probable que sea un vector de ataque más grande que el ICMP mal entendido.
fuente
redirect
. Ese es el único tipo de ICMP que debería considerar bloquear.redirect
. Ahora entiendo que debería considerarlo, pero no estoy mejor, todavía no puedo decidir de una forma u otra :) ¿Es un riesgo o no?ICMP se utiliza para una variedad de funciones de diagnóstico (por ejemplo, ping, traceroute) y control de red (por ejemplo, descubrimiento 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 solo.
fuente
Nunca he entendido por qué las personas registran ICMP, como se dijo anteriormente, solo causa dolores de cabeza a usted y a los demás. Puede determinar si un host está funcionando con suficiente facilidad y siempre y cuando sea lo suficientemente limitado como para no ser utilizado como DOS, nunca he escuchado ninguna razón convincente para bloquearlo. (Si alguien puede encontrar una razón, publique)
fuente
puedes intentar limitar icmp de esa manera, no se puede usar como un ataque DOS. pero hay demasiadas herramientas de solución de problemas como ping, mtr (olvido el equivalente de Windows), traceroute (tracert), que usan icmp. dejarlos caer por completo es una tontería. Es una buena manera de verificar si su instancia está activa aunque no pueda hacer telnet en ningún puerto.
para su (s) regla (s) icmp es probablemente un límite decente dado cuánto puede manejar realmente una computadora.fuente
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 seguridad a menudo es demasiado celosa, pero hay una buena base para ello.
La teoría de seguridad es generalmente que solo habilitas LO QUE NECESITAS. Un atacante puede usar otras cosas (que podrían ser útiles, por ejemplo, respuestas de ping) para examinar su sistema, o posiblemente como un vector de ataque para alguna vulnerabilidad aún por descubrir.
Entonces, mirando los tipos de mensajes ICMP, ¿qué NECESITA para el funcionamiento normal y adecuado de su sistema?
...y así. Si realmente quiere entender esto, aprenda sobre los diversos tipos de ICMP y para qué sirven. El artículo de Wikipedia es un buen punto de partida.
En la práctica, el realmente feo es la redirección; Si desea hacer algo rápido y útil, bloquee eso y permita el resto.
Agregaría que el seguimiento de conexión de IPtables permitirá los paquetes ICMP de retorno apropiados para conexiones activas. Entonces, si está ejecutando conntrack, debería poder bloquear la mayoría de las entradas ICMP, siempre que acepte paquetes RELACIONADOS (antes de bloquear ICMP en su conjunto de reglas).
fuente
Es una herramienta de diagnóstico útil para resolver problemas de conectividad de red.
También le permite usar conexiones en otros lugares de Internet que usan MTU más pequeñas que las de su red. Si intenta enviar un paquete a un lugar que es demasiado grande y no puede fragmentarse, el dispositivo descarta el paquete y envía un paquete de fragmentación ICMP necesario al remitente. Si descarta todos los paquetes ICMP, los pierde y suceden cosas extrañas en su red.
La verdadera pregunta es "¿por qué bloquear ICMP?" Que ganas Solo tenga buenas reglas de filtrado en su frontera y frente a sus activos valiosos.
fuente
ping es una buena herramienta de diagnóstico, realmente desearás haberla tenido algún día. Estoy usando estos:
También es posible que desee estrangularlo.
fuente
Hoy en día, incluso limitar los paquetes ICMP en el lado del servidor puede crear dolor de cabeza en los ataques DDoS. Los ataques se realizan principalmente mediante el envío de solicitudes de ICMP de gran ventana a un servidor y si el servidor está tratando de responder a cada uno de ellos, ¿adivina qué sucede?
Lo principal es que tenemos un servidor de TeamSpeak que recibe paquetes incorrectos todos los días, hubo pocos días en dos meses que tuvimos algo de "tiempo libre". Lo que habíamos hecho es la respuesta ICMP completamente deshabilitada / bloqueada, no tenemos servidores DNS en el servidor, ni servidores NTP, ni servidores de correo, ni servidores FTP, solo dos apache y teamspeak. todos los puertos que no son necesarios para los servicios están apagados. Estamos planeando bloquear incluso el ssh y dejar solo dos puertos abiertos. Hoy hay 21k (!) Prohibiciones permanentes.
La situación es que los atacantes usan principalmente túneles ICMP y se discutieron pocas líneas de registro realmente interesantes con los administradores del servidor y dijeron que tenían solicitudes ICMP del servidor, por lo que los atacantes usaron eso para hacer un túnel a través del ataque y atacarnos. Suena raro pero es cierto.
Si no necesita el diagnóstico de su servidor y si puede bloquear completamente las solicitudes o filtrarlas para colocar ventanas enormes, por ejemplo, hágalo. También le sugiero que bloquee completamente: China, Corea, Tailandia, Turquía porque la mayoría de las direcciones IP provienen de allí. Tenía listas inetnum completas de estos países, pero casi todos los días aparecen algunas nuevas.
Digo lo que hago, si no estás de acuerdo, no lo hagas. Simple como eso. Buena suerte
fuente
Como mínimo, debe permitir pasar los tipos de ICMP 3 (destino inalcanzable), 4 (apagado de origen) y 11 (tiempo excedido). Todos estos tipos se utilizan para tratar problemas de red y no se deben filtrar.
(El tipo de enfriamiento de origen está actualmente en desuso, pero no hará daño dejar que se abra)
fuente
Permito el tráfico ICMP desde la intranet local, lo bloqueo de Internet. De esa manera, mi servidor es casi invisible en línea (solo responde en un puerto SSH no estándar).
Esto lo inserta después del loopback estándar, establecido, la lista blanca de LAN, la lista blanca de proveedores de VOIP y las ACEPTACIONES de puerto SSH. Permito el tráfico que quiero, y luego hago todo lo posible para mantener el servidor invisible para el resto del mundo.
fuente