ฉันยอมรับวิธีแก้ปัญหาของ @sebres แล้ว แต่ฉันต้องการเพิ่ม gotchas
สำหรับ iptables-allports banaction ประเภทบล็อกการปฏิเสธสามารถมีช่องว่างภายในได้ คุณต้องพูดอย่างนั้น
ตัวอย่าง:
[sshd]
banaction=iptables_allports[blocktype="REJECT --reject-with icmp-port-unreachable"]
สิ่งที่น่าสนใจประการที่สอง: ทั้ง banaction และการกำหนดค่าคุกมีพารามิเตอร์ที่เรียกว่า "โปรโตคอล" ครั้งแรกที่ฉันสับสนเมื่อการกำหนดค่าด้านล่างไม่มีข้อผิดพลาดใด ๆ แต่ไม่ได้บล็อกคำขอ UDP:
[ชื่อ-ddos]
banaction=iptables_allports[blocktype=DROP,โปรโตคอล=ทั้งหมด]
มันเกิดขึ้นเพราะฉันไม่มีโปรโตคอล = การตั้งค่าทั้งหมดจากคุก คุณต้องระบุ protocol=all ที่ระดับคุก:
[ชื่อ-ddos]
banaction=iptables_allports[blocktype=DROP,โปรโตคอล=ทั้งหมด]
โปรโตคอล=ทั้งหมด
เหตุผลนี้คือส่วนที่ตั้งชื่อ-ddos สร้างเชนใหม่ใน iptables และ ips ที่ถูกแบนกำลังสร้างกฎภายในเชนนั้น หากคุณไม่ระบุ protocol=all ที่ระดับคุก เชนจะถูกกำหนดดังนี้:
Chain INPUT (นโยบาย DROP 22 แพ็คเก็ต, 952 ไบต์)
pkts bytes target prot เลือกใช้ปลายทางต้นทาง
1371 229K ชื่อ-ddos tcp -- * * 0.0.0.0/0 0.0.0.0/0
เป็นความจริงที่ banaction จะสร้างกฎด้วย proto=all ภายในห่วงโซ่แต่สายโซ่จะไม่ถูกใช้สำหรับแพ็กเก็ตที่ไม่ใช่ tcp สรุปคือคุณต้องระบุ protocol=all ทั้งในระดับคุกและใน banaction (หากรองรับ) มิฉะนั้นจะไม่ทำงาน