สำนักวิทยบริการและเทคโนโลยีสารสนเทศ (สวส.)

Office of Academic Resources and Information Technology

วิธี Ban IP ที่มีพฤติกรรมที่ผิดปกติต่างๆด้วย Fail2Ban

หลังจากคราวที่แล้วเราได้ป้องกันการโจมตีของ SSH Brute Force Attack ด้วย fail2ban ไปแล้ว คราวนี้ก็มาถึงคราวของการใช้งาน fail2ban มาทำการ ban IP ของ Client ที่มีพฤติกรรมที่ผิดปกติด้วย Fail2ban ซึ่งพฤติกรรมเหล่านั้นอาจรวมถึงการป้องกันการโจมตีประเภท DDoS Attack อีกด้วย โดยการป้องกันนี้จะเป็นการป้องกันที่ traffic ไม่เต็มท่อและป้องกันในแบบ Stage-Exhaustion Attack ครับ

ซึ่งการป้องกันของ DDoS นั้นเราไม่สามารถป้องกันการโจมตีที่เป็น Volume Attack ได้ด้วยวิธีนี้เพราะ อันนั้นต้องใช้ Solution ของการป้องกัน DDoS ที่ ISP ช่วย เนื่องด้วยต่อให้เราป้องกันยังไง ท่อ traffic ที่จะถึงเราก็ยังเต็มอยู่ดี ดังนั้นการจะป้องกันหรือลดการโจมตีของ DDoS แบบ Volume Attack ได้ เราจำเป็นต้องทำที่ ISP ขาเข้าก่อนมาถึงฝั่ง Server ของเราครับ

(การโจมตีที่เป็น Attack แบบ Volume Attack มักจะใช้พวก Amplification Traffic ครับ อ่านเพิ่มเติมได้ที่ https://goo.gl/tGVNgK และสามารถอ่านการป้องกัน DDoS สำหรับ Nginx ย้อนหลังได้ที่นี่ครับ Click)

1. ติดตั้ง Fail2ban

2. เข้าไปแก้ไขไฟล์ /etc/fail2ban/jail.local

3. เลื่อนไปช่วงบรรทัดที่ 202 จะพบ configuration ของ apache

[apache]
enabled  = false
port     = http,https
filter   = apache-auth
logpath  = /var/log/apache*/*error.log
maxretry = 6

ซึ่งจะมี block แนวๆนี้หลายอันด้วยกันทั้ง [apache], [apache-multiport], [apache-noscript], [apache-overflows]

ให้เปลี่ยนทั้งหมดจาก enabled = false เป็น enabled = true และเพิ่ม findtime เข้าไป เพื่อกำหนดเวลาตรวจสอบของแต่ละ ip ในการเรียก request ที่ทำให้เกิด error ได้ไม่เกิน 6 ครั้งภายใน 10 นาที
































โดยแต่ละ block จะมีความแตกต่างกันไป

  • [apache] : จะใช้หา event ที่ client การ authen ไม่สำเร็จ
  • [apache-noscript] : ใช้หา event ที่ client ค้นหา script ที่รันอยู่ใน website
  • [apache-overflows] : ใช้หา event ที่ client พยายามเข้า address URLs ที่ผิดปกติ
  • [apache-badbots] : ใช้หา event ที่ client เป็น malicious bot requests.

4. Restart fail2ban






5. ตรวจสอบ block ของ apache ใน fail2ban ใช้คำสั่ง