Score:2

Fail2ban ไม่ได้ใช้ DROP blocktype

ธง cn

ใช้ Ubuntu 20.04 LTS ฉันมีสิ่งนี้ใน /etc/fail2ban/jail.local:

[ค่าเริ่มต้น]
ค่าอาหาร = 3600
banaction = iptables
แบบบล็อก = ดร็อป


[sshd]
เปิดใช้งาน = จริง
โปรโตคอล = tcp
พอร์ต = ssh
ตัวกรอง = sshd
logpath = /var/log/auth.log
สูงสุด = 3

แต่นี่คือสิ่งที่ฉันเห็นเมื่อฉันแสดงรายการกฎ iptables:

â°â# iptables -L f2b-sshd -n -v
เชน f2b-sshd (อ้างอิง 1 รายการ)
 pkts bytes target prot เลือกใช้ปลายทางต้นทาง
   13 1356 ปฏิเสธทั้งหมด -- * * 222.187.232.205 0.0.0.0/0 ปฏิเสธด้วย icmp-port-ไม่สามารถเข้าถึงได้
   18 1516 ปฏิเสธทั้งหมด -- * * 221.181.185.153 0.0.0.0/0 ปฏิเสธด้วย icmp-port-ไม่สามารถเข้าถึงได้
   17 1064 ปฏิเสธทั้งหมด -- * * 222.186.180.130 0.0.0.0/0 777 55854 ส่งคืนทั้งหมด -- * * 0.0.0.0/0 0.0.0.0/0

ปัญหาคือมันใช้ REJECT (พร้อม ICMP) แทน DROP

action.d/iptables.conf มีสิ่งนี้:

# ตัวเลือก: actionban
# หมายเหตุ: คำสั่งดำเนินการเมื่อห้าม IP ดูแลว่า
คำสั่ง # ถูกดำเนินการด้วยสิทธิ์ผู้ใช้ Fail2Ban
# แท็ก: ดูหน้าคน jail.conf (5)
# ค่า: CMD
#
actionban = <iptables> -I f2b-<ชื่อ> 1 -s <ip> -j <blocktype>

เป็นไฟล์การดำเนินการเริ่มต้นของ iptables ซึ่งมาพร้อมกับแพ็คเกจ Failed2ban apt อย่างเป็นทางการสำหรับระบบปฏิบัติการเวอร์ชันนี้

พยายามเพิ่ม "blocktype=drop" ภายใต้ [sshd] แต่ก็ไม่มีผล

ฉันไม่แน่ใจว่าจะแก้ปัญหานี้ได้อย่างไร เนื่องจากบริการ fail2ban ไม่บันทึกคำสั่ง iptables จริง

ฉันพลาดอะไรไป

jp flag
Dom
คุณควรตั้งค่า DROP ใน action.d/iptables-common.conf, blocktype
cn flag
มีสองปัญหากับสิ่งนั้น อันแรกคือการกำหนดค่าส่วนกลาง จากนั้นฉันจะไม่สามารถตั้งค่าบล็อกประเภทต่างๆ สำหรับตัวกรองต่างๆ ได้ ปัญหาที่สองคือ iptables-common.conf เป็นส่วนหนึ่งของแพ็คเกจ fail2ban ถ้าฉันเปลี่ยนแปลงสิ่งนั้น และต่อมามีรุ่นใหม่ของ fail2ban ออกมา มันจะถูกเขียนทับ ฉันจะไม่สังเกตด้วยซ้ำ หรืออาจจะไม่ถูกเขียนทับ และนั่นอาจทำให้การทำงานของ iptables เสียหายทั้งหมด
jp flag
Dom
จากนั้นคุณสามารถใช้ : action = iptables-multiport[blocktype="DROP", port="22,2222", name=sshd], ตั้งค่าในส่วน [sshd] ของคุณ
Score:1
ธง il

ในการจัดหาพารามิเตอร์ให้กับการดำเนินการของคุกเดี่ยว คุณต้องตั้งค่า หนังบู๊ ด้วยพารามิเตอร์ทั้งหมด (โดยปกติจะให้มาในส่วนเริ่มต้นของ คุก.conf) หรือในกรณีของการห้าม คุณสามารถใช้สิ่งต่อไปนี้:

[some_jail]
banaction = %(ทราบ/banaction)s[blocktype=DROP]

สำหรับหัวข้อ DROP vs. REJECT นั้น การอภิปรายนั้นเก่ามากเนื่องจากระบบย่อยของ net-filter มีข้อดี/ข้อเสียมากมายสำหรับทั้งสองฝ่าย
เกี่ยวข้องกับข้อกังวลเกี่ยวกับการห้าม ดู https://github.com/fail2ban/fail2ban/issues/2217#issuecomment-423248516 สำหรับรายละเอียด

cn flag
ใช่ ฉันเห็นด้วยกับ DROP vs REJECT ฉันมีตัวกรองบางตัวที่ใช้สำหรับการโจมตีด้วยการขยาย DNS สำหรับสิ่งเหล่านั้น DROP นั้นดีกว่า (เนื่องจากคำขอมีการปลอมแปลงที่อยู่ต้นทาง ดังนั้นการส่งกลับ ICMP ปฏิเสธจึงช่วยผู้โจมตีได้อย่างแท้จริง...)
Score:0
ธง cn

ฉันยอมรับวิธีแก้ปัญหาของ @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 (หากรองรับ) มิฉะนั้นจะไม่ทำงาน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา