ดังนั้นฉันจึงทำการค้นคว้าเกี่ยวกับวิธีการทำเช่นนี้หลังจากดูที่อยู่ IP เดียวกันกับที่โดนกลุ่มของเว็บเซิร์ฟเวอร์ เนื่องจากฉันใช้ AWS ฉันคิดว่าอาจเป็นวิธีที่ง่ายและทำงานได้อย่างสวยงามในสองวันแรกของการทดสอบ 5 เซิร์ฟเวอร์
สิ่งแรกที่ฉันแนะนำคือปิดใช้งาน SELinux ชั่วคราวเราจะจัดการกับมันในตอนท้าย ฉันไม่ใช่ผู้เชี่ยวชาญของ SELinux แต่สิ่งที่ฉันได้ผลมาจนถึงตอนนี้
ข้อกำหนดหลักคือแหล่งไฟล์ที่ใช้ร่วมกันฉันใช้ AWS EFS เมื่อจัดเตรียมและติดตั้งไดรฟ์ใหม่แล้วฉันเปลี่ยน logtarget ภายใน /etc/fail2ban/fail2ban.conf เป็นโฟลเดอร์ย่อยในไดรฟ์ EFS
logtarget = /efsmount/fail2ban/server1.log
จากนั้นฉันเขียนตัวกรองอย่างง่ายและวางไว้ใน /etc/fail2ban/filter.d/fail2ban-log.conf
[Definition]
failregex = .* Ban <HOST>
ignoreregex =
เพิ่มตัวกรองไปยัง /etc/fail2ban/jail.local
[fail2ban-log]
enabled = true
port = http,https
findtime = 86400 ; 1 day
logpath = /efsmount/fail2ban/server1.log
/efsmount/fail2ban/server2.log
/efsmount/fail2ban/server3.log
/efsmount/fail2ban/server4.log
maxretry = 1
จากนั้นรีสตาร์ท fail2ban
sudo fail2ban-client reload
ดีมาก! ไม่มีส่วนที่เจ็บปวดคือ SELinux หลังจากที่ฉันปล่อยให้ fail2ban ทำงานสักครู่ฉันก็รันคำสั่งนี้เพื่อให้ fail2ban ผ่านตัวกรอง
sudo grep fail2ban /var/log/audit/audit.log | sudo audit2allow -M fail2ban-nfs
Audit2allow จะบอกให้คุณเรียกใช้คำสั่งนี้
sudo semodule -i fail2ban-nfs.pp
ฉันยังตรวจสอบบันทึก SELinux ของฉันที่นี่เพื่อดูว่ามีการปฏิเสธอีกหรือไม่ หากใครมีเคล็ดลับเกี่ยวกับวิธีทำให้ SELinux ชัดเจนด้วยวิธีอื่นที่ยอดเยี่ยม
sudo cat /var/log/audit/audit.log |grep fail2ban |grep denied
ณ จุดนี้ฉันยังคงได้รับข้อผิดพลาดเมื่อรีสตาร์ท fail2ban มีข้อผิดพลาดเมื่อใช้ action = action_mwl ใน jail.local หลังจาก googling นิดหน่อยฉันก็พบสิ่งนี้ซึ่งใช้งานได้ดี จากสิ่งที่ฉันอ่านเพราะการแบ่งบรรทัดในคำสั่ง logpath ที่ชี้ไปยังไฟล์หลาย ๆ ไฟล์ ฉันลองด้วยเครื่องหมายจุลภาคช่องว่าง ฯลฯ ไม่มีอะไรอื่นที่ใช้งานได้กับ action_mwl
action_mwm = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
%(mta)s-whois-matches[name=%(__name__)s, dest="%(destemail)s", chain="%(chain)s"]
action = %(action_mwm)s
อย่าลืมเปิด SELinux อีกครั้ง!