Iptables verifica a sintaxe do script

11

Existe alguma maneira de testar / verificar a sintaxe de um script de regras do iptables sem modificar a configuração real do firewall (acho que adicionar e excluir cada regra não é a melhor maneira ...).

Eu sei sobre a opção -C, mas ela não verifica opções como cadeias e é um pouco complicado com seus códigos de retorno, porque 1 nem sempre significa que a sintaxe está correta.

Valeu!

Dav rax
fonte

Respostas:

9

Como sugerido por diegows, você pode usar o iptables-restore, no entanto, pode usá-lo com o sinalizador --test para testar apenas a configuração, em vez de testá-la como parte de uma instalação real.

iptables-restore --test [YOUR RULES AS A FILE]
ChrisW
fonte
Parece que isso nem sempre funciona bem. Atualmente, estou trabalhando em um arquivo iptables que falha ao instalá-lo (iptables-restore <iptables-new), mas com a opção --test, nenhum erro é gerado. Eu publicaria, mas é longo. m15440 @ NDC01P04CU2PNGA sysconfig # iptables-restore --test <iptables-novos m15440 @ NDC01P04CU2PNGA sysconfig # iptables-restore <iptables-novos iptables-restore: linha 217 não m15440 @ NDC01P04CU2PNGA sysconfig #
PatrickTaylor
1

Use iptables-save / iptables-restore. Na minha opinião, usar script é uma má ideia. Escreva suas primeiras regras na linha de comando e salve-as com "iptables-save> file" e continue editando esse arquivo. "iptables-restore <file" é usado para aplicar as regras. Esse comando verificará a sintaxe e não aplicará as regras se houver um erro.

Diego Woitasen
fonte
1
Além disso, ao jogar com o iptables em uma máquina remota, também configurei um trabalho cron para executar a cada 5 ou 10 minutos que restaura o iptables para o estado padrão "permitir tudo"; portanto, se eu me bloquear, voltarei dentro de 5 a 10 minutos. Basta lembrar de bloqueá-lo para baixo novamente e desabilitar o trabalho cron;)
jwbensley