Защищаем сервер от брутофорса посредством fail2ban, первым делом подключаем EPEL репозиторий:
устанавливаем fail2ban:
копируем и редактируем конфигурационный файл:
настраиваем исключения для IP адресов, время бана, поиск за период времени и сколько ошибочных попыток было за это время, настраивая параметры в секции [Default] (время указывается в секундах):
включаем блокирование при попытке подбора пароля к доступу ssh, выставив параметр enabled в true:
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=user@domain.local, sender=fail2ban@domain.local]
logpath = /var/log/secure
maxretry = 4
где dest адрес получателя уведомления, sender адрес отправителя, если рассматривать более подробно:
далее определяем глобальный лог файл для fail2ban в файле /etc/fail2ban/fail2ban.conf, изменив параметр logtarget, на:
добавляем сервис в автозагрузку:
и запускаем:
проверяем наличие правил в iptables:
при необходимости можно посмотреть дату и время ошибочных попыток:
или количество ошибочных попыток:
для удаления забаненного IP используем команду:
так же проверить статус сервиса можно:
текущее состояние fail2ban по ssh-iptables:
fail2ban-client -i
Fail2Ban v0.8.10 reads log file that contains password failure report
and bans the corresponding IP addresses using firewall rules.
fail2ban> status ssh-iptables
Status for the jail: ssh-iptables
|- filter
| |- File list: /var/log/secure
| |- Currently failed: 1
| `- Total failed: 23
`- action
|- Currently banned: 2
| `- IP list: xx.xx.xxx.xxx xxx.xx.x.xx
`- Total banned: 4
перезапустить fail2ban можно так:
или стандартным методом: