¿Por qué necesitaría un firewall si mi servidor está bien configurado?

59

Administro un puñado de servidores basados ​​en la nube (VPS) para la empresa para la que trabajo.

Los servidores son instalaciones mínimas de ubuntu que ejecutan bits de pilas LAMP / recopilación de datos entrantes (rsync). Los datos son grandes pero no personales, financieros ni nada por el estilo (es decir, no tan interesante)

Claramente aquí, la gente siempre pregunta sobre la configuración de firewalls y cosas por el estilo.

Utilizo un montón de enfoques para proteger los servidores, por ejemplo (pero no limitado a)

  • ssh en puertos no estándar; sin contraseña, solo claves ssh conocidas de ips conocidos para iniciar sesión, etc.
  • https y shells restringidos (rssh) generalmente solo de claves / ips conocidos
  • los servidores son mínimos, están actualizados y tienen parches regularmente
  • use cosas como rkhunter, cfengine, lynis denyhosts, etc. para monitorear

Tengo una amplia experiencia en administración de sistemas Unix. Estoy seguro de que sé lo que estoy haciendo en mis configuraciones. Configuro archivos / etc. Nunca sentí una necesidad imperiosa de instalar cosas como firewalls: iptables, etc.

Ponga a un lado por un momento los problemas de seguridad física del VPS.

Q? No puedo decidir si estoy siendo ingenuo o si la protección incremental que podría ofrecer un fw vale el esfuerzo de aprender / instalar y la complejidad adicional (paquetes, archivos de configuración, posible soporte, etc.) en los servidores.

Hasta la fecha (toque madera) nunca he tenido ningún problema con la seguridad, pero tampoco soy complaciente.

Aitch
fuente
Debería intentarlo de nuevo en security.stackexchange.com
AviD
66
Dame tu dirección IP y te mostraré por qué necesitas un firewall.
GregD

Respuestas:

87

Noto que has hecho un gran trabajo atando varios demonios diferentes, y por lo que has dicho, creo que es poco probable que te expongas a problemas a través de los servicios que ya has asegurado. Esto todavía te deja en un estado de "todo está permitido excepto el que he prohibido", y no puedes salir de ese estado cazando demonios tras demonios y asegurándolos uno por uno.

Un firewall configurado para NEGAR CUALQUIER CUALQUIER por defecto lo mueve a un modo de operación "todo está prohibido, excepto el que está permitido", y he descubierto durante muchos años que son mejores.

En este momento, dado un usuario legítimo con un shell legítimo en su sistema, podría decidir ejecutar algún demonio local sin privilegios para enviar solicitudes web por Internet, o comenzar a compartir archivos en el puerto 4662, o abrir accidentalmente un oyente usando -g con tunelización de puertos ssh, sin entender lo que hace; o una instalación de sendmail podría dejarlo ejecutando un MUA en el puerto 587 que se configuró incorrectamente a pesar de todo el trabajo que había realizado para asegurar el sendail MTA en el puerto 25; o podrían suceder ciento una cosas que eluden su seguridad cuidadosa y reflexiva simplemente porque no estaban cerca cuando estaba pensando cuidadosamente sobre qué prohibir.

¿Ves mi punto? En este momento, has hecho un gran esfuerzo para asegurar todas las cosas que sabes, y parece que no te morderán. Lo que puede morderte son las cosas que no sabes, o que ni siquiera están allí, en este momento.

Un cortafuegos que por defecto es DENY CUALQUIER CUALQUIER es la forma en que el administrador del sistema dice que si algo nuevo aparece y abre un oyente de red en este servidor, nadie podrá hablar con él hasta que haya otorgado un permiso explícito .

