Iptables memeriksa sintaksis skrip

11

Apakah ada cara untuk menguji / memeriksa sintaksis skrip aturan iptables tanpa memodifikasi konfigurasi firewall yang sebenarnya (saya pikir menambahkan dan menghapus setiap aturan bukanlah cara terbaik ...).

Saya tahu tentang opsi -C tetapi tidak memeriksa opsi seperti rantai dan agak rumit dengan kode pengembaliannya, karena 1 tidak selalu berarti bahwa sintaks sudah benar.

Terima kasih!

Dav rax
sumber

Jawaban:

9

Seperti yang disarankan diegows, Anda dapat menggunakan iptables-restore, namun Anda dapat menggunakannya dengan flag --test untuk hanya menguji konfigurasi, daripada mengujinya sebagai bagian dari instalasi yang sebenarnya.

iptables-restore --test [YOUR RULES AS A FILE]
ChrisW
sumber
Ini sepertinya tidak selalu bekerja dengan baik. Saat ini saya sedang mengerjakan file iptables yang gagal saat menginstalnya (iptables-restore <iptables-new) tetapi dengan opsi --test, tidak ada kesalahan yang terjadi. Saya akan mempostingnya tetapi itu panjang. m15440 @ NDC01P04CU2PNGA sysconfig # iptables-restore --test <iptables-baru m15440 @ NDC01P04CU2PNGA sysconfig # iptables-restore <iptables-restore iptables-baru: baris 217 gagal m15440 @ NDC01P04CU2PNGA sysconfig #
PatrickTaylor
1

Gunakan iptables-save / iptables-restore. Menurut pendapat saya, menggunakan skrip adalah ide yang buruk. Tulis aturan pertama Anda dari baris perintah, lalu simpan dengan "iptables-save> file" dan lanjutkan mengedit file itu. "iptables-restore <file" digunakan untuk menerapkan aturan. Perintah itu akan memeriksa sintaks dan tidak akan menerapkan aturan jika ada kesalahan.

Diego Woitasen
sumber
1
Juga, ketika bermain dengan iptables pada mesin jarak jauh, saya juga mengatur tugas cron untuk menjalankan setiap 5 atau 10 menit yang mengembalikan iptables ke status "izinkan semua" default, jadi jika saya mengunci saya sendiri, saya akan kembali dalam 5 hingga 10 menit. Ingatlah untuk menguncinya lagi dan menonaktifkan pekerjaan cron;)
jwbensley