Cách cài đặt và cấu hình Fail2Ban trên Linux
9 phút đọc - 14 tháng 5, 2026

Hướng dẫn từng bước để cài đặt, cấu hình và kiểm tra Fail2Ban trên các máy chủ Linux dựa trên Ubuntu, Debian và RHEL.
Cách cài đặt và cấu hình Fail2Ban trên Linux
Fail2Ban giám sát nhật ký máy chủ của bạn để phát hiện các hoạt động đáng ngờ và tự động chặn các địa chỉ IP vi phạm bằng cách cập nhật các quy tắc tường lửa. Nó ngăn chặn các cuộc tấn công brute-force, giảm thiểu nhật ký rác và chạy êm ái ở chế độ nền sau khi được cấu hình. Hướng dẫn này bao gồm cài đặt trên Ubuntu/Debian, cấu hình cơ bản, thiết lập jail và một số tùy chọn nâng cao đáng biết.
Yêu cầu
Fail2Ban chạy trên hầu hết các bản phân phối Linux: Ubuntu, Debian, AlmaLinux, CentOS, RHEL, Rocky Linux và Fedora. Bạn sẽ cần:
- Python 3 đã được cài đặt trên hệ thống
- Quyền truy cập root hoặc sudo để cài đặt gói phần mềm và thay đổi tường lửa
- Tường lửa đang hoạt động (iptables, nftables, ufw hoặc firewalld)
- Tệp nhật ký ghi lại các lần đăng nhập thất bại (
/var/log/auth.logtrên các hệ thống dựa trên Debian,/var/log/securetrên các hệ thống dựa trên RHEL)
Trên các hệ thống dựa trên RHEL, hãy kích hoạt kho lưu trữ EPEL trước tiên. Trước khi cài đặt Fail2Ban, hãy xác nhận tường lửa của bạn đang chạy bằng ufw status hoặc systemctl status firewalld.
Cài đặt Fail2Ban trên Ubuntu/Debian
Cập nhật các gói phần mềm và cài đặt Fail2Ban:
sudo apt update && sudo apt upgrade -y
sudo apt install fail2banKích hoạt dịch vụ để nó khởi động khi khởi động hệ thống, sau đó khởi động nó:
sudo systemctl enable fail2ban
sudo systemctl start fail2banSao chép cấu hình mặc định vào một tệp ghi đè cục bộ. Luôn chỉnh sửa tệp jail.local, không phải jail.conf, để các bản cập nhật gói phần mềm không ghi đè lên cài đặt của bạn:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localKiểm tra xem mọi thứ đã hoạt động chưa:
sudo systemctl status fail2ban
sudo fail2ban-client statusLệnh đầu tiên sẽ hiển thị "Active: active (running)". Lệnh thứ hai liệt kê các jail đang hoạt động của bạn. Xác nhận Fail2Ban đã được kích hoạt khi khởi động bằng lệnh sudo systemctl is-enabled fail2ban.
Cấu hình Jails
Cài đặt mặc định
Mở /etc/fail2ban/jail.local và điều chỉnh phần [DEFAULT]. Các cài đặt này áp dụng cho tất cả các jail trừ khi bị ghi đè:
| Tham số | Giá trị khuyến nghị | Chức năng |
|---|---|---|
bantime | 3600 | Chặn một địa chỉ IP trong 1 giờ |
findtime | 600 | Đếm số lần thất bại trong khoảng thời gian 10 phút |
số lần thử lại tối đa | 3 đến 5 | Số lần thất bại trước khi kích hoạt lệnh cấm |
bỏ qua địa chỉ IP | 127.0.0.1/8 ::1 | Các địa chỉ IP không bao giờ bị chặn |
Thêm địa chỉ IP quản trị của riêng bạn vào ignoreip để tránh bị khóa ngoài. Ví dụ: ignoreip = 127.0.0.1/8 ::1 203.0.113.50.
Bảo vệ SSH
Kích hoạt chế độ SSH jail trong tệp jail.local:
[sshd]
enabled = trueKiểm tra xem logpath có trỏ đến tệp nhật ký chính xác cho bản phân phối của bạn hay không. Nếu bạn đã chuyển SSH sang một cổng không chuẩn (ví dụ: 2222), hãy cập nhật tham số cổng cho phù hợp.
Bảo vệ máy chủ web
Kích hoạt chế độ cách ly phù hợp với máy chủ web của bạn:
- Nginx:
[nginx-http-auth]cho các lỗi xác thực,[nginx-botsearch]cho các bot độc hại - Apache:
[apache-auth]cho xác thực,[apache-badbots]cho bot
Jail tái phạm
Chế độ [recidive] phát hiện các địa chỉ IP liên tục bị chặn trong các chế độ khác và áp dụng hình phạt kéo dài hơn, thường là một tuần (604.800 giây). Chế độ này hữu ích đối với những kẻ tấn công dai dẳng, thường xuyên thay đổi phương thức tấn công.
Sau khi thực hiện các thay đổi, hãy tải lại:
sudo systemctl restart fail2ban
sudo fail2ban-client statusKiểm tra và giám sát
Kiểm tra các lệnh cấm
Trước khi sử dụng Fail2Ban trong sản xuất, hãy kiểm tra nó. Từ một máy từ xa (không phải IP quản trị của bạn), hãy thử đăng nhập SSH cho đến khi bạn vượt quá maxretry. Bạn sẽ bị chặn. Xác nhận bằng:
sudo fail2ban-client status sshdTheo dõi các lệnh cấm diễn ra theo thời gian thực:
tail -f /var/log/fail2ban.logNếu bạn vô tình chặn một địa chỉ IP hợp lệ, hãy gỡ chặn nó:
sudo fail2ban-client set sshd unbanip 203.0.113.50Giám sát hàng ngày
Xem lại lịch sử cấm bằng cách tìm kiếm trong nhật ký:
grep "Ban\|Unban" /var/log/fail2ban.logCác lệnh quản lý hữu ích:
| Lệnh | Mục đích |
|---|---|
fail2ban-client status | Liệt kê tất cả các jails đang hoạt động |
fail2ban-client banned | Hiển thị tất cả các địa chỉ IP hiện đang bị chặn |
fail2ban-client set <jail> unbanip <IP> | Bỏ chặn một địa chỉ IP cụ thể |
fail2ban-client unban --all | Xóa tất cả các lệnh cấm |
fail2ban-client set <jail> banip <IP> | Cấm một địa chỉ IP theo cách thủ công |
Các lệnh cấm vẫn tồn tại sau khi khởi động lại. Fail2Ban lưu trữ chúng trong cơ sở dữ liệu SQLite tại /var/lib/fail2ban/fail2ban.sqlite3.
Cấu hình nâng cao
Chuyển sang nftables
nftables là phiên bản thay thế hiện đại cho iptables. Nó xử lý IPv4 và IPv6 trong một khung duy nhất, mở rộng tốt hơn với danh sách chặn lớn và có tính năng giới hạn tốc độ tích hợp sẵn. Nếu bạn đang sử dụng Ubuntu 22.04+, Debian 11+ hoặc bất kỳ bản phân phối mới nào, đây là lựa chọn tốt hơn.
Đặt nó trong jail.local:
[DEFAULT]
banaction = nftables-multiportKhởi động lại Fail2Ban, sau đó xác minh bằng lệnh sudo nft list ruleset. Bạn sẽ thấy f2b-table và f2b-chain trong kết quả. Chỉ nên tiếp tục sử dụng iptables nếu bạn đang sử dụng hệ thống cũ hoặc có yêu cầu về khả năng tương thích.
Thông báo qua email
Theo mặc định, Fail2Ban cấm truy cập mà không thông báo. Để nhận thông báo qua email, hãy thêm đoạn sau vào phần [DEFAULT] của tệp jail.local:
[DEFAULT]
destemail = [email protected]
sender = [email protected]
mta = sendmail
action = %(action_mwl)sHành động action_mwl sẽ gửi email kèm theo chi tiết chặn, dữ liệu WHOIS và các dòng nhật ký đã kích hoạt việc chặn. Sử dụng action_mw nếu bạn chỉ muốn dữ liệu WHOIS. Bạn cần cài đặt một trình chuyển tiếp email như sendmail hoặc cấu hình máy chủ trung gian SMTP thông qua công cụ như msmtp.
Đối với thông báo trên Slack hoặc Discord, hãy tạo một skript gửi webhook và kết nối nó thông qua tệp hành động tùy chỉnh trong /etc/fail2ban/action.d/.
Nếu bạn đang tìm kiếm một máy chủ có quyền truy cập root đầy đủ và băng thông không giới hạn để chạy Fail2Ban, hãy xem các máy chủ chuyên dụng của FDC.

Bạn đã chán ngán với việc triển khai chậm chạp hoặc giới hạn băng thông? FDC Servers cung cấp nguồn điện chuyên dụng ngay lập tức, phạm vi toàn cầu và các gói linh hoạt được thiết kế cho mọi quy mô. Sẵn sàng nâng cấp chưa?
Mở khóa hiệu suất ngay bây giờ
Danh sách kiểm tra tăng cường bảo mật máy chủ Linux
Danh sách kiểm tra từng bước để tăng cường bảo mật cho máy chủ Linux. Bao gồm SSH, tường lửa, vá lỗi, quyền truy cập tệp, SELinux/AppArmor và ghi nhật ký kiểm tra
15 phút đọc - 8 tháng 5, 2026
hướng dẫn sử dụng iperf3: Kiểm tra tốc độ mạng trên Linux & Windows
10 phút đọc - 7 tháng 5, 2026

Bạn có thắc mắc hoặc cần giải pháp tùy chỉnh?
Các tùy chọn linh hoạt
Phạm vi toàn cầu
Triển khai ngay lập tức
Các tùy chọn linh hoạt
Phạm vi toàn cầu
Triển khai ngay lập tức