herramientas de gestión de iptables para entornos a gran escala

15

El entorno en el que estoy operando es una operación de alojamiento web a gran escala (varios cientos de servidores bajo administración, direccionamiento casi público, etc., por lo que cualquier cosa que hable sobre la administración de enlaces ADSL es poco probable que funcione bien), y nosotros ' estamos buscando algo que sea cómodo para administrar tanto el conjunto de reglas central (alrededor de 12,000 entradas en iptables en el recuento actual) más los conjuntos de reglas basados ​​en host que administramos para los clientes. Nuestro conjunto de reglas de enrutador central cambia algunas veces al día, y los conjuntos de reglas basados ​​en host cambiarían tal vez 50 veces al mes (en todos los servidores, por lo que tal vez un cambio por cada cinco servidores por mes).

Actualmente estamos usando filtergen (que es bolas en general, y súper bolas en nuestra escala de operación), y he usado shorewall en el pasado en otros trabajos (lo que sería preferible a filtergen, pero creo que hay que ser algo por ahí que sea mejor que eso).

Los "requisitos" que hemos creado para cualquier sistema de reemplazo son:

  • Debe generar un conjunto de reglas con bastante rapidez (una ejecución de filtro en nuestro conjunto de reglas demora entre 15 y 20 minutos; esto es una locura). Esto está relacionado con el siguiente punto:
  • Debe generar un archivo de estilo de restauración de iptables y cargarlo de una vez, no llamar a iptables para cada inserción de regla
  • No debe desactivar el firewall durante un período prolongado mientras se recarga el conjunto de reglas (nuevamente, esto es una consecuencia del punto anterior)
  • Debe admitir IPv6 (no estamos implementando nada nuevo que no sea compatible con IPv6)
  • Debe estar libre de DFSG
  • Debe usar archivos de configuración de texto sin formato (ya que ejecutamos todo a través del control de revisión, y el uso de herramientas estándar de manipulación de texto de Unix es nuestro SOP)
  • Debe ser compatible con RedHat y Debian (paquete preferido, pero al menos no debe ser abiertamente hostil a los estándares de cualquiera de las distribuciones)
  • Debe admitir la capacidad de ejecutar comandos arbitrarios de iptables para admitir funciones que no forman parte del "idioma nativo" del sistema

Cualquier cosa que no cumpla con todos estos criterios no será considerada. Los siguientes son nuestros "agradables":

  • Debería admitir "fragmentos" de archivos de configuración (es decir, puede colocar una pila de archivos en un directorio y decirle al firewall "incluir todo en este directorio en el conjunto de reglas"; utilizamos la administración de la configuración ampliamente y nos gustaría usar esta función para proporcionar reglas específicas del servicio automáticamente)
  • Debería admitir tablas sin formato
  • Debería permitirle especificar ICMP particular en los paquetes entrantes y las reglas de RECHAZO
  • Debería admitir con gracia nombres de host que se resuelvan en más de una dirección IP (esta nos ha sorprendido varias veces con filtergen; es un dolor bastante real en el trasero)
  • Cuantas más características opcionales / extrañas de iptables admita la herramienta (ya sea de forma nativa o mediante complementos existentes o fácilmente editables), mejor. Usamos características extrañas de iptables de vez en cuando, y cuantos más "simplemente funcionan", mejor para todos.
womble
fuente
Voy a morder-- ¿Qué significan los términos "bolas" y "súper bolas" en tu publicación? Supongo que no estás hablando de esferas de goma hinchables, pero no puedo inferir si el contexto significa "bueno" o "malo".
Evan Anderson, el
bolas == mal. Super bolas == extra malo.
womble
Con tantas reglas, asegúrese de tener una regla ACEPTAR en la parte superior que acepte conexiones establecidas y relacionadas. Las PC no tienen una TCAM y muchas reglas sí afectan el rendimiento. Mucho.
Thomas
@thomas: Sí, hay una cierta cantidad de optimización que entra en el conjunto de reglas. Tener ese "conocimiento" sobre la optimización en cualquier herramienta de firewall elegida sería una ventaja, por supuesto.
womble

