แทนที่จะป้อนกฏในแบบแมนนวลคุณสามารถใช้iptables
เพื่อเพิ่มกฏเข้ากับเชนที่เหมาะสมจากนั้นบันทึกกฏเหล่านั้น การดำเนินการนี้จะช่วยให้คุณสามารถแก้ไขข้อบกพร่องของกฎการถ่ายทอดสดยืนยันว่าถูกต้องแทนที่จะต้องเพิ่มกฎเหล่านั้นลงในไฟล์อย่างที่คุณทำ
ในการเปิดพอร์ต 80 ฉันทำสิ่งนี้:
$ sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo /etc/init.d/iptables save
คำสั่งสุดท้ายจะบันทึกกฎที่เพิ่มเข้ามา นี่คือกฎที่ฉันจะใช้เพื่อเปิดพอร์ตสำหรับปริมาณการใช้งานเว็บ
ทำไมกฎของคุณทำให้เกิดปัญหา
หากคุณสังเกตเห็นกฎที่คุณพยายามจะใช้:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
มีสายโซ่ที่เรียกว่า "RH-Firewall-1-INPUT" หากคุณไม่มีเชนนี้หรือลิงค์จากINPUT
เชนไปยังเชนนี้กฎนี้จะไม่สามารถเข้าถึงได้ กฎนี้อาจเป็นดังนี้:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
หรือINPUT
เชนของคุณควรลิงค์ไปยังเชนนี้RH-Firewall-1-INPUT
ด้วยกฎเช่นนี้:
$ sudo iptables --list
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0
....
บันทึก:คุณสามารถดูโซ่ที่คุณมีด้วยคำสั่งนี้:
$ sudo iptables -L| grep Chain
Chain INPUT (policy ACCEPT)
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
...
นอกจากนี้รัฐอาจต้องแก้ไขเพื่อให้การเชื่อมต่อที่มีอยู่ได้รับอนุญาตเช่นกัน
-A INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT
นอกจากนี้เมื่อคุณใช้สวิทช์ที่คุณกำลังผนวกกฎกับห่วงโซ่-A
INPUT
หากมีกฎอื่น ๆ ก่อนที่จะมีการบล็อกและ / หรือรบกวนการเข้าถึงของกฎนี้มันจะไม่ถูกดำเนินการ ดังนั้นคุณอาจต้องการย้ายไปด้านบนด้วยการแทรกแทนการผนวกเช่นนี้
-I INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT
การใช้ GUI
ไฟร์วอลล์อาจเป็นสัตว์ที่มีความซับซ้อน ดังนั้นคุณอาจต้องการลองใช้ TUI แทน (TUI เป็น GUI สำหรับเทอร์มินัล)
$ sudo system-config-firewall-tui
จากนั้นคุณสามารถผ่านหน้าจอต่างๆเพื่อตั้งiptables
กฎ
อ้างอิง