MadHatter
fuente
Esa es una respuesta muy perspicaz, en particular el texto sobre pasar de "todo está permitido ..." a "todo está prohibido ..." Su punto también está bien hecho sobre los demonios locales. Como suele ser el caso - estoy seguro de que estará de acuerdo - el peligro está a menudo en el "interior"
Aitch
12
(Aitch, si puedo presumir un poco, tu perfil sugiere que eres nuevo en el servidor por defecto. La etiqueta local es que cuando estás contento con una respuesta, la aceptas, haciendo clic en el contorno de la marca, si la memoria sirve; eso impulsa el sistema de reputación. Por supuesto, si ya lo sabe, o está esperando ver si aparecen otras respuestas mejores, entonces eso también es muy correcto y correcto, y por favor ignóreme. La comunidad solo pregunta eso una vez está completamente satisfecho con una respuesta a su pregunta, la acepta.)
MadHatter
+1 @MatHatter: buena descripción de cómo los firewalls pueden proporcionar seguridad de forma predeterminada, en lugar de elegir.
Coops
Es un riesgo calculado. Al menos en OpenBSD, habilitar pf agrega 35K líneas de código en el núcleo, que pueden tener errores. Por otro lado, una denegación predeterminada, y un firewall de registro adecuado, es el mejor IDS que el dinero puede comprar. Deje de intentar usar Snort para buscar cosas malas: cada vez que cualquiera de sus máquinas haga algo que no permitió específicamente, debe recibir una notificación.
Alex Holst
14

Principio de menor privilegio. Un firewall te ayuda a llegar allí. Principio de defensa en profundidad. Un firewall también te ayuda a llegar allí. Cualquier configuración bien diseñada se basa explícitamente en estos dos de una forma u otra.

Otra cosa es que sus servidores probablemente serán hardware básico o hardware específico para manejar software de servidor que se ejecuta sobre un SO de servidor estándar (Unix, NT, Linux). Es decir, no tienen hardware especializado para manejar y filtrar el tráfico entrante de manera eficiente. ¿Desea que su servidor maneje todas las posibles multidifusión, paquetes ICMP o escaneo de puertos en su camino?

Lo más probable es que lo que desea es que sus servidores manejen físicamente las solicitudes a solo algunos puertos (80, 443, su puerto SSL, su puerto típico Oracle 1521, su puerto rsync, etc.) Sí, por supuesto, configura firewalls de software en su servidores para escuchar esos puertos solamente. Pero sus NIC seguirán siendo los más afectados por el tráfico no deseado (ya sea maligno o normal en su organización). Si sus NIC se ven afectadas, también lo harán las rutas de red que atraviesan sus servidores (y posiblemente entre sus servidores y clientes internos y conexiones a otros servidores y servicios internos).

No solo sus NIC se ven afectados, su firewall de software también se activará, ya que debe inspeccionar cada paquete o datagrama que reciba.

Los cortafuegos, por otro lado, especialmente aquellos en los bordes de las subredes (o que separan sus subredes del mundo exterior) tienden a ser hardware especializado construido específicamente para manejar ese tipo de volumen.

Puede rodear N cantidad de servidores con M cantidad de firewalls (con N >> M). Y configura el hardware del firewall para que descargue todo lo que no esté dirigido a puertos específicos. Escaneos de puertos, ICMP y otros tipos de basura están fuera. Luego, ajusta el firewall del software en sus servidores de acuerdo con su función específica.

Ahora acaba de reducir (pero no eliminar) la probabilidad de un apagón total, reduciéndolo a una partición de la red o una falla parcial en el peor de los casos. Y, por lo tanto, ha aumentado la capacidad de sus sistemas para sobrevivir a un ataque o una configuración incorrecta.

No tener un cortafuegos porque sus servidores tienen uno es como sentirse seguro al ponerse el cinturón de seguridad mientras conduce a 120 mph bajo cero visibilidad debido a la niebla. No funciona de esa manera.

luis.espinal
fuente
4

Hay muchos ataques a los que podría ser susceptible si no tiene un firewall que realice algún tipo de inspección a nivel de paquete:

Ejemplo es el paquete del árbol de navidad

http://en.wikipedia.org/wiki/Christmas_tree_packet

Los ataques DDOS podrían ejecutarse contra su sistema, un firewall (quizás externo, antes que cualquiera de sus servidores) detendría / ralentizaría / eliminaría el tráfico antes de que paralizara sus servidores.

Sólo porque usted no tiene datos financieros o personales en los servidores no significa que no te 'herido'. Estoy seguro de que paga por el ancho de banda o el uso de la CPU, o tiene una tasa medida. Imagínese en el transcurso de una noche (mientras duerme) alguien corre su medidor (he visto que esto sucede con los proveedores de VOIP Switch, golpeado en la noche por MILLONES DE MINUTOS de tráfico, que tienen que pagar la factura).

Así que sé inteligente, usa la protección si está allí, NO eres PERFECTO, tampoco lo es el software. Solo es seguro hasta que se encuentre el siguiente exploit. ;)

Jakub
fuente
2

