ฉันจำเป็นต้องกู้คืนกฎ iptable ทุกครั้งที่บูตหรือไม่


18

ทุกครั้งที่ฉันรีบูตฉันปล่อยกฎ iptables ที่พาฉันไปหา ฉันรู้ว่าฉันสามารถบันทึกพวกเขาและกู้คืนพวกเขาในการบูตแต่จะมีการบันทึกพวกเขาตลอดไป? ฉันจำเป็นต้องกู้คืนมันในการบู๊ตทุกครั้งหรือไม่? อย่างจริงจัง?

ปัญหาคือฉันมีรายการ IP จำนวนมากที่ฉันใช้การวนรอบสักครู่เพื่อโหลดเข้าซึ่งอาจใช้เวลามากกว่า 10 นาที

นี่คือเซิร์ฟเวอร์ FTP ที่บ้านของฉัน มันเป็น vm ขนาดเล็กที่มี ram 1gb และพลังการประมวลผลที่น้อยมาก มี IP จำนวนมากเพราะฉันยอมแพ้ในทวีปเอเชีย ฉันไม่ต้องการให้พวกเขาโจมตีเซิร์ฟเวอร์ FTP ทุกวันด้วยกำลังดุร้าย ฉันยังปิดกั้นรัฐบาล จอภาพเครื่องมือติดตามและผู้ส่งอีเมลขยะ

นี่คือลูปขณะที่ฉันใช้โหลดในรายการ

grep INPUT block.list | while read LISTA; do sudo iptables -A $LISTA; done

คำถามของคุณค่อนข้างคลุมเครือเมื่อคุณพูดว่า 'บันทึกไว้ตลอดไป' ฉันคิดว่าคุณหมายถึงในไฟล์ แต่หลังจากอ่านส่วนที่เหลือมันฟังดูเหมือนความจริงที่คุณหมายถึงคือคุณไม่ต้องการโหลดซ้ำด้วยตนเอง ที่บูตทุกครั้ง นอกจากนี้ฉันคิดว่าจำนวนกฎที่ต้องโหลดใหม่จะเหมือนกันดังนั้นจึงยังคงใช้เวลาสักครู่ แต่คุณไม่ต้องทำด้วยตนเองตามคำตอบของ pankaj
Jeff Welling

คำตอบ:


21

ก่อนอื่นให้สร้างไฟล์ที่มีเนื้อหาของiptables-save:

sudo iptables-save > /etc/iptables_rules

ไม่สำคัญว่าคุณจะวางไฟล์ไว้ที่ใดสิ่งที่คุณต้องทำก็คือตรวจสอบให้แน่ใจว่าบรรทัดถัดไปอ้างถึงไฟล์เดียวกัน ถัดไปเปิด/etc/rc.localและเพิ่มบรรทัดนี้:

/sbin/iptables-restore < /etc/iptables_rules

นับจากนี้เป็นต้นไปทุกครั้งที่คอมพิวเตอร์ของคุณเปิดใช้งานหรือรีสตาร์ท iptables จะโหลดกฎจากไฟล์ที่คุณระบุ


1
ฉันได้-bash: /etc/iptables_rules: Permission deniedรับคำสั่งแรก ซึ่งเป็นเรื่องแปลกโดยใช้ sudo และทั้งหมด
capdragon

5
ฉันต้องใช้sudo sh -c '/sbin/iptables-save > /etc/iptables.save'เพื่อแก้ไขPermission deniedข้อผิดพลาด การอ้างอิง
capdragon

คุณสามารถสร้างไฟล์ในไดเรกทอรีใด ๆ ไม่จำเป็นต้องสร้างไฟล์ใน / etc /
pankaj sharma

8
ฉันจะไม่แนะนำให้ใช้/etc/rc.localสำหรับสิ่งนี้ มันจะถูกดำเนินการช้ากว่าส่วนที่เหลือของการเริ่มต้นระบบของคุณและอาจทำให้ระบบของคุณอยู่ในสถานะที่ไม่ใช่ไฟร์วอลล์ ฉันขอแนะนำให้วางสคริปต์บรรทัดเดียวนี้ใน/etc/network/if-up.d/firewall(ไฟล์ใหม่) สิ่งนี้ทำให้แน่ใจว่ามันจะถูกดำเนินการทุกครั้งที่คุณเปิดใช้งานอินเทอร์เฟซเครือข่ายของคุณ
gertvdijk

2
ข้อผิดพลาดการอนุญาตเป็นปกติ / ที่คาดไว้ sudo ใช้เฉพาะกับคำสั่งก่อน ">" การเปลี่ยนเส้นทางไฟล์จะทำแยกต่างหากโดยเชลล์ของคุณ
ImaginaryRobots

16
apt-get install iptables-persistent

ในการติดตั้งควรบันทึก iptables ปัจจุบันของคุณ มิฉะนั้นคุณสามารถบันทึกลงในไฟล์เหล่านี้ (ขึ้นอยู่กับ v4 หรือ v6) และ iptables-persistent จะโหลดลงในการบูต :)

iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6

1

หากคุณมีกฎจำนวนมากคุณควรพิจารณาใช้ ipset ร่วมกับ iptables Ipset ใช้ตารางฐานข้อมูลที่จัดทำดัชนีและเร็วกว่า iptables มากเมื่อค้นหาที่อยู่เพื่อตัดสินใจว่าจะยอมรับหรือปฏิเสธ

http://ipset.netfilter.org/index.html

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.