اشتباه رایج در Debian جدید: Fail2ban نصب میشود، ولی چون فایل /var/log/auth.log وجود ندارد، سرویس خطا میدهد یا هیچ IPیی را مسدود نمیکند. راه درست، استفاده از backend = systemd است.
۱. نصب
sudo apt update
sudo apt install -y fail2ban python3-systemd۲. پیکربندی
sudo nano /etc/fail2ban/jail.d/local.conf[DEFAULT]
backend = systemd
banaction = nftables-multiport
banaction_allports = nftables-allports
bantime = 1h
findtime = 10m
maxretry = 5
ignoreip = 127.0.0.1/8 ::1 192.168.10.0/24
[sshd]
enabled = true
port = ssh
[recidive]
enabled = true
backend = auto
logpath = /var/log/fail2ban.log
bantime = 1w
findtime = 1drecidive کسانی را که بارها مسدود شدهاند، برای یک هفته روی همهی پورتها میبندد. این jail لاگ خود Fail2ban را میخواند، پس backend آن فایل است.
۳. اجرا و بررسی
sudo systemctl enable --now fail2ban
sudo systemctl restart fail2ban
sudo fail2ban-client status sshdدر خروجی، Journal matches باید _SYSTEMD_UNIT=ssh.service باشد؛ یعنی لاگ درست خوانده میشود.
۴. مشاهدهی IPهای مسدود در nftables
sudo nft list ruleset | grep -A5 f2b۵. آزاد کردن
sudo fail2ban-client set sshd unbanip 203.0.113.25