iptables ลำดับของกฎ - ฉันเข้าใจถูกต้องหรือไม่


17

ฉันต้องการกำหนดค่า VPS ของฉันในแบบที่ยอมรับการเชื่อมต่อจากภายนอกบนพอร์ต 22 (โดยที่ sshd listens) และคำร้องขอ ICMP ทุกสิ่งจากนอกควรถูกปฏิเสธ ภายในเซิร์ฟเวอร์ทุกอย่างควรได้รับอนุญาต กฎต่อไปนี้สร้างการทำงานที่ต้องการหรือไม่?

iptables -A INPUT --jump ACCEPT --protocol all   --source 127.0.0.1
iptables -A INPUT --jump ACCEPT --protocol tcp   --dport 22
iptabels -A INPUT --jump ACCEPT --protocol icmp
iptables -A INPUT --jump ACCEPT --match state    --state ESTABLISHED,RELATED
iptables -A INPUT --jump REJECT --protocol all

ฉันไม่แน่ใจอย่างสมบูรณ์ว่ากฎการยอมรับจะ "ชนะ" ในการปฏิเสธโดยรวมครั้งล่าสุดหรือไม่


1
คุณไม่ควรใช้--source 127.0.0.1เพื่อพิจารณาว่าแพ็คเก็ตปลอดภัยที่จะยอมรับหรือไม่ ดูserverfault.com/a/825231/4131
Bruno Bronosky

คำตอบ:


20

คุณถูก.

กฎจะถูกดำเนินการตามลำดับบรรทัดของไฟล์ หากมีการจับคู่สำหรับกฎจะไม่มีการประมวลผลกฎอื่น ๆ สำหรับแพ็กเก็ต IP ในกรณีของคุณ

http://en.wikipedia.org/wiki/Iptables

แต่ละกฎในกลุ่มประกอบด้วยข้อมูลจำเพาะของแพคเก็ตที่ตรงกับ มันอาจมีเป้าหมาย (ใช้สำหรับส่วนขยาย) หรือคำตัดสิน (หนึ่งในการตัดสินใจในตัว) เมื่อแพ็กเก็ตลัดเลาะโซ่แต่ละกฎจะถูกตรวจสอบ หากกฎไม่ตรงกับแพ็กเก็ตแพ็กเก็ตจะถูกส่งไปยังกฎถัดไป หากกฎไม่ตรงกับแพ็คเก็ตกฎจะใช้การดำเนินการที่ระบุโดยเป้าหมาย / คำตัดสินซึ่งอาจส่งผลให้แพ็คเก็ตได้รับอนุญาตให้ดำเนินการต่อตามโซ่หรืออาจไม่

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