Iptables sprawdza składnię skryptu

11

Czy jest jakiś sposób przetestowania / sprawdzenia składni skryptu reguł iptables bez modyfikowania faktycznej konfiguracji zapory ogniowej (myślę, że dodanie i usunięcie każdej reguły nie jest najlepszym sposobem ...).

Wiem o opcji -C, ale nie sprawdza ona opcji takich jak łańcuchy i jest nieco trudna z kodami powrotu, ponieważ 1 nie zawsze oznacza, że ​​składnia jest poprawna.

Dzięki!

Dav rax
źródło

Odpowiedzi:

9

Jak sugeruje diegows, możesz użyć iptables-restore, jednak możesz go użyć z flagą --test, aby tylko przetestować konfigurację, zamiast testować ją jako część rzeczywistej instalacji.

iptables-restore --test [YOUR RULES AS A FILE]
ChrisW
źródło
To nie zawsze działa dobrze. Aktualnie pracuję nad plikiem iptables, który nie powiódł się podczas jego instalacji (iptables-restore <iptables-new), ale z opcją --test nie są generowane żadne błędy. Chciałbym to opublikować, ale jest długi. m15440 @ NDC01P04CU2PNGA sysconfig # iptables-restore --test <iptables-nowe m15440 @ NDC01P04CU2PNGA sysconfig # iptables-restore <iptables-nowe iptables-restore: linia 217 nie udało m15440 @ NDC01P04CU2PNGA sysconfig #
PatrickTaylor
1

Użyj iptables-save / iptables-restore. Moim zdaniem używanie skryptu to zły pomysł. Napisz swoje pierwsze reguły z wiersza poleceń, a następnie zapisz je za pomocą „iptables-save> plik” i kontynuuj edycję tego pliku. „iptables-restore <plik” służy do zastosowania reguł. To polecenie sprawdzi składnię i nie zastosuje reguł, jeśli wystąpi błąd.

Diego Woitasen
źródło
1
Ponadto, grając z iptables na zdalnym komputerze, skonfigurowałem również zadanie cron, aby uruchamiało się co 5 lub 10 minut, co przywraca iptables do domyślnego stanu „zezwalaj na wszystko”, więc jeśli zablokuję się, powrócę w ciągu 5 do 10 minut. Pamiętaj tylko, aby ponownie go zablokować i wyłączyć zadanie crona;)
jwbensley,