ทุกครั้งที่เซิร์ฟเวอร์ของฉันทำการรีบูตดูเหมือนว่าฉันจะต้องรีเซ็ต iptables เป็นค่าเริ่มต้นฉันเคยใช้ firestarter แต่เอาออกไปสักพักแล้ว มีการตั้งค่าใด ๆ ที่ทำให้ iptables เปลี่ยนแปลงเมื่อรีบูทเซิร์ฟเวอร์หรือไม่
ทุกครั้งที่เซิร์ฟเวอร์ของฉันทำการรีบูตดูเหมือนว่าฉันจะต้องรีเซ็ต iptables เป็นค่าเริ่มต้นฉันเคยใช้ firestarter แต่เอาออกไปสักพักแล้ว มีการตั้งค่าใด ๆ ที่ทำให้ iptables เปลี่ยนแปลงเมื่อรีบูทเซิร์ฟเวอร์หรือไม่
คำตอบ:
นี่คือพฤติกรรมเริ่มต้น
คุณอาจต้องการดูแพ็คเกจiptables-persistent
เพื่อตั้งกฎ iptables โดยอัตโนมัติเมื่อเริ่มต้นจากไฟล์กำหนดค่า
บน Ubuntu 16.04:
sudo apt-get install iptables-persistent
หลังจากนั้นให้เรียกใช้คำสั่งถัดไปทุกครั้งที่คุณต้องการบันทึกการเปลี่ยนแปลง iptables อย่างถาวร:
sudo netfilter-persistent save
sudo netfilter-persistent reload
iptables-persistent โดยค่าเริ่มต้นจะไม่บันทึก iptables ของระบบโดยอัตโนมัติเมื่อทำการรีบูต
อย่างไรก็ตามฉันได้แก้ไขซอร์สโค้ดของแพ็คเกจใน Ubuntu 14.04 เพื่อบันทึกกฎการรีบูตปิดเครื่อง (หยุด) หรือ runlevel 1 โดยอัตโนมัติเมื่อระบบบู๊ตเป็น runlevels 2-5 กฎจะถูกกู้คืน ด้วยวิธีนี้การบันทึกและการโหลดกฎจะเกิดขึ้นโดยอัตโนมัติโดยผู้ใช้ไม่ต้องทำอะไรเลย
หากต้องการใช้เวอร์ชันนี้โปรดใช้คำสั่งต่อไปนี้:
sudo apt-get remove iptables-persistent
sudo dpkg -r iptables-persistent
wget http://dinofly.com/files/linux/iptables-persistent_0.5.8_all.deb
sudo dpkg --install iptables-persistent_0.5.8_all.deb
ดูโพสต์บล็อกแบบเต็มของฉันที่นี่:
ใช้ความเสี่ยงของคุณเอง ทั้งหมดที่ได้รับการแก้ไขคือฟังก์ชั่นเริ่มต้นสคริปต์สคริปต์หยุดเรียกฟังก์ชั่นบันทึกกฎเพื่อให้เมื่อระบบถูกปิด, รีบูตหรือในระดับ 1 กฎจะถูกบันทึกโดยอัตโนมัติ
ฉันได้ทดสอบแพ็คเกจ deb ที่อัปเดตแล้วใน Ubuntu 12.04, Ubuntu 14.04 และ Ubuntu 15.04 ควรทำงานกับเดเบียนเวอร์ชันใดก็ได้เช่นกัน
บันทึกกฎในไฟล์
iptables-save > /etc/iptables/rules.v4
จากนั้นเรียกคืนไฟล์โดยทำตามคำสั่งโดยรวมไว้ในไฟล์ rc.local
#vim /etc/rc.local
/sbin/iptables-restore < /etc/iptables.rules
มันใช้งานได้ดีสำหรับฉัน
ไชโย .... !
iptables-persistent
และใช้งานiptables-save
อย่างไร