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 firewall rules để block ngay địa chỉ IP với một khoảng thời gian định trước.
1. Cài đặt
apt search fail2ban
sudo apt install fail2ban
2. Bật dịch vụ Fail2Ban
sudo systemctl start fail2ban
3. Kiểm tra tình trạng dịch vụ
sudo systemctl status fail2ban
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; preset: enabled)
Drop-In: /etc/systemd/system/fail2ban.service.d
└─override.conf
Active: active (running) since Mon 2024-06-03 19:03:56 +07; 2 weeks 5 days ago
Docs: man:fail2ban(1)
Main PID: 706 (fail2ban-server)
Tasks: 5 (limit: 1559)
CPU: 1h 3min 33.666s
CGroup: /system.slice/fail2ban.service
└─706 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
Jun 03 19:03:56 uptime59 systemd[1]: Started fail2ban.service-Fail2Ban Service.
Jun 03 19:06:00 uptime59 fail2ban-server[706]: Server ready
4. Kiểm tra log
sudo tail /var/log/fail2ban.log
5. Kiểm tra file cấu hình
sudo nano /etc/fail2ban/fail2ban.conf
sudo nano /etc/fail2ban/jail.conf
6. Thiết lập khởi động cùng hệ thống
sudo systemctl enable fail2ban
Kiểm tra thiết lập với sysstemd
Ta biết rằng fail2ban sử dụng nftables để điều khiển chặn lọc.
cat /etc/systemd/system/fail2ban.service.d/override.conf
[Unit]
Requires=nftables.service
PartOf=nftables.service
[Install]
WantedBy=multi-user.target nftables.service
7. Các lệnh fail2ban-client với dịch vụ ssh
7.1 Kiểm tra tình trạng
sudo fail2ban-client status sshd
7.2 Kiểm tra tình trạng rule firewall nftables
sudo nft -s list ruleset
7.3 Xóa bỏ 1 IP trong block list
sudo fail2ban-client remove “192.168.1.10”
sudo fail2ban-client set sshd unbanip “192.168.1.10”
sudo fail2ban-client status sshd
8. Copy cấu hình ban các service
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
ls /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
9. Khởi động lại dịch vụ
sudo systemctl restart fail2ban