Hướng dẫn chi tiết cách cài đặt và cấu hình Fail2ban trên máy chủ Ubuntu 22.04, giúp ngăn chặn các cuộc tấn công, đảm bảo an ninh mạng cho hệ thống.
Fail2ban là một công cụ bảo mật mạnh mẽ và linh hoạt được sử dụng để bảo vệ máy chủ khỏi các cuộc tấn công brute-force. Bằng cách theo dõi các tệp nhật ký (log files) để phát hiện các hành vi đáng ngờ, Fail2ban sẽ tự động chặn các địa chỉ IP có dấu hiệu tấn công. Trong hướng dẫn này, chúng ta sẽ cùng tìm hiểu cách cài đặt và cấu hình Fail2ban trên hệ điều hành Ubuntu 22.04.
1. Fail2ban là gì?
Fail2ban là một công cụ bảo mật mã nguồn mở, được sử dụng chủ yếu để bảo vệ máy chủ khỏi các cuộc tấn công brute-force và các hành vi đáng ngờ khác. Công cụ này hoạt động bằng cách theo dõi các tệp nhật ký (log files) của hệ thống và dịch vụ (như SSH, Apache, Nginx, v.v.).
Khi phát hiện các dấu hiệu của một cuộc tấn công, như nhiều lần thử đăng nhập thất bại trong một khoảng thời gian ngắn, Fail2ban sẽ tự động chặn địa chỉ IP liên quan bằng cách cập nhật tường lửa (firewall) hoặc thực hiện các hành động bảo vệ khác.
>>> Xem thêm: Ubuntu Firewall là gì? Mối quan hệ giữa Ubuntu Firewall và IPTABLES
2. Hướng dẫn cài đặt và sử dụng Fail2ban trên Ubuntu 22.04
2.1. Cài đặt
Cập nhật hệ thống và cài đặt Fail2Ban
apt -y update apt -y install fail2ban |
Start dịch vụ và bật khởi động cùng hệ thống
systemctl start fail2ban systemctl enable fail2ban |
Cấu hình mặc định được đặt tại file: /etc/fail2ban/jail.conf
Để thay đổi cài đặt,chúng ta sẽ tạo file /etc/fail2ban/jail.local và chỉnh sửa cấu hình từ file này
cat << EOF >> /etc/fail2ban/jail.local [DEFAULT] ignoreip = 127.0.0.1/8 ::1 bantime = 1d findtime = 5m maxretry = 5 EOF |
Một số cấu hình cần chú ý:
- ignoreip: danh sách white ip
- bantime: Thời gian block (mặc định tính bằng giây)
1m ⇒ 1 minutes 1h ⇒ 1 houer 1d ⇒ 1 day 1mo ⇒ 1 month 1y ⇒ 1 year |
- findtime: Thời gian 1 IP login thành công
- maxretry: số lần login fail tối đa trước khi bị block
Các action default:
# - %(action_)s ⇒ ban only # - %(action_mw)s ⇒ band and email notification (includes Whois info) # - %(action_mwl)s ⇒ band and email notification (includes Whois info and logs) |
2.2. Cấu hình Fail2ban cho dịch vụ ssh
Mặc định, chỉ có dịch vụ ssh được bật và giám sát
~# fail2ban-client status Status |- Number of jail: 1 `- Jail list: sshd |
Chỉnh sửa file cấu hình
vi /etc/fail2ban/jail.d/defaults-debian.conf |
Thêm các dòng sau, bạn có thể thay đổi các giá trị này theo ý muốn:
[sshd] enabled = true bantime = 1d findtime = 3m maxretry = 5 action = %(action_)s |
Reload lại fail2ban để áp dụng cấu hình
systemctl reload fail2ban |
Kiểm tra trạng thái
fail2ban-client status sshd |
Xem một số dịch vụ khác mà bạn có thể giám sát
grep '^\\[' /etc/fail2ban/jail.conf | tail -n +3 |
Để thêm 1 dịch vụ khác, chúng ta có thể tạo 1 file trong /etc/fail2ban/jail.d/
Ví dụ:
- Thiết lập dịch vụ Apache2 basic authentication
cat << EOF >> /etc/fail2ban/jail.d/apache-auth.conf [apache-auth] enabled = true bantime = 3600 findtime = 5m maxretry = 5 action = %(action_)s EOF |
- Không quên reload lại cấu hình
systemctl reload fail2ban |
2.3 Thêm hoặc xoá IP block thủ công
Xoá IP
fail2ban-client set sshd unbanip 192.168.1.10 |
Thêm ip block
fail2ban-client set sshd banip 192.168.10.0/24 |
Xoá tất cả ip block
fail2ban-client unban --all |
Lưu ý: có thể xem lại list các phiên ssh fail vào máy chủ ubuntu
cat /var/log/auth.log | grep 'Failed password' | sort | uniq -c |
Lời kết
Fail2ban là một công cụ không thể thiếu cho bất kỳ quản trị viên hệ thống nào muốn bảo vệ máy chủ khỏi các cuộc tấn công brute-force. Với hướng dẫn này, hy vọng bạn đã có thể cài đặt và cấu hình thành công Fail2ban trên hệ điều hành Ubuntu 22.04 của mình. Nếu có bất kỳ thắc mắc nào, đừng ngần ngại liên hệ với chúng tôi để được hỗ trợ ngay nhé!