Respuestas:

4

Si quizás desea pasar de un enfoque basado en reglas a una forma de "describir el estado final requerido", eche un vistazo a fwbuilder.

Pros:

  • múltiples firewalls compatibles - sus reglas basadas en el núcleo + host - de 1 conjunto de objetos
  • Esquema SQL "dime qué quieres" en lugar de "dime cómo hacerlo" (¡NB no estoy diciendo que haya ningún SQL allí! Solo que es descriptivo Vs procesal :-)
  • Es una interfaz gráfica de usuario, algo así como las interfaces de los proveedores de hardware comercial f / w, por lo que es posible empujar algunas tareas a la pila de empleados / habilidades
  • admite la mayoría del uso "extraño" que he probado
  • puede generar reglas para una variedad de implementaciones de f / w - BSD / cicso / iptables / etc.
  • separa el front-end del compilador de reglas, lo que me hace esperar que la velocidad sea una preocupación para los autores. Nota: no tengo nada cerca de la escala a la que estás aludiendo
  • El formato del archivo no es binario
  • hace IPv6
  • Crea una configuración de estilo de iptables-save para una carga atómica y rápida

Contras:

  • Es una GUI
  • Mover su conjunto de reglas existente es poco probable que sea indoloro
  • Mientras que GPL y en Debian, los clientes Windows + OSX son evaluables durante 30 días, ya que nadie compiló una versión gratuita aún para ese sistema operativo; por lo tanto, el brazo comercial de los desarrolladores tiene el monopolio de esos binarios
  • El formato de archivo es técnicamente XML; Nota: no deje que esto lo desanime: eche un vistazo a las herramientas que proporcionan (puede usar el gui binario para manipularlo a través de la CLI, por ejemplo), las herramientas XML de CLI que ya existen y recuerde que, en su escala - alguna apariencia de metadatos + estructura ¡no es una / mala / cosa! Difiere bastante bien en las ediciones, IIRC.

Enlace: http://www.fwbuilder.org

Jonathan Matthews
fuente
Hrm ... echaré un vistazo. La existencia de una GUI (sin mencionar el XML) me hace temblar violentamente, pero plantea algunas ideas interesantes (conjunto único de reglas para toda la infraestructura). Lo de OS X no va a ser un problema.
womble
Estoy de acuerdo, una GUI me hizo WTF originalmente, pero también me complació lo que vi desde el lado de la CLI. ¿Qué tan dinámica es su configuración, de todos modos? ¿Serían 10 cambios al día o 10 cambios al año? Eso podría ser un factor útil para detallar aquí. Además, una buena función del formato de archivo XML podría ser que, utilizando herramientas compatibles con XML, podría tener toda la configuración en un archivo, utilizando objetos de definición única, pero producir un registro de cambios específico de nodo para documentar las configuraciones y conjuntos de cambios de cada servidor . Solo un pensamiento ...
Jonathan Matthews
@ Jonathan: Tienes razón, es importante saber el dinamismo del conjunto de reglas. He editado la pregunta; Es un par de veces al día la mayoría de los días hábiles para el conjunto de reglas principales.
womble
3

escribe lo tuyo. en serio, a esta escala es razonable.

use ipset y / o muchas tablas / subtablas iptable. siempre que sea posible, vuelva a cargar solo algunas subtablas / algunos conjuntos de ipset; esto acelerará la reconfiguración.

probablemente ya lo haya hecho, pero vale la pena mencionarlo: use tablas anidadas para disminuir la carga en el enrutador y el número promedio de búsquedas necesarias para los paquetes que configuran nuevas conexiones. obviamente -A ADELANTE -m estado --estado ESTABLECIDO, RELACIONADO es su regla más importante.

