Установка и настройка fail2ban на Ubuntu Server 16.04-20.04

0 Comments
fail2ban-logo

Сегодня рассмотрим установку и настройку Fail2Ban на Ubuntu Server 16.04-20.04. Также рассмотрим защиту SSH-сервера от атак типа Brute Force. И так начнем.

Установка Fail2Ban

Устанавливать Fail2Ban будем на операционную систему Ubuntu Server. Перед установкой программы сперва выполним обновление системы:

sudo apt update
sudo apt dist-upgrade -y

Пакет Fail2Ban присутствует в официальном репозитории, поэтому его можно установить одной командой:

sudo apt install fail2ban -y

Настройка Fail2Ban для SSH

Все правки конфигурации мы будем производить в файле /etc/fail2ban/jail.local, этот файл будет подключен автоматически и его настройки имеют наивысший приоритет.

Откройте файл /etc/fail2ban/jail.local:

sudo nano /etc/fail2ban/jail.local

Ubuntu Server 14.04/16.04

Подготовим наш файл конфигурации к мониторингу SSH. Добавим секцию [sshd]:

[sshd]

enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
logpath  = /var/log/auth.log
findtime = 600
maxretry = 3
bantime  = 43200
ignoreip = 10.5.5.0/24
  • enabled — состояние (true/false) фильтра, показывающее, включен он или выключен.
  • filter — какой фильтр применяется (со списком фильтров можно ознакомиться в /etc/fail2ban/filter.d/).
  • action — действия, выполняемые при бане IP-адреса.
  • logpath — файл с логами, которые будет отслеживать fail2ban.
  • ignoreip — указание, какие IP-адреса не должны блокироваться. Вы можете задать через пробел несколько адресов, которые fail2ban не будет учитывать в своих проверках. Например, если у вас постоянный IP-адрес, то вы можете указать его, и тогда при ошибочном вводе пароля ваш IP не будет заблокирован. Также можете указать сразу и подсеть IP-адресов
  • bantime — время в секундах, в течение которого подозрительный IP-адрес будет заблокирован.
  • findtime — интервал времени в секундах, в течение которого программой будет определяться подозрительная активность.
  • maxretry — число неудавшихся попыток авторизации в течение findtime секунд до попадания IP-адреса в бан.

Ubuntu Server 18.04/20.04

В более новых версиях Ubuntu применяется иной подход к написанию секции [sshd].

[sshd]

enabled =  true
port    =  ssh
logpath =  %(sshd_log)s
backend =  %(sshd_backend)s
findtime = 600
maxretry = 3
bantime  = 43200
ignoreip = 10.5.5.0/24

Разберем что же мы указали в нашем jail.local. Бан для IP на 12 часов, если с него в течение 10 минут было произведено 3 неудачных попытки авторизации

Можно подправить значения на свои. Далее сохраняемся (Ctrl+O) и выходим (Ctrl+X), перезапустим fail2ban для применения настроек:

sudo service fail2ban restart

К слову, fail2ban ведёт лог, поэтому если не удаётся перезапустить программу из-за некорректной конфигурации, то стоит заглянуть в лог:

tail -n 20 -f /var/log/fail2ban.log

Параметр -n указывает, сколько последних строк из лога вывести на экран.

Для выполнения проверки достаточно несколько раз ввести неправильный пароль при авторизации и убедиться, что дальнейшие запросы от вас не обрабатываются. Следует обратить внимание на следующее:

  • желательно проверку производить не с того же IP, с которого осуществляете настройку (чтобы иметь возможность разбанить себя и отредактировать конфиг).
  • для проверки время бана лучше выставить поменьше.
  • необходимо убедиться, что IP, с которого производится проверка, не был указан в ignoreip.

Заключение

Мы рассмотрели использование fail2ban для защиты SSH от брутфорса. Аналогичным образом можно защитить FTP, apache, postfix, dovecot и многие другие сервисы. Вот например статьи для защиты WordPress, защита OpenVPN или защита phpmyadmin .Это убережёт вас от проникновения злоумышленников на сервер путём подбора пароля.

Если есть вопросы, то пишем в комментариях.

Также можете вступить в Телеграм канал, ВК или подписаться на Twitter. Ссылки в шапки страницы.
Заранее всем спасибо!!!

RSS

Добавление RSS-ленты на главную страницу этого сайта не поддерживается, так как это может привести к зацикливанию, замедляющему работу вашего сайта. Попробуйте использовать другой блок, например блок Последние записи, для отображения записей сайта.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Как подключить удалённую директорию через SSH.
ssh-logo

Сегодня в статье поговорим о том, как можно подключить удаленную директорию расположенную на сервере к нам на локальный ПК, также Читать

Запуск команд или скрипта через SSH
ssh-logo

Сегодня рассмотрим примеры для запуска команд или скрипта через SSH соединения. Научимся запускать наши команды из одной станции Linux в Читать

Копирование файлов c архивированием по SSH на лету.
ssh-logo

Сегодня рассмотрим Копирование файлов c архивированием на лету по SSH протоколу, используя TAR. Синтаксис команды tar tar [-] A --catenate Читать

Как увеличить время сессий SSH на Linux
ssh-logo

Сегодня в статье поговорим о том как можно увеличить время вашей сессии SSH на операционных системах Linux. В качестве примера Читать

5 1 голос
Рейтинг статьи

Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

1 Комментарий
новее
старее большинство голосов
Inline Feedbacks
Просмотреть все комментарии
Павел
Павел
05.02.2022 14:17

Напишите пожалуйста как можно настроить fail2ban для postfix. Заранее спасибо.

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов cookie) с использованием трекеров "Google Analytics" и "Yandex.Metrics". Порядок обработки Ваших персональных данных, а также реализуемые требования к их защите, содержатся в Политике конфиденциальности.
Принять