กลับไปหน้าบล็อก
พฤษภาคม 23, 2026คู่มือ

วิธีติดตั้งและตั้งค่า Fail2ban บน Linux

ปกป้อง VPS จากการโจมตี brute-force โดยติดตั้ง Fail2ban พร้อม jail สำหรับ SSH และ Nginx

วิธีติดตั้งและตั้งค่า Fail2ban บน Linux

Fail2ban ตรวจสอบไฟล์ log และแบน IP ชั่วคราวที่แสดงพฤติกรรมที่เป็นอันตราย — เช่น การเข้าสู่ระบบ SSH ล้มเหลวซ้ำๆ เป็นหนึ่งในเครื่องมือความปลอดภัยแรกที่ควรติดตั้งบน VPS Hiddence ใหม่

ติดตั้ง Fail2ban

bash
# Ubuntu / Debian
sudo apt update
sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

# CentOS / RHEL / Alma / Rocky
sudo yum install epel-release -y
sudo yum install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

ปกป้อง SSH

สร้างไฟล์การตั้งค่า local (อย่าแก้ไข jail.conf โดยตรง):

bash
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600
findtime = 600

sudo systemctl restart fail2ban

ปกป้อง Nginx (ไม่บังคับ)

แบน IP ที่ก่อให้เกิด error 404 หรือ auth มากเกินไป:

bash
[nginx-http-auth]
enabled = true
port = http,https
filter = nginx-http-auth
logpath = /var/log/nginx/error.log
maxretry = 5

[nginx-noscript]
enabled = true
port = http,https
filter = nginx-noscript
logpath = /var/log/nginx/access.log
maxretry = 6

ตรวจสอบ IP ที่ถูกแบน

bash
sudo fail2ban-client status
sudo fail2ban-client status sshd

# Unban an IP if needed:
sudo fail2ban-client set sshd unbanip 1.2.3.4

แนวทางปฏิบัติที่ดี

  • ใช้ SSH keys แทนรหัสผ่านเพื่อลดพื้นที่โจมตี
  • เปลี่ยนพอร์ต SSH เริ่มต้นเฉพาะพร้อมกับกฎ firewall
  • ใส่ IP สำนักงานใน ignoreip ของ fail2ban หากจำเป็น
  • ตรวจสอบ /var/log/fail2ban.log เป็นประจำ
  • ใช้ Fail2ban ร่วมกับ UFW หรือ Firewalld