Score:2

Fail2ban ตรวจพบ IP ของผู้โจมตีแต่ไม่ได้แบน และอ่านบันทึกได้ช้า

ธง br

ไม่กี่วันฉันได้รับการโจมตีจากที่อยู่ IP บางส่วนไปยัง nginx ของฉัน ฉันได้ตัดสินใจที่จะใช้ fail2ban เพื่อแบนโดยอัตโนมัติ แต่ฉันสังเกตเห็นว่ามันทำงานได้ไม่ดีนัก ฉันเห็นในบันทึกที่ตรวจพบที่อยู่ IP แต่ไม่ได้ห้ามตามที่คาดไว้

ไฟล์คุกของฉันคือ:

[nginx-40x-req]
เปิดใช้งาน = จริง
bantime.rndtime = 2800
bantime.increment = จริง
พอร์ต = http,https
ตัวกรอง = nginx-40x-req
logpath = /var/log/nginx/access.log
สูงสุด = 5

และตัวกรองของฉันมีลักษณะดังนี้:

[คำนิยาม]
failregex = ^{"สถานะ": (400|401|403), "request_time": [0-9\.]+,\s+"remote_addr": "<โฮสต์>",

ใน nginx ของฉัน ฉันได้เพิ่มแผนที่เพื่อตรวจจับคำขอและส่งกลับ 403 เมื่อตรวจพบ บันทึกมีลักษณะดังนี้:

{"สถานะ": 403, "request_time": 0.000, "remote_addr": "xx.xx.xx.xx", "@timestamp": "2021-09-03T18:32:34+02:00", "ประเภท ": "nginx", "ชื่อโฮสต์": "vps-e642f340", "โฮสต์": "d.itsyjd.com", "uri": "/v2/speed_test", "request": "รับ https://d .itsyjd.com/v2/speed_test HTTP/1.1", "request_method": "GET", "request_proto": "http", "request_proto_proxy": "-", "request_uri": "/v2/speed_test", "request_args ": "-", "server_proto": "HTTP/1.1", "body_bytes_sent": 552, "http_referer": "-", "http_user_agent": "Mozilla/5.0 (Linux; Android 8.0; MHA-AL00 Build/HUAWEIMHA -AL00; wv) AppleWebKit/537.36 (KHTML เช่น Gecko) เวอร์ชัน/4.0 Chrome/57.0.2987.132 MQQBrowser/6.2 TBS/044304 Mobile Safari/537.36 (เข้ากันได้; Baiduspider/2.0;+http://www.baidu.com/ ค้นหา/spider.html)", "msec": 1630686754.923, "upstream_connect_time": -, "upstream_header_time": -, "upstream_response": -, "pipe": "p", "gzip_ratio": "-", "brotli_ratio ":"-", "remote_user": "-", "bad_request": "1"}

ใน Fail2ban ของฉัน ฉันเห็นข้อความจำนวนมากแจ้งว่าตรวจพบที่อยู่ IP:

2021-09-03 18:34:31,494 fail2ban.filter [32586]: INFO [nginx-40x-req] พบ xx.xx.xx.xx - 2021-09-03 18:29:33

แต่ก็ยังไม่มีการห้ามที่อยู่ IP เหล่านั้น

สิ่งหนึ่งที่ฉันสังเกตเห็นคือความเร็วในการอ่านของ fail2ban นั้นช้ากว่าความเร็วของบันทึก ดังนั้นฉันจึงเริ่มคิดว่านั่นอาจเป็นปัญหา เพราะเมื่อ IP เหล่านั้นถูกแบนและอ่าน fail2ban แบบเรียลไทม์ ที่อยู่ IP อื่นจะถูกแบนโดยไม่มีปัญหา . Max_retry คือ 5 และตรวจพบที่อยู่ IP ทั้งหมดมากกว่า 5 ครั้ง ดังนั้นจึงต้องถูกแบน

ทุกคนรู้ว่าฉันทำอะไรผิด (เพราะแน่นอนว่าเป็นสิ่งที่ฉันไม่เห็น)

ขอแสดงความนับถืออย่างสูง.

แก้ไข: หลังจากเขียนข้อความนี้ ฉันเห็นว่ามีการแบน แต่ทำงานช้ามาก ในเวลาประมาณ 15 นาทีได้ห้ามที่อยู่ IP ประมาณ 4 รายการจากประมาณ 11 รายการเมื่อทุก ๆ วินาทีพวกเขาถูกตรวจพบบ่อยครั้ง

แก้ไข 2: การล้างบันทึกด้วยวิธีง่ายๆ เสียงสะท้อน "" > <ไฟล์บันทึก> ได้ก่อให้เกิดการแบน

เวอร์ชันของ fail2ban ของฉันคือ 0.10.2

เมื่อผู้โจมตีที่มีปัญหาถูกแบนและได้รับคำขอเพียงไม่กี่ครั้ง fail2ban กำลังอ่านข้อมูลแบบเรียลไทม์และทำการแบน:

2021-09-03 18:46:13,759 fail2ban.filter [32586]: INFO [nginx-40x-req] พบ XX.XX.XX.XX - 2021-09-03 18:46:13
2021-09-03 18:46:13,909 fail2ban.actions [32586]: ประกาศ [nginx-40x-req] ห้าม XX.XX.XX.XX
2021-09-03 18:46:18,855 fail2ban.filter [32586]: INFO [nginx-40x-req] พบ XX.XX.XX.XX - 2021-09-03 18:46:18
2021-09-03 18:47:07,004 fail2ban.filter [32586]: INFO [nginx-40x-req] พบ XX.XX.XX.XX - 2021-09-03 18:47:06
2021-09-03 18:48:34,390 fail2ban.filter [32586]: INFO [nginx-40x-req] พบ XX.XX.XX.XX - 2021-09-03 18:48:34
2021-09-03 18:48:54,230 fail2ban.filter [32586]: INFO [nginx-40x-req] พบ XX.XX.XX.XX - 2021-09-03 18:48:54
2021-09-03 18:48:54,231 fail2ban.filter [32586]: INFO [nginx-40x-req] พบ XX.XX.XX.XX - 2021-09-03 18:48:54
2021-09-03 18:48:54,231 fail2ban.filter [32586]: INFO [nginx-40x-req] พบ XX.XX.XX.XX - 2021-09-03 18:48:54
2021-09-03 18:48:54,335 fail2ban.actions [32586]: ประกาศ [nginx-40x-req] แบน XX.XX.XX.XX
2021-09-03 18:50:08,488 fail2ban.filter [32586]: INFO [nginx-40x-req] พบ XX.XX.XX.XX - 2021-09-03 18:50:08

ดังนั้นฉันยังคงคิดว่าปัญหาอาจจะเป็นความเร็วในการอ่าน

แก้ไข 3:

ในที่สุด ฉันได้อัปเกรดเวอร์ชันของ fail2ban เป็น 0.11.2 แล้ว ฉันได้เพิ่มรูปแบบวันที่ และฉันได้เปลี่ยนตัวตรวจจับที่อยู่ ตอนนี้ดูเหมือนว่าจะอ่านไฟล์ nginx ได้เร็วขึ้นมาก

[คำนิยาม]
failregex = ^{"สถานะ": (400|401|403), "request_time": [0-9\.]+,\s+"remote_addr": "<ADDR>",
datepattern = "@timestamp": "%%Y-%%m-%%dT%%H:%%M:%%S%%z"
Michael Hampton avatar
cz flag
Fail2ban เวอร์ชั่นอะไรครับ?
br flag
สวัสดี Michael ล่าสุดใน Debian 10: 0.10.2 ตอนนี้ผู้โจมตีถูกแบนและผู้โจมตีรายอื่นทำตามคำขอเพียงเล็กน้อย ดูเหมือนว่าจะได้ผล ฉันยังคงคิดว่าปัญหาคือความเร็วในการอ่าน
Michael Hampton avatar
cz flag
บันทึกของคุณอาจมีขนาดใหญ่เกินไป คุณหมุนบันทึก nginx เป็นประจำหรือไม่?
br flag
ปัญหาคือมันจะใหญ่ขึ้นเมื่อผู้โจมตีโจมตีและล้มเหลว 2 แบนไม่สามารถอ่านได้เร็วพอ ฉันได้ล้างไฟล์บันทึกหลายครั้งระหว่างการทดสอบเพราะนั่นเป็นครั้งแรกที่ฉันคิด ดังนั้นไฟล์บันทึกจึงเกือบจะว่างเปล่า
br flag
คำถามข้อหนึ่ง: Fail2ban เก็บที่อยู่ IP ที่ตรวจพบไว้ในหน่วยความจำ หรือพยายามอ่านช่วง "findtime" ในไฟล์
Score:2
ธง il
  1. ไม่แนะนำให้ตรวจสอบบันทึกการเข้าถึง ดู fail2ban/wiki :: แนวปฏิบัติที่ดีที่สุด โดยเฉพาะส่วน "ลดกาฝาก log-traffic"
  2. regexs ที่ไม่เหมาะสมยังสามารถทำให้เกิด Failed2bans "ความเร็วในการอ่านอาจช้ากว่าความเร็วในการบันทึก" เพียงแค่ฉันไม่เห็นว่า RE ของคุณไม่ดี แต่สามารถทำให้เร็วขึ้นได้ เพียงแค่คุณต้องเปลี่ยนรูปแบบการบันทึกสำหรับสิ่งนั้น นอกจากนี้ยังระบุเดี่ยวและแม่นยำ รูปแบบวันที่ อาจช่วยให้การประมวลผลเร็วขึ้น
  3. โดยรวมแล้วสามารถสร้างสภาวะการแข่งขันที่ทราบได้ ล้มเหลว 2 แบนได้รับผลกระทบถึง v.0.10.5 ดู https://github.com/fail2ban/fail2ban/issues/2660 สำหรับรายละเอียด (การแก้ไขเผยแพร่ภายใน v.0.10.6 / v.0.11.2)

สังเกตคำตอบสำหรับประเด็นที่คล้ายกันด้วย เช่น https://github.com/fail2ban/fail2ban/issues/3021#issuecomment-834287295.

br flag
ขอบคุณ! ฉันไม่พบอะไรเลยเกี่ยวกับเรื่องนี้ แต่ลิงก์นั้นชัดเจน ฉันอัปเดตเป็นเวอร์ชันล่าสุดแล้ว และได้ทำการเปลี่ยนแปลงบางอย่างในตัวกรองแล้ว ตอนนี้ดูเหมือนว่าจะเร็วขึ้นและดูเหมือนว่าผู้โจมตีจะหยุดลงแล้ว

โพสต์คำตอบ

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