Ubuntu 12.04 LTS - iptables v1.4.12
TLDR:
ชุดกฎของ iptables ถูกบันทึกไว้เมื่อiptables-save <ruleset-name>
ใด
คำอธิบาย :
ตามคำตอบนี้วิธีการพื้นฐานในการบันทึกกฎของ iptables คือการเรียกใช้
iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6
และหลังจากนั้นโหลด / กู้คืนกฎเหล่านี้ใน/etc/network/interfaces
ลักษณะ:
iface eth0 inet static
....
pre-up iptables-restore < /etc/iptables/rules.v4
pre-up ip6tables-restore < /etc/iptables/rules.v6
... /etc/network/if-pre-up.d
หรือวางเหล่านี้เป็นเชลล์สคริปต์ใน
สิ่งนี้สามารถทำให้ง่ายขึ้นโดยการติดตั้งiptables-persistent
แพคเกจ
sudo apt-get install iptables-persistent
inovoke-rc.d iptables-persistent save
update-rc.d iptables-persistent defaults
ต่อไปนี้บทเรียนบางอย่างฉันพยายามที่จะเรียกใช้service iptables status
(คำสั่งที่ไม่มีอยู่ / ไม่รู้จักสำหรับiptables
รุ่น / แพ็คเกจที่มาพร้อมกับ 12.04) และพบผลลัพธ์ที่น่าสนใจนี้:
Aborting iptables initd: unknown command(s): "status".
...
save <ruleset>
save the current ruleset
load <ruleset>
load a ruleset
...
Saved rulesets:
active, inactive
...
ดูเหมือนจะมีกฎสองชุดที่ฉันสามารถโหลด ( active
และinactive
) ...
.. แต่เก็บไว้ที่ไหน
ฉันหาตำแหน่งของพวกเขาไม่ได้เนื่องจากใช้งาน / ไม่ได้ใช้งานเป็นคำค้นหาที่ค่อนข้างแย่และdpkg-query -L iptables
ไม่ได้ช่วยอะไรเช่นกัน
ในขณะที่ฉันกำลังเตรียมเซิร์ฟเวอร์ของฉันด้วยpuppet
/ chef
จะเป็นการดีหากได้ทราบว่ามีบางที่ที่ฉันสามารถวาง rulesets ของฉันและเพิ่ม shell shell ธรรมดา/etc/networking/if-pre-up
เพื่อโหลดเหล่านี้
จากนั้นฉันสามารถจัดการiptables-persistent
แพ็คเกจที่ไม่ยืดหยุ่นเนื่องจากไม่อนุญาตให้โหลดชุดกฎที่แตกต่างกัน
ขอบคุณสำหรับความช่วยเหลือของคุณ.