ต้องการกฎ iptables เพื่อยอมรับทราฟฟิกที่เข้ามาทั้งหมด


34

สำหรับสภาพแวดล้อมการทดสอบของฉันฉันต้องการยอมรับทราฟฟิกที่เข้ามาทุกคนได้โปรดเพิ่มกฎ iptable ให้ฉันได้ไหม

iptablesปัจจุบันของฉัน-L -nเอาต์พุตดูเหมือนนี้

Chain INPUT (นโยบายยอมรับ) กำหนดเป้าหมายให้เลือกแหล่ง
ปลายทางปลายทางยอมรับทั้งหมด - 0.0.0.0/0 0.0.0.0/0
สถานะที่เกี่ยวข้องจัดตั้งขึ้นยอมรับ ICMP - 0.0.0.0/0
0.0.0.0/0 ยอมรับทั้งหมด - 0.0.0.0 / 0 0.0.0.0/0 ยอมรับ tcp - 0.0.0.0/0 0.0.0.0/0 รัฐใหม่ tcp dpt: 22 ปฏิเสธทั้งหมด - 0.0.0.0/0 0.0.0.0/0
ปฏิเสธด้วยการยอมรับicmp โฮสต์ห้าม tcp - 0.0.0.0/0
0.0.0.0/0 tcp dpt: 8443 ยอมรับ tcp - 0.0.0.0/0 0.0.0.0/0 tcp dpt: 8080 ยอมรับ tcp - 0.0.0.0/0 0.0.0.0/0 tcp dpt: 9443 ยอมรับ tcp - 0.0.0.0/0 0.0.0.0/0 tcp dpt: 2124

ห่วงโซ่ไปข้างหน้า (นโยบายยอมรับ) เป้าหมาย prot opt
ปลายทางปลายทางปฏิเสธทั้งหมด - 0.0.0.0/0 0.0.0.0/0
ปฏิเสธด้วยicmp โฮสต์ห้าม

Chain OUTPUT (policy ACCEPT) target prot opt ​​opt
ปลายทางต้นทาง

ขอบคุณ

คำตอบ:


53

เรียกใช้ต่อไปนี้ มันจะแทรกกฎที่ด้านบนของ iptables ของคุณและจะอนุญาตการรับส่งข้อมูลทั้งหมดเว้นแต่จะจัดการโดยกฎอื่นในภายหลัง

iptables -I INPUT -j ACCEPT

คุณยังสามารถล้างการตั้งค่า iptables ทั้งหมดของคุณด้วยสิ่งต่อไปนี้:

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

หากคุณล้างข้อมูลคุณอาจต้องการเรียกใช้บางสิ่งเช่น:

iptables -A INPUT -i lo -j ACCEPT -m comment --comment "Allow all loopback traffic"
iptables -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT -m comment --comment "Drop all traffic to 127 that doesn't use lo"
iptables -A OUTPUT -j ACCEPT -m comment --comment "Accept all outgoing"
iptables -A INPUT -j ACCEPT -m comment --comment "Accept all incoming"
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -m comment --comment "Allow all incoming on established connections"
iptables -A INPUT -j REJECT -m comment --comment "Reject all incoming"
iptables -A FORWARD -j REJECT -m comment --comment "Reject all forwarded"

หากคุณต้องการความปลอดภัยกับทราฟฟิกของคุณอย่าใช้กฎการรับเข้าทั้งหมดหรือลบออกด้วย "iptables -D INPUT -j ACCEPT -m ความคิดเห็น - คอมเม้นท์" ยอมรับการรับเข้าทั้งหมด "และเพิ่ม กฎเฉพาะเช่น:

iptables -I INPUT -p tcp --dport 80 -j ACCEPT -m comment --comment "Allow HTTP"
iptables -I INPUT -p tcp --dport 443 -j ACCEPT -m comment --comment "Allow HTTPS"
iptables -I INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT -m comment --comment "Allow SSH"
iptables -I INPUT -p tcp --dport 8071:8079 -j ACCEPT -m comment --comment "Allow torrents"

หมายเหตุ: พวกเขาจะต้องอยู่เหนือกฎการปฏิเสธ 2 ที่ด้านล่างดังนั้นใช้ฉันเพื่อใส่พวกเขาที่ด้านบน หรือถ้าคุณชอบฉันให้ใช้ "iptables -nL - line-numbers" เพื่อรับหมายเลขบรรทัดจากนั้นใช้ "iptables -I INPUT ... " เพื่อแทรกกฎที่หมายเลขบรรทัดที่ระบุ

สุดท้ายให้บันทึกงานของคุณด้วย:

iptables-save > /etc/network/iptables.rules #Or wherever your iptables.rules file is

1
ในที่สุดคำตอบนี้ก็จบความเจ็บปวดของฉัน คำตอบนี้ตอบคำถาม "ฉันจะทำให้ # @ $ #% iptables ทำสิ่งที่ฉันต้องการได้อย่างไรและสิ่งที่ฉันต้องการให้ทำเท่านั้น" การปรับปรุงที่ฉันอยากจะแนะนำคือการเพิ่มตัวอย่างของการส่งต่อพอร์ต (เช่นจาก 80 ถึง 8080 และ 443 ถึง 8443) ฉันคิดว่า 99% ของคำถามเกี่ยวกับ iptables จะได้รับคำตอบใน 1 โพสต์เดียว
Eric Hartford

กลับมาช้าไปหน่อย แต่นี่ไง การเปลี่ยนเส้นทางการรับส่งข้อมูลจากพอร์ตหนึ่งไปยังอีกพอร์ตหนึ่ง: "iptables -A PREROUTING -p tcp --dport 80 -j REDIRECT - to-ports 8080" มันง่ายพอที่จะปรับให้ทำในสิ่งที่คุณต้องการ ข้อกำหนดเพียงอย่างเดียวคือต้องเปิดพอร์ตทั้งสอง (ผ่านรายการที่อยู่เหนือข้อความนี้) ขอให้สนุก!
Alex Atkinson

16

เพื่อยอมรับทราฟฟิกที่เข้ามาทั้งหมดคุณสามารถใช้คำสั่งต่อไปนี้ -P คือการตั้งค่านโยบายเริ่มต้นให้ยอมรับ

iptables -P INPUT ACCEPT  

หากคุณไม่ต้องการกฎก่อนหน้าของคุณเพียงแค่ล้าง / ลบออกแล้วใช้คำสั่งด้านบน
เพื่อล้างกฎทั้งหมดที่ใช้

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