Nếu VPS của anh public IP, log SSH gần như lúc nào cũng có bot quét và brute-force. Chỉ mở port và đặt mật khẩu mạnh chưa đủ; anh cần thêm lớp chặn tự động theo hành vi. Fail2ban là lựa chọn rất hiệu quả và nhẹ cho Linux server.
Fail2ban là gì?
Fail2ban đọc log dịch vụ (SSH, Nginx, Apache…) và tự động ban IP có nhiều lần đăng nhập/thao tác lỗi vượt ngưỡng. Nhờ vậy, server giảm đáng kể brute-force và noise từ bot.
Cài đặt nhanh trên Ubuntu/Debian
sudo apt update
sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
sudo systemctl status fail2ban --no-pager
Cấu hình cơ bản cho SSH
# /etc/fail2ban/jail.local
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = systemd
maxretry = 5
findtime = 10m
bantime = 1h
Với cấu hình này, IP sai 5 lần trong 10 phút sẽ bị ban 1 giờ. Anh có thể tăng bantime cho server bị scan mạnh.
Lệnh vận hành quan trọng
sudo fail2ban-client status
sudo fail2ban-client status sshd
sudo fail2ban-client set sshd unbanip 1.2.3.4
Best practices production
- Kết hợp UFW/iptables để lớp phòng thủ đầy đủ hơn
- Dùng SSH key thay cho password
- Đổi cổng SSH không thay thế bảo mật, chỉ giảm noise
- Thiết lập whitelist IP quản trị nếu có thể
Troubleshooting nhanh
- Fail2ban không ban IP: kiểm tra logpath/backend
- Ban nhầm user thật: giảm strict hoặc unban thủ công
- Service fail sau chỉnh config: chạy test config trước restart
sudo fail2ban-client -t
sudo systemctl restart fail2ban
Kết luận
Fail2ban là một trong những bước hardening “ít công, hiệu quả cao” cho Linux server. Triển khai đúng giúp anh giảm brute-force rõ rệt và giữ hệ thống ổn định hơn khi exposed ra Internet.
