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.
Respuestas:
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:
Contras:
Enlace: http://www.fwbuilder.org
fuente
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.
fuente
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"?
fuente
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.
fuente
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.
fuente