คู่มือเชื่อม Fail2Ban + LINE Notify (ฉบับเต็ม)
🔧 ความต้องการเบื้องต้น
- ✅ ติดตั้ง Fail2Ban บนระบบ (Ubuntu / Debian / CentOS)
- ✅ มี LINE Notify Token สำหรับแจ้งเตือน
- ✅ สิทธิ์
sudo
บนเซิร์ฟเวอร์
✅ ขั้นตอนที่ 1: สร้าง LINE Notify Token
- ไปที่: https://notify-bot.line.me/my/
- ล็อกอิน LINE
- กดปุ่ม “Generate Token”
- ตั้งชื่อเช่น:
Fail2Ban Alert
- เลือกส่งเข้า “กลุ่ม” หรือ “ตัวเอง” (ต้องเชิญ bot เข้ากลุ่มก่อน)
- กด “Create Token” → คัดลอก Token เก็บไว้
✅ ขั้นตอนที่ 2: ดาวน์โหลดระบบสำเร็จรูป
ใน ZIP นี้มีไฟล์:
.env
→ เก็บLINE_TOKEN
line_notify.sh
→ script ส่ง LINE (ใช้กับ Fail2Ban)line_notify.py
→ ใช้ส่งทดสอบ หรือใช้กับระบบอื่นline-notify.conf
→ Action Fail2Ban แบบ customREADME.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_config → PermitRootLogin no |
🧩 ใช้ SSH Key Login | ปลอดภัยกว่ารหัสผ่าน |
📍 ตรวจสอบ IP ที่โดนแบน | ใช้ fail2ban-client status sshd |
📦 เชื่อมกับระบบ monitor อื่น | ผ่าน line_notify.py |
📌 สรุป
คุณจะได้ระบบ Fail2Ban ที่:
- ✅ แบน IP ผิดปกติ
- ✅ แจ้งเตือน LINE ทันที
- ✅ รองรับหลาย jail (SSH / Web / FTP)
- ✅ พร้อมใช้งานในระดับ production