How to Fail2Ban กับ LINE Notify เพื่อให้เมื่อมี IP ถูกแบนจากการพยายามล็อกอินผิดพลาด (SSH, FTP, Web ฯลฯ) — ระบบจะแจ้งเตือนคุณทาง LINE ทันที

คู่มือเชื่อม Fail2Ban + LINE Notify (ฉบับเต็ม)

🔧 ความต้องการเบื้องต้น

  • ✅ ติดตั้ง Fail2Ban บนระบบ (Ubuntu / Debian / CentOS)
  • ✅ มี LINE Notify Token สำหรับแจ้งเตือน
  • ✅ สิทธิ์ sudo บนเซิร์ฟเวอร์

✅ ขั้นตอนที่ 1: สร้าง LINE Notify Token

  1. ไปที่: https://notify-bot.line.me/my/
  2. ล็อกอิน LINE
  3. กดปุ่ม “Generate Token”
  4. ตั้งชื่อเช่น: Fail2Ban Alert
  5. เลือกส่งเข้า “กลุ่ม” หรือ “ตัวเอง” (ต้องเชิญ bot เข้ากลุ่มก่อน)
  6. กด “Create Token” → คัดลอก Token เก็บไว้

✅ ขั้นตอนที่ 2: ดาวน์โหลดระบบสำเร็จรูป

📦 คลิกเพื่อดาวน์โหลด ZIP

ใน ZIP นี้มีไฟล์:

  • .env → เก็บ LINE_TOKEN
  • line_notify.sh → script ส่ง LINE (ใช้กับ Fail2Ban)
  • line_notify.py → ใช้ส่งทดสอบ หรือใช้กับระบบอื่น
  • line-notify.conf → Action Fail2Ban แบบ custom
  • README.md → คำอธิบายการใช้งาน

✅ ขั้นตอนที่ 3: ติดตั้งระบบ

🔹 แตกไฟล์ ZIP แล้ววางไฟล์:

bashCopyEditsudo cp line_notify.sh /etc/fail2ban/
sudo chmod +x /etc/fail2ban/line_notify.sh

sudo cp line-notify.conf /etc/fail2ban/action.d/
sudo cp .env /etc/fail2ban/.env

แก้ไขไฟล์ .env ให้ใส่ Token ของคุณ:

envCopyEditLINE_TOKEN=AbCDefGhIjKlMN1234567890

✅ ขั้นตอนที่ 4: ตั้งค่า Fail2Ban ให้เรียกแจ้งเตือน

เปิดไฟล์ jail.local:

bashCopyEditsudo nano /etc/fail2ban/jail.local

เพิ่มหรือแก้ไข block เช่น:

iniCopyEdit[sshd]
enabled = true
port = ssh
filter = sshd
logpath = %(sshd_log)s
maxretry = 3
bantime = 3600
findtime = 600
action = line-notify

💡 สามารถใช้กับ jail อื่น ๆ เช่น:

iniCopyEdit[nginx-http-auth]
enabled = true
filter = nginx-http-auth
port = http,https
logpath = /var/log/nginx/error.log
action = line-notify

✅ ขั้นตอนที่ 5: รีโหลด Fail2Ban

bashCopyEditsudo systemctl restart fail2ban

🧪 ขั้นตอนที่ 6: ทดสอบแจ้งเตือน

✅ ทดสอบผ่าน Python

bashCopyEditpython3 line_notify.py "🚨 ทดสอบแจ้งเตือนจาก Fail2Ban"

✅ ทดสอบ Block IP ด้วยตนเอง

SSH ผิดรหัสผ่าน 3 ครั้ง → จะถูกแบน และ LINE แจ้งเตือนว่า:

csharpCopyEdit🚫 IP BANNED: 192.168.1.100 on jail sshd (tries=3)

✅ ตัวอย่างข้อความที่ส่งเข้า LINE

เหตุการณ์ข้อความ
Start Jail🟢 Fail2Ban started monitoring jail sshd
Ban IP🚫 IP BANNED: 192.168.1.101 on jail sshd (tries=3)
Unban IP✅ IP UNBANNED: 192.168.1.101 from jail sshd

🔒 ความปลอดภัยเพิ่มเติมที่แนะนำ

มาตรการรายละเอียด
🔐 ปิด SSH Root Login/etc/ssh/sshd_configPermitRootLogin no
🧩 ใช้ SSH Key Loginปลอดภัยกว่ารหัสผ่าน
📍 ตรวจสอบ IP ที่โดนแบนใช้ fail2ban-client status sshd
📦 เชื่อมกับระบบ monitor อื่นผ่าน line_notify.py

📌 สรุป

คุณจะได้ระบบ Fail2Ban ที่:

  • ✅ แบน IP ผิดปกติ
  • ✅ แจ้งเตือน LINE ทันที
  • ✅ รองรับหลาย jail (SSH / Web / FTP)
  • ✅ พร้อมใช้งานในระดับ production

Leave a Reply

Your email address will not be published. Required fields are marked *

Translate »