Iptables ตรวจสอบไวยากรณ์ของสคริปต์


11

มีวิธีใดที่จะทดสอบ / ตรวจสอบไวยากรณ์ของสคริปต์กฎ iptables โดยไม่ต้องแก้ไขการกำหนดค่าไฟร์วอลล์ที่แท้จริง (ฉันคิดว่าการเพิ่มและการลบแต่ละกฎไม่ใช่วิธีที่ดีที่สุด ... )

ฉันรู้เกี่ยวกับตัวเลือก -C แต่มันไม่ได้ตรวจสอบตัวเลือกเช่น chains และมันค่อนข้างยุ่งยากกับรหัสส่งคืนเนื่องจาก 1 ไม่ได้หมายความว่าไวยากรณ์ถูกต้องเสมอไป

ขอบคุณ!

คำตอบ:


9

ตามคำแนะนำของ diegows คุณสามารถใช้ iptables-restore ได้อย่างไรก็ตามคุณสามารถใช้กับ --test flag เพื่อทดสอบการกำหนดค่าแทนที่จะทดสอบเป็นส่วนหนึ่งของการติดตั้งจริง

iptables-restore --test [YOUR RULES AS A FILE]

ดูเหมือนว่าจะไม่ได้ผลเสมอไป ฉันกำลังทำงานกับไฟล์ iptables ที่ล้มเหลวเมื่อทำการติดตั้ง (iptables-restore <iptables-new) แต่ด้วยตัวเลือก --test จะไม่มีการสร้างข้อผิดพลาด ฉันจะโพสต์มัน แต่มันก็นาน m15440 @ NDC01P04CU2PNGA sysconfig # iptables เรียกคืน --test <iptables ใหม่ m15440 @ NDC01P04CU2PNGA sysconfig # iptables เรียกคืน <iptables เรียกคืน iptables ใหม่: สาย 217 ล้มเหลว m15440 sysconfig # @ NDC01P04CU2PNGA
PatrickTaylor

1

ใช้ iptables-save / iptables-restore ในความคิดของฉันการใช้สคริปต์เป็นความคิดที่ไม่ดี เขียนกฎแรกของคุณจากบรรทัดคำสั่งจากนั้นบันทึกด้วย "iptables-save> file" และทำการแก้ไขไฟล์นั้นต่อ "iptables-restore <file" ถูกใช้เพื่อใช้กฎ คำสั่งนั้นจะตรวจสอบไวยากรณ์และจะไม่ใช้กฎหากมีข้อผิดพลาด


1
นอกจากนี้เมื่อเล่นกับ iptables บนเครื่องระยะไกลฉันยังตั้งค่างาน cron ให้ทำงานทุก ๆ 5 หรือ 10 นาทีที่คืนค่า iptables ให้เป็นค่าเริ่มต้น "อนุญาตทั้งหมด" ดังนั้นถ้าฉันล็อคตัวเองออกฉันจะกลับมา ภายใน 5 ถึง 10 นาที เพียงจำไว้เพื่อล็อคลงอีกครั้งและปิดการใช้งาน cron นั้น)
jwbensley
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.