ลองดูกฎ iptables ทั้งสองนี้ซึ่งมักจะใช้เพื่ออนุญาต DNS ขาออก:
iptables -A OUTPUT -p udp --sport 1024:65535 --dport 53
-m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp --sport 53 --dport 1024:65535
-m state --state ESTABLISHED -j ACCEPT
คำถามของฉันคือฉันควรเข้าใจสถานะ ESTABLISHED ใน UDP อย่างไร UDP ไม่มีสถานะ
นี่คือสัญชาตญาณของฉัน - ฉันอยากรู้ว่าที่ไหนหรือสิ่งนี้ไม่ถูกต้อง:
หน้าคนบอกฉันนี้:
สถานะ
โมดูลนี้เมื่อรวมกับการติดตามการเชื่อมต่อจะอนุญาตให้เข้าถึง สถานะการติดตามการเชื่อมต่อสำหรับแพ็คเก็ตนี้ --สถานะ ...
โดยทั่วไปแล้ว iptables จะจำหมายเลขพอร์ตที่ใช้สำหรับแพ็คเก็ตขาออก(จะมีสิ่งอื่นใดที่จำได้สำหรับแพ็กเก็ต UDP อีกครั้ง)แล้วอนุญาตให้แพ็กเก็ตขาเข้าแรกที่ส่งกลับภายในระยะเวลาอันสั้นได้หรือไม่ ผู้โจมตีจะต้องเดาหมายเลขพอร์ต(นั่นจะยากเกินไปหรือเปล่า)
เกี่ยวกับการหลีกเลี่ยงความขัดแย้ง:
เคอร์เนลติดตามว่าพอร์ตใดที่ถูกบล็อก (ไม่ว่าจะโดยบริการอื่น ๆ หรือโดยแพ็คเก็ต UDP ขาออกก่อนหน้า) ดังนั้นพอร์ตเหล่านี้จะไม่ถูกใช้สำหรับแพ็กเก็ต DNS ขาออกใหม่ภายในกรอบเวลาหรือไม่ (จะเกิดอะไรขึ้นถ้าฉันพยายามเริ่มบริการบนพอร์ตนั้นโดยไม่ตั้งใจภายในระยะเวลา - ความพยายามนั้นจะถูกปฏิเสธ / บล็อกหรือไม่)
โปรดหาข้อผิดพลาดทั้งหมดในข้อความด้านบน :-) ขอบคุณ
คริส