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.