Si puede aplicar un principio de privilegio mínimo sin usar un firewall, probablemente no lo necesite. Desde mi punto de vista, construir un sistema seguro sin usar un firewall requiere más esfuerzo, y soy bastante vago. ¿Por qué debería molestarme en restringir las conexiones TCP usando otras herramientas y probablemente muchos archivos de configuración cuando puedo separar privilegios en un nivel de transporte usando una sola configuración?

Alex
fuente
1
Buen punto sobre la configuración única, menos margen de error. ¡Estoy de acuerdo con ser flojo siempre que sea posible! cfengine elimina parte de esta complejidad para mí, mitigando en parte el problema de muchos archivos de configuración ... pero ... es tan bueno como las reglas que están escritas, por supuesto. Por lo tanto, deja la mayoría de los archivos de configuración en "predeterminado" (o casi como) como una barrera secundaria y tiene el firewall como (al menos en un sentido de capa) la principal preocupación.
Aitch
2
Primero voté por PoLP, luego voté por pereza. Los cortafuegos no son herramientas para permitir que sus propietarios sean descuidados. Debería molestarse en ajustar su superficie de ataque porque si el atacante atraviesa el cortafuegos (después de todo, debe tener algo abierto), simplemente puede desactivar iptables. Aplique su holgazanería en el lugar que le corresponde: haga que el sistema esté lo más descuidado posible, para que no tenga que arreglarlo durante mucho tiempo.
Marcin
@ Marcin Quiero decir que si alguien quiere asegurar un sistema sin usar un firewall, primero tendrá que crear un modelo de amenaza integral. Los cortafuegos implican algún tipo de modelo de amenaza bien conocido y bien descrito, por lo que no tengo que construirlo desde cero para cada host. Por supuesto, si hablamos de una seguridad de grado militar, no hay elección, se debe construir un modelo de amenaza formal.
Alex
1

Un cortafuegos también puede impedir que los paquetes no deseados lleguen a sus servidores. En lugar de tratar con ellos a nivel de servidor individual, puede tratarlos en el firewall. Puede mantener toda esta actividad de configuración en el firewall único en lugar de en varios servidores.

Por ejemplo, si un atacante ha obtenido el control de una IP externa y está saturando sus servidores con paquetes no deseados y desea mitigar los efectos que tiene en sus servidores ... puede configurar cada uno de sus servidores afectados para descartar los paquetes maliciosos o simplemente haga el cambio en su firewall y todos sus servidores estarán protegidos. Tener el firewall ha disminuido su tiempo de reacción.

Allen
fuente
Además, hacer esto es configurar un cortafuegos de todos modos, simplemente sucede en cada servidor.
mfinni
1

Usted u otra persona pueden cometer un error en la configuración de su servidor un día, un firewall le da una segunda oportunidad de detener la entrada de alguien. No somos perfectos, cometemos errores y, por lo tanto, un poco de seguro "innecesario" puede valer la pena. .

(Intente no ejecutar su firewall en el mismo sistema operativo que sus servidores, de lo contrario, se trata de un solo error en el sistema operativo ... Considero que todas las versiones de Unix son el mismo sistema operativo, ya que tienen mucho en común)

Ian Ringrose
fuente
Excelente, mezclar plataformas (SO y hardware) es clave.
DutchUncle
1

Los cortafuegos están especializados en la manipulación del tráfico. Lo hacen rápido y tienen recursos. Y no desperdicia recursos del servidor para filtrar el tráfico (disco io / tiempo de proceso / etc.). Debería configurar cierta seguridad en el entorno del servidor, pero todas las inspecciones de tráfico y el análisis de virus, etc., deberían ser servidores especializados.

MealstroM
fuente
-2

Me preocuparía si alguna vez te piratean y no tienes un firewall instalado. Los hackers podrían abrir otros puertos en sus servidores. Además, si se contrata a un consultor para realizar algunas tareas de limpieza y auditoría, lo primero que dirán es: "¡¿QUÉ ?! ¿No tienes un firewall?" Entonces podrías quemarte.

jftuga
fuente
-1 Una respuesta un poco sensacionalista + no es realmente constructivo.
Coops
2
Si el servidor se ve comprometido, ¡un firewall no necesariamente ayudará cuando el bozo que se ha roto simplemente lo deshabilita! * descargo de responsabilidad, la pregunta mencionó el uso de iptables, no un firewall de hardware separado.
Bryan