Защита SSH — fail2ban

Заказал новый VPS под пару сайтов с небольшой нагрузкой. Привык к хостингам, где не требуется дополнительная настройка. Во время переноса сайтов неожиданно остановился mysqld и из-за ошибки нехватки памяти mysqld не запускался. Стал разбираться куда делась вся оперативная память, заодно немного разобрал /var/log/secure

вот что обнаружил …

Более 30 тысяч попыток брутфорса в сутки! Интересно, если бы сервер простоял без внимания ещё пару суток…

Пришлось обратиться к стандартному средству защиты в CentOS — fail2ban

Настройка Fail2ban

Создание локальной копии конфигурационного файла jail.conf

Защита SSH

Активируем секцию [ssh] в jail.local

  • enabled = true — активация секции.
  • port — имя сервиса/числовой номер порта
  • filter — название фильтра, по-умолчанию /etc/fail2ban/filter.d/sshd.conf
  • action — действия при обнаружении атакующего, описаны в файле /etc/fail2ban/action.d
  • logpath — путь до файла предназначенного для записи информации о попытках получения доступа к серверу
  • maxretry — максимальное число попыток для атакующей стороны
  • bantime — время блокировки атакующего IP  (в секундах)

Что данная запись означает? После 3й неудачной попытки авторизации на сервер — ip адрес (с которого выполнялась авторизация) заносится в чёрный список на 10 минут.

Дополнительная защита SSH

Перезапуск fail2ban

Лог fail2ban

Если всё настроено правильно, то можно увидеть следующую «картину»:

В процессе работы приложение банит какие-то адреса, какие-то удаляет из чёрного списка.

Количество атак на сервер после настройки fail2ban

fail2ban был успешно активирован 17 ноября

Комментарии излишни.