Fail2ban — это инструмент предотвращения вторжений, который защищает компьютеры от грубой силы и других атак, тщательно отслеживая файлы журналов. Затем инструмент блокирует подозрительные IP-адреса на основе предопределенного количества неудачных попыток входа в систему, чтобы остановить атаки. Fail2Ban использует тюрьмы для мониторинга файлов журнала на наличие ошибок аутентификации и других записей, которые можно считать подозрительными действиями.
Его можно настроить для отправки электронного письма и/или блокировки IP-адреса злоумышленника на заранее определенный период времени. По истечении периода блокировки атакующий IP-адрес будет автоматически разблокирован. В этом руководстве мы покажем вам, как установить и настроить Fail2ban в Ubuntu 22.04.
Предпосылки
- Сервер с Ubuntu 22.04 в качестве ОС
- Права пользователя: пользователь root или обычный пользователь с привилегиями sudo
Шаг 1. Войдите на сервер
Во-первых, войдите на свой сервер Ubuntu 22.04 через SSH как пользователь root:
|
|
При необходимости замените «root» на пользователя с правами sudo. Кроме того, замените «IP_Address» и «Port_Number» соответствующим IP-адресом вашего сервера и номером порта SSH.
Вы можете проверить, установлена ли на вашем сервере правильная версия Ubuntu, с помощью следующей команды:
|
|
Вы должны получить такой вывод:
|
|
Шаг 2. Обновите систему
Прежде чем начать, вы должны убедиться, что все пакеты Ubuntu 22.04, установленные на сервере, обновлены. Вы можете сделать это, выполнив следующие команды:
|
|
Шаг 3. Установите Fail2ban
Fail2ban доступен в репозитории Ubuntu по умолчанию, поэтому мы можем просто запустить следующую команду, чтобы установить его.
|
|
Затем вызовите эту команду, чтобы включить и запустить fail2ban.
|
|
Fail2ban теперь установлен и работает, вы можете убедиться в этом, выполнив эту команду:
|
|
Шаг 4. Настройте Fail2ban
В Ubuntu вы увидите файлы конфигурации в /etc/fail2ban/jail.conf и /etc/fail2ban/jail.d/defaults-debian.conf. Fail2ban сначала загрузит .local перед загрузкой файлов .conf. Итак, необходимо создать копию файла jail.conf по умолчанию как jail.local. Все настроим, изменив файл jail.local. Также обратите внимание, что не рекомендуется изменять файлы .conf по умолчанию, так как они могут быть перезаписаны при обновлении.
|
|
Белый список IP-адресов
Первое, что вам нужно сделать, это внести свой сервер в белый список, давайте отредактируем /etc/fail2ban/jail.local и раскомментируем строку «ignoreip». Вы также можете добавить другие IP-адреса, и они должны быть разделены пробелом или запятой.
|
|
Найдите строку «ignoreip» и раскомментируйте ее.
|
|
Это должно выглядеть так:
|
|
Давайте оставим редактор открытым и перейдем к следующему шагу.
Настройка времени запрета
Время бана — это когда IP-адрес блокируется после определенного количества неудачных попыток аутентификации. По умолчанию значение равно 10 минутам с 10-минутным поиском при пяти повторных попытках. Это означает, что джейл Fail2ban с активной фильтрацией заблокирует IP-адрес злоумышленника на 10 минут после того, как он повторит ту же атаку через 10 минут (время поиска) x 5 раз (повторные попытки).
Рекомендуется установить разное время бана, так как некоторые баны должны автоматически быть дольше других, включая повторные попытки, которые должны быть меньше или больше. Это личное предпочтение, но предпочтительнее установить время, достаточное для прерывания злонамеренных действий пользователя. Если вы хотите навсегда заблокировать атакующий IP-адрес, вы можете установить значение времени бана на -1.
В этом уроке мы собираемся настроить время бана до 60 минут.
|
|
Уведомления по электронной почте
Если вы хотите получать электронное письмо каждый раз, когда fail2ban блокирует IP-адрес в тюрьме, вы можете установить адрес электронной почты в тюрьме. Все еще в /etc/fail2ban/jail.local нам нужно изменить эти значения. Обязательно установите destemail на свой фактический адрес электронной почты.
|
|
Если вы хотите получать уведомление по электронной почте, когда IP-адрес заблокирован из-за неудачной попытки входа в систему SSH, вы можете поместить эту строку в тюрьму [sshd].
|
|
«mwl» после «action_» говорит fail2ban отправлять вам электронные письма вместе с журналами. Если вы не хотите получать журнал, просто используйте «mw».
Кроме того, убедитесь, что ваша тюрьма «sshd» включена. Это должно выглядеть так.
|
|
Сохраните изменения, выйдите из редактора nano и перезапустите fail2ban, чтобы загрузить новую конфигурацию.
|
|
Fail2ban тюрьмы
В fail2ban джейл — это комбинация фильтра и одного или нескольких действий. Фильтр может определять регулярное выражение, соответствующее шаблону, соответствующему неудачной попытке входа в систему или другим подозрительным действиям. Действием может быть команда, которая выполняется, когда определенный фильтр перехватывает неправомерный IP-адрес. По умолчанию есть несколько джейлов, которые мы можем использовать, джейлы с фильтрами и действиями, созданные сообществом и охватывающие многие популярные серверные приложения. На этом шаге мы настроим джейлы пакета fail2ban по умолчанию.
Fail2ban по умолчанию отключает джейлы.
Чтобы включить джейл, обязательно добавьте «enabled = true» под соответствующим именем джейла.
Заблокировать/разблокировать IP
Теперь, когда fail2ban работает с некоторыми включенными тюрьмами, вам нужно знать некоторые основные рабочие команды, чтобы заблокировать/разблокировать IP-адрес. Мы можем использовать команду fail2ban-client для выполнения действия.
Чтобы заблокировать IP-адрес, поместите его в тюрьму sshd и выполните эту команду.
|
|
Иногда вы можете обнаружить, что fail2ban случайно заблокировал IP-адрес, и вы хотите разблокировать его. Вы можете запустить эти команды ниже, чтобы найти имя тюрьмы, которая запретила IP-адрес.
|
|
Получив имя тюрьмы, вы можете запустить эту команду, чтобы окончательно разбанить ее. Не забудьте заменить [IP_ADDRESS] фактическим IP-адресом.
|
|
Поздравляем! Вы успешно установили и настроили Fail2ban на Ubuntu 22.04.
Если вам понравилось этот пост о том, как установить и использовать Fail2ban на Ubuntu 22.04, поделитесь им с друзьями в социальных сетях. Спасибо.