Изменение настроек fail2ban для блокировки с помощью pf
Привет, я некомпетентен. Сегодня статья о полной некомпетентности.
Ого!? В fail2ban.log появились странные логи!
Ну ладно, я собирался посмотреть, что было забанено fail2ban... и тут увидел
2024-07-24 20:52:43,027 fail2ban.utils [39963]: INFO HINT on 127: "Command not found". Make sure that all commands
in "{ iptables -w -C f2b-sshd -j RETURN >/dev/null 2>&1; } || { iptables -w -N f2b-sshd || true; iptables -w -A f2b-sshd -j RE
TURN; }
for proto in $(echo 'tcp' | sed 's/,/ /g'); do
{ iptables -w -C INPUT -p $proto -m multiport --dports ssh -j f2b-sshd
>/dev/null 2>&1; } || { iptables -w -I INPUT -p $proto -m multiport --dports ssh -j f2b-sshd; }
done" are in the PATH of fail
2ban-server process (grep -a PATH= /proc/pidof -x fail2ban-server/environ). You may want to start "fail2ban-server -f" separa
tely, initiate it with "fail2ban-client reload" in another shell session and observe if additional informative error messages a
ppear in the terminals.
Ого, кажется, команда не найдена... Я совсем забыл!!!
В случае с FreeBSD управление осуществляется через pf... Для GNU/Linux iptables подходит, но я совсем забыл об этом, хотя работаю с BSD... Поэтому я снова настрою его, используя этот сайт в качестве справочника... https://dbdemon.com/pf_and_fail2ban Итак, поскольку мой собственный сервер называется $exsrv1,
# Fail2Ban
table <f2b> persist
anchor "f2b/*"
block drop in log quick on $exsrv1 from <f2b> to any
Вот так я настроил. Кстати, можно ли использовать регулярные выражения вроде f2b/*...? И я перенастроил jail.conf. Я просто использовал секцию Default.
[DEFAULT]
banaction = pf[actiontype=<allports>]
banaction_allports = pf[actiontype=<allports>]
[sshd]
enabled = true
port = ssh
logpath = /var/log/auth.log
bantime = 1w
findtime = 1d
maxretry = 5
[postfix]
enabled = true
port = smtp,ssmtp,submission
logpath = /var/log/maillog
bantime = 1w
findtime = 1d
maxretry = 10
[dovecot]
enabled = true
port = pop3,pop3s,imap,imaps,submission
logpath = /var/log/maillog
bantime = 1w
findtime = 1d
maxretry = 10
Что касается файла конфигурации, он уже настроен по умолчанию в action.d/pf.conf, и если посмотреть,

похоже, что вызывать команды можно без особых изменений. После перезапуска fail2ban и pf, и проверки логов fail2ban, похоже, что ранее забаненные IP-адреса были сохранены.
# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 1
| |- Total failed: 1
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 37
|- Total banned: 37
`- Banned IP list: *
Теперь я буду наблюдать за этим.
Ну вот. До новых встреч.