pQd
fuente
"Escribir el nuestro" no está fuera de la mesa, pero es lo que nos consiguió filtergen en primer lugar: fue escrito por un ahora ex empleado. Preferiríamos no producir otra herramienta de administración de firewall si es posible.
womble
IPSET es increíblemente rápido para grandes conjuntos de reglas. "almacenar múltiples direcciones IP o números de puerto y compararlos con la colección de iptables de una sola vez; actualizar dinámicamente las reglas de iptables con direcciones IP o puertos sin penalización de rendimiento; expresar direcciones de IP complejas y conjuntos de reglas basados ​​en puertos con una sola regla de iptables y beneficiarse de la velocidad de conjuntos de IP "I Use it with shorewall. Sin embargo, no tengo idea de cómo funcionaría el muro de contención a su escala.
artifex
2

bolas sagradas (¡manteniendo vivo el tema!) hombre ... ¿12,000 reglas básicas?

¿Asumo que ha considerado todas las opciones fáciles como simplemente colocar los conjuntos en CVS? ¿Títere o CFengine?

Honestamente, a partir de la amplia descripción que ha brindado, le sugiero que reevalúe el diseño de su red. Probablemente soy un poco demasiado simplista, pero simplemente no puedo entender un diseño que requiera reglas iptables de 12k. Esto realmente suena como algo que se beneficiaría más de una solución de tipo SLB que una mejor manera de administrar las reglas del firewall.

En una nota al margen, ¿cómo se agrega un comentario en lugar de agregar una "respuesta"?

Greeblesnort
fuente
Necesita una cantidad mínima de reputación para comentar. Cuando lo hagas, aparecerá un enlace.
jay_dubya
Probablemente haya una cierta cantidad de redundancia en nuestras reglas de iptables, pero eso es en gran medida una función de filtergen que quizás no sea tan eficiente como podría. Sin embargo, tenemos un / 19 de espacio IP y VLAN por cliente, y una "política predeterminada" bastante restrictiva (que requiere excepciones por IP para abrir puertos según lo requieran los clientes). Ciertamente no podremos deshacernos de más de unas pocas de esas reglas. Ah, y sí, ya usamos Puppet, y no estamos dispuestos a comenzar a escribir conjuntos de reglas a mano en nuestra escala de operaciones.
womble
bueno, ciertamente mantienes un espacio de IP más grande que yo, pero todavía me resulta difícil justificar de alguna manera tantas reglas. ¿Has pensado en dividirlos en una estructura de árbol donde podrías utilizar configuraciones de reglas de caída en los puntos de estrangulamiento? es decir, todos los servidores web solamente en la subred X, todos los servidores web + smtp en la subred Y? En realidad, no tendría que dividirlas en subredes, simplemente agruparlas lógicamente detrás de un firewall escalonado ... lo siento si solo estoy agregando ruido en este punto ... Es posible que simplemente no sea lo suficientemente sofisticado para este. Yo como mis conjuntos de reglas de firewall cortos y brutales =)
Greeblesnort
Realmente no estamos en condiciones de "nivelar" cosas así; somos en gran medida un proveedor de alojamiento de servidores dedicado, por lo que lo que nuestros clientes deciden hacer con sus máquinas día a día puede cambiar, lo que requiere mucho más baile que si solo estuviéramos haciendo una infraestructura dedicada para un servicio interno.
womble
0

12000 reglas? ¿estas loco? ¿No sufres problemas de rendimiento con esta cantidad de filtrado? No puedo ver por qué necesitarías 12,000 reglas. ¿Cómo verifica que el conjunto de reglas realmente está aplicando la política?

¿Cual es la política?

¿Cómo prueba su política?

12,000 reglas posiblemente rompen todas las reglas de seguridad en el libro.

El conserje de Unix
fuente
-2

También puede probar una solución SAAS para administrar iptables -> https://www.efw.io/Forum, también puede hacer la integración en la nube de AWS.

Paul Ma
fuente
Dudo que una oferta de SaaS esté libre de DFSG.
womble