¿Cuáles son las ventajas y desventajas de editar el archivo de configuración de iptables versus agregar reglas mediante el comando iptables?

¿Cuáles son las ventajas y desventajas de editar el archivo de configuración de iptables versus agregar reglas mediante el comando iptables?

Estoy trabajando con un producto en CentOS que ocasionalmente necesita agregar y eliminar reglas automáticamente de la configuración de iptables. Por ejemplo, durante una actualización, queremos rechazar explícitamente el tráfico de servicio entrante hasta que se complete la actualización. Actualmente, el enfoque que se utiliza en el código de actualización es utilizar sedotras utilidades de manejo de texto para comentar las líneas relevantes en el archivo de configuración, reiniciar el iptablesservicio con el nuevo archivo de configuración y luego revertir el proceso al final de la actualización. y reinicie el servicio una vez más.

Me parece que un mejor enfoque sería utilizar el iptables -D table rule-specificationcomando al inicio del proceso y luego iptables -A table rule-specificational final de la actualización.

El mayor problema que veo con la manipulación automática del archivo de configuración es la fragilidad: existen herramientas del sistema que reescriben el archivo de configuración y pueden reordenar los parámetros, etc., posiblemente rompiendo el análisis del texto ( service iptables savees un ejemplo).

¿Cuál es el enfoque recomendado para realizar cambios de configuración del sistema como este desde el código y por qué?

Respuesta1

La mayoría de las personas que se encuentran en esta situación la manejan con cierta abstracción.

Por ejemplo. En lugar de tener un único archivo con su conjunto de reglas, ¿por qué no crear un conjunto de archivos con sus reglas y concatenarlos?

Por ejemplo, puede agregar reglas individuales en archivos con nombres como este.

/etc/iptables-rules/00_flush_drop
/etc/iptables-rules/20_permitotherstuff
/etc/iptables-rules/10_permitssh
/etc/iptables-rules/99_drop

Luego simplemente ejecute el conjunto de reglas con run-parts /etc/iptables-rules. Si necesita agregar otro conjunto de reglas, simplemente inserte y agregue temporalmente un archivo. y luego retírelo según sea necesario.

También debería considerar seriamente la posibilidad de configurar y utilizar CHAINS en su configuración. Las cadenas son algo así como subrutinas. Por ejemplo, podrías agregar una regla en la parte superior de tu firewall para saltar a una cadena. Las cadenas tienen una política predeterminada de DEVOLUCIÓN. Entonces, cuando necesites agregar una regla temporal, simplemente insértala en esa CADENA. Cuando ya no lo necesites, simplemente descarga esa cadena en particular.

información relacionada