Iptables comprueba la sintaxis del script

11

¿Hay alguna forma de probar / verificar la sintaxis de un script de reglas de iptables sin modificar la configuración real del firewall (creo que agregar y eliminar cada regla no es la mejor manera ...)?

Conozco la opción -C pero no verifica opciones como cadenas y es un poco complicado con sus códigos de retorno, porque 1 no siempre significa que la sintaxis sea correcta.

¡Gracias!

Dav rax
fuente

Respuestas:

9

Como sugirió diegows, puede usar iptables-restore, sin embargo, puede usarlo con el indicador --test para probar la configuración, en lugar de probarla como parte de una instalación real.

iptables-restore --test [YOUR RULES AS A FILE]
ChrisW
fuente
Esto no parece funcionar siempre bien. Actualmente estoy trabajando en un archivo de iptables que falla cuando realmente lo instalo (iptables-restore <iptables-new) pero con la opción --test, no se generan errores. Lo publicaría pero es largo. m15440 @ NDC01P04CU2PNGA sysconfig # iptables-restore --test <iptables- nuevos m15440 @ NDC01P04CU2PNGA sysconfig # iptables-restore <iptables- nuevos iptables-restore: la línea 217 no m15440 @ # NDC01P04CU2PNGA sysconfig
PatrickTaylor
1

Use iptables-save / iptables-restore. En mi opinión, usar script es una mala idea. Escriba sus primeras reglas desde la línea de comandos, luego guárdelas con "iptables-save> file" y continúe editando ese archivo. "iptables-restore <file" se usa para aplicar las reglas. Ese comando verificará la sintaxis y no aplicará las reglas si hay un error.

Diego Woitasen
fuente
1
Además, cuando juego con iptables en una máquina remota, también configuro un trabajo cron para que se ejecute cada 5 o 10 minutos que restaura iptables a un estado predeterminado de "permitir todo", así que si me bloqueo, volveré a entrar dentro de 5 a 10 minutos. Solo recuerde bloquearlo nuevamente y deshabilitar el trabajo cron;)
jwbensley