Fail2Ban là một ứng dụng chạy nền theo dõi log file để phát hiện những địa chỉ IP đăng nhập sai password SSH nhiều lần. Sau đó, Fail2Ban sử dụng IPtables để block ngay địa chỉ IP với một khoảng thời gian định trước.

Hướng dẫn cài đặt và cấu hình Fail2Ban bảo vệ SSH trên Ubuntu 24.04

Cài đặt Fail2Ban

Chúng ta sẽ cài đặt Fail2Ban thông qua Repo EPEL.

apt -y install fail2ban

Kiểm tra trạng thái và bật khởi động cùng hệ thống.

systemctl status fail2ban
systemctl enable fail2ban

Cấu hình mặc định của Fail2Ban khá là ổn rồi, chúng ta không cần thiết phải cập nhật mà đến bước tiếp theo.

Cấu hình Fail2Ban bảo vệ SSH

Cấu hình mặc định ở tập tin /etc/fail2ban/jail.conf cũng đã khá tốt, cho nên không cần chỉnh sửa tại đây cũng được.

Tạo tập tin cấu hình /etc/fail2ban/jail.local.

[DEFAULT]
# Ban hosts for one hour:
bantime 	= 3600

# Override /etc/fail2ban/jail.d/00-firewalld.conf:
banaction = iptables-multiport

[sshd]
enabled  	= true
filter   	= sshd
action   	= iptables[name=SSH, port=ssh, protocol=tcp]
logpath 	= %(sshd_log)s
backend 	= %(sshd_backend)s
maxretry 	= 5
bantime 	= 3600

Khởi động lại Fail2Ban

systemctl restart fail2ban

Cuối cùng kiểm tra lại lại Iptables xem đã có rule của Fail2Ban chưa:

iptables -L

Kết quả như sau là được.

Chain INPUT (policy ACCEPT)
target prot opt source destination
f2b-SSH tcp -- anywhere anywhere tcp dpt:EtherNet/IP-1

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain f2b-SSH (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere

Theo dõi SSH login

– Bạn có thể sử dụng lệnh sau để biết được VPS/Server đã từng bị tấn công SSH chưa:

cat /var/log/secure | grep 'Failed password' | sort | uniq -c

– Để xem IP đã bị banned bởi Fail2Ban bạn sử dụng lệnh:

fail2ban-client status sshd

– Để xóa IP khỏi danh sách banned, bạn sử dụng lệnh sau

fail2ban-client set sshd unbanip 1.2.3.4

Chúc các bạn thành công!

5/5 (1 bình chọn)