Fail2ban cho SSH VPS: cấu hình và tránh khóa nhầm
Fail2ban theo dõi log và có thể thực hiện action chặn nguồn khi sự kiện phù hợp vượt ngưỡng. Với SSH, nó hỗ trợ giảm đăng nhập lỗi lặp nhưng không thay SSH key, MFA, cập nhật hay lọc tấn công làm nghẽn đường truyền.

Fail2ban theo dõi log và có thể thực hiện action chặn nguồn khi sự kiện phù hợp vượt ngưỡng. Với SSH, nó hỗ trợ giảm đăng nhập lỗi lặp nhưng không thay SSH key, MFA, cập nhật hay lọc tấn công làm nghẽn đường truyền.
Xác định log và đường phục hồi
- VPS Ubuntu dùng systemd và SSH đã hoạt động.
- Có console và phiên quản trị đang mở.
- Biết cổng SSH thực tế và IP nguồn quản trị.
- Xác định SSH ghi journal hay file log theo hệ.
- Biết firewall backend/action của gói Fail2ban.
Không sao chép logpath từ hệ khác. Nếu chọn backend systemd, dùng nguồn journal phù hợp; nếu đọc file, đường dẫn và format cần đúng. Service active mà không đọc được log chưa chứng minh jail bảo vệ SSH.
Cài và kiểm tra bản package
sudo apt update
sudo apt install fail2ban
fail2ban-client --versionTrên máy đã dùng Fail2ban, kiểm tra cấu hình trước thay vì tạo đè. Gói distro có thể kèm mặc định riêng; đọc jail đang có và phiên bản tài liệu phù hợp.
Ví dụ jail riêng
Tạo file /etc/fail2ban/jail.d/sshd.local bằng editor với quyền quản trị. Ví dụ giả định SSH dùng TCP 22 và log phù hợp backend systemd; các ngưỡng là điểm khởi đầu để thử, không phải chuẩn cho mọi máy.
[sshd]
enabled = true
port = 22
backend = systemd
maxretry = 5
findtime = 10m
bantime = 10mNếu SSH dùng cổng khác, sửa port theo máy thực. Kiểm tra filter sshd/journalmatch và action theo bản package. Không sửa trực tiếp jail.conf mặc định nếu có thể dùng file override để giảm xung đột khi cập nhật.
Kiểm tra cấu hình và jail
sudo fail2ban-client -t
sudo systemctl restart fail2ban
sudo fail2ban-client status
sudo fail2ban-client status sshdChỉ restart sau khi test cấu hình đạt. Nếu jail không xuất hiện, xem lỗi, tên file và nguồn log. Nếu action báo lỗi, xác minh firewall thực tế; không chỉ nhìn số Failed mà bỏ qua lỗi chặn.
Thử có kiểm soát
- Giữ kênh quản trị riêng hoặc console.
- Dùng một nguồn thử được phép, không dùng nguồn quản trị duy nhất.
- Tạo một số đăng nhập lỗi trong giới hạn đã thống nhất.
- Kiểm tra sự kiện được match và action thực hiện.
- Thử lại truy cập đúng sau thời gian ban hoặc unban.
- Ghi false positive và chỉnh ngưỡng theo log thực.
Một jail match sai có thể chặn người dùng hợp lệ hoặc địa chỉ proxy. Với dịch vụ đi qua proxy, cần xác định log dùng IP thật đáng tin cậy; không mở rộng filter chỉ để tăng số match.
Unban và kiểm soát ngoại lệ
Ví dụ dùng IP tài liệu 203.0.113.10; thay bằng IP cần giải phóng đã xác minh. Lệnh này chỉ xử lý jail sshd, không gỡ chặn từ UFW hoặc firewall nhà cung cấp.
sudo fail2ban-client set sshd unbanip 203.0.113.10Nếu thêm ignoreip, chỉ thêm nguồn được tin cậy với phạm vi hẹp. Không bỏ qua một mạng rộng chỉ để tránh phiền; một thiết bị trong mạng đó vẫn có thể bị chiếm quyền. IP quản trị động cần phương án truy cập phù hợp.
Giới hạn của Fail2ban
Tấn công phân tán ít lỗi mỗi IP hoặc lưu lượng vượt uplink cần biện pháp khác. Kiểm tra key, MFA và hạn chế mạng theo các lớp chống DDoS. Khi thuê VPS, xác nhận console và phạm vi hỗ trợ truy cập.
Cài Fail2ban là SSH đã an toàn chưa?
Chưa. Cần xác nhận jail đọc log, action chặn đúng và bảo vệ tài khoản/khóa.
Có nên ban mọi IP sau một lỗi?
Không mặc định. Đánh giá false positive và nhu cầu người dùng trước khi chọn ngưỡng.
Cần máy chủ cho workload này?
NOC thuemaychu.vn hỗ trợ chọn CPU, GPU và băng thông. PoC trong 24 giờ.
Bài viết liên quan
Bảo mậtChống DDoS cho máy chủ dedicated: lớp L3/L4/L7 thực tế
Phân biệt chống nghẽn đường truyền và chống quá tải ứng dụng; xác định trách nhiệm nhà cung cấp và đội vận hành.
Cloud VPSDedicated Server hay VPS: khi nào nên thuê máy chủ riêng?
Chọn VPS hay dedicated dựa trên tải, giới hạn dịch vụ, ngân sách và yêu cầu kiểm soát; không mặc định mọi doanh nghiệp cần máy vật lý.
Bảo mậtCloudflare Organizations: CTO cần biết trước khi gom tài khoản
Cloudflare mở Organizations ngày 07/10/2026. Bài dành cho CTO muốn quản lý nhiều tài khoản, với checklist quyền truy cập, giới hạn và thử nghiệm trước khi triển khai.