Настройка Fail2Ban для защиты ssh

Linux
Linux

Для обеспечения безопасности серверов вывешенных наружу я часто использую утилиту fail2ban для защиты ssh. Поскольку не всегда подключаюсь к серверам со статических IP — адресов (так можно было бы просто прописать разрешtния в Firewall.
Общий смысл — при достижении определенного количества неудачных попыток входа, IP — адрес, с которого были предприняты эти попытки — будет забанен на заданное количество секунд.

Устанавливаем утилиту Fail2Ban

В CentOS

sudo yum install fail2ban
CentOS

В Ubuntu

sudo apt install fail2ban
В Ubuntu

И не забываем включить, для автозапуска

systemctl enable fail2ban
CentOs \ Ubuntu

Файлы конфигурации fail2ban находятся в каталоге /etc/fail2ban/

  • fail2ban.conf – настройки сервиса по умолчанию.
  • fail2ban.d/. – пользовательские настройки сервиса
  • jail.conf – настройки по умолчанию, для защищаемых сервисов
  • jail.d/. – пользовательские настройки для защищаемых сервисов
  • filter.d/. – настройки шаблонов поиска в системных журналах
  • action.d/. – настройки выполняемых действий
  • paths*.conf – настройки путей по умолчанию, для различных операционных систем.

На этом этапе рекомендую сделать резервную копию конфигурации по умолчанию командой:

Для CentOS

mv /etc/fail2ban/jail.conf /etc/fail2ban/jail.old
Для CentOS

Для Ubuntu

mv /etc/fail2ban/jail.d/defaults-debian.conf /etc/fail2ban/jail.d/defaults-debian.conf.old
Для Ubuntu

И создаем новый:

nano /etc/fail2ban/jail.d/sshd.conf
Bash

И дописываем параметры для ssh

[sshd]
enabled = true
bantime = 600
findtime = 650
maxretry = 5
  • enabled = true \ false — включен \ выключен
  • bantime — количество секунд, на которое адрес будет забанен
  • findtime — количество секунд, в течении которых будут считаться попытки авторизации (начиная с первой)
  • maxretry — количество попыток, при превышении которого адрес отправится в бан

Т.е. с данной конфигурацией адрес будет забанен на 600 секунд, если он совершит 5 неудачных попыток входя в течении 650 секунд начиная с первой попытки.

Для применения настроек перезапускаем сервис:

systemctl restart fail2ban

Для просмотра статуса и заблокированных ip можно пользоваться командой

fail2ban-client status sshd

Чтобы добавить адрес в список исключений воспользуйтесь командой

fail2ban-client set sshd addignoreip 123.123.123.123

Чтобы разблокировать забаненый IP

fail2ban-client set sshd unbanip 123.123.123.123

Для просмотра списка исключений:

fail2ban-client get sshd ignoreip

Если хотите убрать адрес из списка исключений:

fail2ban-client set sshd delignoreip 123.123.123.123

Список исключений после перезапуска сервиса или всего сервера сбросится. Для того, чтобы настройка действовала постоянно, нужно дописать это в файл конфигурации. Снова редактируем /etc/fail2ban/jail.d/sshd.conf

Для исключения одного адреса — добавляем:

ignoreip = 123.123.123.123

Если нужно внести несколько адресов или подсети, можно вносить их через пробел:

ignoreip = 123.123.123.123 10.11.12.13/24 172.17.16.0/20

Полезная информация:

fail2ban(8) — Linux man page (die.net)
Fail2Ban — Fail2ban

Оставьте первый комментарий

Отправить ответ

Ваш e-mail не будет опубликован.


*