Скопируйте этот код в новый файл /etc/fail2ban/filter.d/sshd-root.conf:
[INCLUDES]
# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf
[Definition]
_daemon = sshd
failregex = ^%(__prefix_line)sFailed (?:password|publickey) for root from <HOST>(?: port \d*)?(?: ssh\d*)?$
ignoreregex =
ПОЖАЛУЙСТА, СОЗНАЙТЕ, что вам, возможно, придется отредактировать failregex, чтобы точно определить неудачные попытки входа в систему root - используйте:
fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd-root.conf
чтобы проверить, что он определяет правильные записи журнала.
Затем вам нужно отредактировать свой jail.local, чтобы использовать новый фильтр - добавьте что-то вроде:
[ssh]
enabled = true
port = 1:65535
filter = sshd-root
logpath = /var/log/auth.log
bantime = 604800
maxretry = 3
Очевидно, вы должны настроить эти значения в соответствии с вашими потребностями. Приведенные выше настройки отбросят все входящие пакеты с нарушающего IP-адреса после трех попыток войти в систему как пользователь root и снова освободят IP-адрес через одну неделю.