
หลายต่อหลายครั้งที่เราทำเว็บไซด์ขึ้นมาแล้วถูกก่อกวนด้วย Bot และเหล่า Hacker ต่างๆ ด้วยการ Brute Forcing (หรือก็คือการเดารหัสผ่านนั่นเอง) ทีนี้หากเราจะแบนพวก IP เหล่านี้ก็ต้องมานั่งเช็ค log อีกเสียดายเวลา จะใช้ Plugin มาช่วยเผลอๆ Plugin ของ CMS เหล่านั้นก็อาจจะมีช่องโหว่ซะเองอีก ดังนั้นมาในคราวนี้ทาง Techsuii ก็เลยจะเสนอโปรแกรมที่จะช่วยคอย monitor การโจมตีเหล่านั้นแล้วทำการ ban IP ของคนที่ Brute Forcing เข้ามาแบบอัตโนมัติ โดยใช้โปรแกรมที่ชื่อว่า “Fail2Ban”
โดย fail2ban จะคอยอ่าน log แล้ววิเคราะห์ว่าเกิดการโจมตี Brute Forcing หรือไม่ จากนั้นก็นำ IP นั้นไป block ผ่าน IPTABLES ไปเลย
ขั้นตอนการใช้งานมีดังนี้
1. ติดตั้ง fail2ban
2. หลังจากติดตั้งเสร็จแล้ว ให้ทำการ
copy ไฟล์ jail.conf ซึ่งเป็น default configuration ไฟล์ ให้กลายเป็น jail.local ภายใน /etc/fail2ban
3. จากนั้นเปิดไฟล์ jail.local ขึ้นมา โดยภายในไฟล์จะมี parameter ที่สำคัญดังนี้
ignoreip = 127.0.0.1/8 <= คือ parameter ที่จะกำหนดว่า IP ไหนจะไม่ทำการ block บ้าง
bantime = 600 <= คือเวลาที่จะทำการ ban IP นั้นๆ หน่วยเป็นวินาที
findtime = 600 <= คือเวลาที่จะใช้ในการตรวจสอบ user แต่ละคน ใช้คู่กับ maxretry
maxretry = 3 <= คือจำนวนการกระทำที่ผิดได้ในช่วงเวลาที่กำหนด หากมากกว่านั้นจะถูก ban
destemail = root@localhost <= คือ email ที่จะให้แจ้งเตือนเมื่อมีการ ban เกิดขึ้น
sendername = Fail2Ban <= คือกำหนด sender ที่ใช้แจ้งเตือน
mta = sendmail <= Mail Agent ที่ใช้ในการส่งเมล์
4. หากเราต้องการป้องกันการโจมตีในส่วน service ใดๆ ให้สร้างเป็นส่วนๆนั้นขึ้นมา เช่น
ในที่นี้เป็นการ monitor ของ ssh โดย หากกำหนดไว้ว่าเป็น enabled = true คือการเปิดใช้งาน, port = ssh คือ port 22 , กำหนดส่วน filter ที่เอาไว้หา log ของ service เป็น sshd, path log ที่จะคอย monitor เป็น /var/log/auth.log หากมี IP ใดๆมีการ authentication มายัง ssh ผิดเกิน 6 ครั้ง จะถูกแบน
*** รายละเอียดเพิ่มเติมของ filter แต่ละตัวอยู่ที่ /etc/fail2ban/filter.d/ เช่น filter sshd จะเป็น /etc/fail2ban/filter.d/sshd.conf เป็นต้น
เมื่อ host ใดๆทำการ Brute Force เข้ามาก็จะเกิด Log ขึ้นมาใน /var/log/failt2ban.log ครับ
https://www.techsuii.com/2015/11/18/how-to-ban-brute-forcing-user-with-fail2ban-in-ubuntu/