Cài Fail2Ban chống dò mật khẩu SSH
Hướng dẫn Linux Server · cập nhật 28/08/2026
Để cài Fail2Ban chống dò mật khẩu SSH, bạn cài gói fail2ban, tạo file cấu hình jail.local, đặt số lần đăng nhập sai được phép và thời gian khoá IP, rồi khởi động dịch vụ. Việc này mất khoảng 15 phút và tự động chặn IP dò mật khẩu.
Fail2Ban đọc log đăng nhập, đếm số lần sai từ mỗi IP, và tự thêm luật tường lửa chặn IP vượt ngưỡng. Nó xử lý phần mà tường lửa thường không làm được: chặn kẻ dò ngay trên cổng đang mở.
- Cài gói fail2ban.
- Tạo file cấu hình jail.local riêng.
- Đặt ngưỡng số lần sai và thời gian khoá.
- Khởi động dịch vụ và kiểm tra.
Fail2Ban giải quyết vấn đề gì
Tường lửa như UFW chỉ đóng hoặc mở cổng, nó không phân biệt được ai gõ đúng mật khẩu và ai đang dò. Fail2Ban lấp chỗ đó. Nó theo dõi file log, thấy một IP thử sai nhiều lần trong thời gian ngắn thì khoá IP đó lại một khoảng thời gian, rồi tự mở khi hết hạn.
Trên một VPS mở cổng SSH ra internet, log đăng nhập ghi hàng nghìn lượt dò mỗi ngày. Fail2Ban cắt gần hết số đó bằng cách khoá IP ngay sau vài lần thử sai.
Cài Fail2Ban trên Ubuntu và CentOS
Cách cài khác nhau đôi chút giữa hai dòng hệ điều hành. Ubuntu và Debian dùng apt, còn CentOS và AlmaLinux dùng dnf hoặc yum. Trên CentOS bạn cần bật kho EPEL trước vì Fail2Ban không nằm trong kho mặc định.
| Hệ điều hành | Lệnh cài |
|---|---|
| Ubuntu, Debian | sudo apt install fail2ban |
| CentOS, AlmaLinux | sudo dnf install epel-release && sudo dnf install fail2ban |
Các bước cấu hình jail.local
Bốn bước dưới đây tạo cấu hình riêng để không đụng file gốc. Bạn tạo file jail.local, khai báo bảo vệ SSH, đặt ngưỡng, rồi khởi động dịch vụ. File local luôn được ưu tiên hơn file mặc định.
1. Tạo file cấu hình riêng
Không sửa trực tiếp file jail.conf vì nó bị ghi đè khi cập nhật. Tạo file local riêng.
sudo nano /etc/fail2ban/jail.local
2. Khai báo bảo vệ SSH
Dán nội dung dưới vào file. Khối [sshd] bật bảo vệ cho dịch vụ SSH.
[sshd]
enabled = true
port = 22
maxretry = 5
bantime = 3600
findtime = 600
Nếu đã đổi cổng SSH, sửa dòng port thành số cổng thật của bạn.
3. Khởi động và bật tự chạy
Lưu file rồi khởi động dịch vụ, đồng thời cho nó tự chạy mỗi khi máy khởi động.
sudo systemctl enable fail2ban
sudo systemctl restart fail2ban
4. Kiểm tra dịch vụ đã chạy
Xem trạng thái để chắc Fail2Ban đang hoạt động.
sudo systemctl status fail2ban
Hiểu ba tham số quan trọng nhất
Ba con số quyết định Fail2Ban khắt khe tới đâu. maxretry là số lần sai được phép, findtime là khoảng thời gian đếm các lần sai đó, và bantime là thời gian khoá IP. Đặt quá gắt dễ khoá nhầm chính mình khi gõ sai mật khẩu vài lần.
| Tham số | Nghĩa | Gợi ý |
|---|---|---|
maxretry | Số lần sai trước khi khoá | 5 lần |
findtime | Khoảng đếm số lần sai, tính giây | 600 giây |
bantime | Thời gian khoá IP, tính giây | 3600 giây, đặt -1 là khoá vĩnh viễn |
Xem và bỏ khoá IP khi cần
Fail2Ban có công cụ dòng lệnh riêng để xem IP nào đang bị khoá. Chạy lệnh status cho jail sshd để thấy danh sách. Nếu bạn tự bị khoá vì gõ sai mật khẩu, dùng lệnh unban để bỏ khoá IP của mình.
sudo fail2ban-client status sshd
sudo fail2ban-client set sshd unbanip 103.75.180.10
Trước khi đặtbantime = -1khoá vĩnh viễn, hãy thêm IP của bạn vào danh sách bỏ qua bằng dòngignoreip. Tự khoá vĩnh viễn IP của chính mình mà đang ở xa VPS thì phải vào console mới cứu được.
Kết hợp Fail2Ban với đổi cổng SSH và đăng nhập bằng khoá là bộ ba bảo mật SSH cơ bản. Ba việc này làm một lần, chạy nền suốt, và cắt gần hết rủi ro bị dò mật khẩu trên VPS mới.
Bài khác trong Linux Server
Xem cả 22 bàiLàm theo vẫn chưa được?
Gửi yêu cầu hỗ trợ, kỹ thuật xem trực tiếp trên dịch vụ của Anh/Chị.