Fail2ban — это инструмент предотвращения вторжений, который защищает компьютеры от грубой силы и других атак, тщательно отслеживая файлы журналов. Затем инструмент блокирует подозрительные IP-адреса на основе предопределенного количества неудачных попыток входа в систему, чтобы остановить атаки. Fail2Ban использует тюрьмы для мониторинга файлов журнала на наличие ошибок аутентификации и других записей, которые можно считать подозрительными действиями.

Его можно настроить для отправки электронного письма и/или блокировки IP-адреса злоумышленника на заранее определенный период времени. По истечении периода блокировки атакующий IP-адрес будет автоматически разблокирован. В этом руководстве мы покажем вам, как установить и настроить Fail2ban в Ubuntu 22.04.

Предпосылки

  • Сервер с Ubuntu 22.04 в качестве ОС
  • Права пользователя: пользователь root или обычный пользователь с привилегиями sudo

Шаг 1. Войдите на сервер

Во-первых, войдите на свой сервер Ubuntu 22.04 через SSH как пользователь root:

1
ssh root@IP_Address -p Port_number

При необходимости замените «root» на пользователя с правами sudo. Кроме того, замените «IP_Address» и «Port_Number» соответствующим IP-адресом вашего сервера и номером порта SSH.

Вы можете проверить, установлена ​​ли на вашем сервере правильная версия Ubuntu, с помощью следующей команды:

1
lsb_release -a

Вы должны получить такой вывод:

1
2
3
4
5
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04 LTS
Release: 22.04
Codename: jammy

Шаг 2. Обновите систему

Прежде чем начать, вы должны убедиться, что все пакеты Ubuntu 22.04, установленные на сервере, обновлены. Вы можете сделать это, выполнив следующие команды:

1
sudo apt-get update -y && sudo apt-get upgrade -y

Шаг 3. Установите Fail2ban

Fail2ban доступен в репозитории Ubuntu по умолчанию, поэтому мы можем просто запустить следующую команду, чтобы установить его.

1
sudo apt install fail2ban -y

Затем вызовите эту команду, чтобы включить и запустить fail2ban.

1
sudo systemctl enable --now fail2ban.service

Fail2ban теперь установлен и работает, вы можете убедиться в этом, выполнив эту команду:

1
sudo systemctl status fail2ban.service

Шаг 4. Настройте Fail2ban

В Ubuntu вы увидите файлы конфигурации в /etc/fail2ban/jail.conf и /etc/fail2ban/jail.d/defaults-debian.conf. Fail2ban сначала загрузит .local перед загрузкой файлов .conf. Итак, необходимо создать копию файла jail.conf по умолчанию как jail.local. Все настроим, изменив файл jail.local. Также обратите внимание, что не рекомендуется изменять файлы .conf по умолчанию, так как они могут быть перезаписаны при обновлении.

1
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Белый список IP-адресов

Первое, что вам нужно сделать, это внести свой сервер в белый список, давайте отредактируем /etc/fail2ban/jail.local и раскомментируем строку «ignoreip». Вы также можете добавить другие IP-адреса, и они должны быть разделены пробелом или запятой.

1
sudo nano /etc/fail2ban/jail.local

Найдите строку «ignoreip» и раскомментируйте ее.

1
#ignoreip = 127.0.0.1/8 ::1

Это должно выглядеть так:

1
ignoreip = 127.0.0.1/8 ::1

Давайте оставим редактор открытым и перейдем к следующему шагу.

Настройка времени запрета

Время бана — это когда IP-адрес блокируется после определенного количества неудачных попыток аутентификации. По умолчанию значение равно 10 минутам с 10-минутным поиском при пяти повторных попытках. Это означает, что джейл Fail2ban с активной фильтрацией заблокирует IP-адрес злоумышленника на 10 минут после того, как он повторит ту же атаку через 10 минут (время поиска) x 5 раз (повторные попытки).

Рекомендуется установить разное время бана, так как некоторые баны должны автоматически быть дольше других, включая повторные попытки, которые должны быть меньше или больше. Это личное предпочтение, но предпочтительнее установить время, достаточное для прерывания злонамеренных действий пользователя. Если вы хотите навсегда заблокировать атакующий IP-адрес, вы можете установить значение времени бана на -1.

В этом уроке мы собираемся настроить время бана до 60 минут.

1
bantime = 60m

Уведомления по электронной почте

Если вы хотите получать электронное письмо каждый раз, когда fail2ban блокирует IP-адрес в тюрьме, вы можете установить адрес электронной почты в тюрьме. Все еще в /etc/fail2ban/jail.local нам нужно изменить эти значения. Обязательно установите destemail на свой фактический адрес электронной почты.

1
2
destemail = you@yourdomain.com
sender = fail2ban@host.yourserver.com

Если вы хотите получать уведомление по электронной почте, когда IP-адрес заблокирован из-за неудачной попытки входа в систему SSH, вы можете поместить эту строку в тюрьму [sshd].

1
action = %(action_mwl)s

«mwl» после «action_» говорит fail2ban отправлять вам электронные письма вместе с журналами. Если вы не хотите получать журнал, просто используйте «mw».

Кроме того, убедитесь, что ваша тюрьма «sshd» включена. Это должно выглядеть так.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
[sshd]

# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
#mode = normal
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
enabled = true
action = %(action_mwl)s

Сохраните изменения, выйдите из редактора nano и перезапустите fail2ban, чтобы загрузить новую конфигурацию.

1
sudo systemctl restart fail2ban.service

Fail2ban тюрьмы

В fail2ban джейл — это комбинация фильтра и одного или нескольких действий. Фильтр может определять регулярное выражение, соответствующее шаблону, соответствующему неудачной попытке входа в систему или другим подозрительным действиям. Действием может быть команда, которая выполняется, когда определенный фильтр перехватывает неправомерный IP-адрес. По умолчанию есть несколько джейлов, которые мы можем использовать, джейлы с фильтрами и действиями, созданные сообществом и охватывающие многие популярные серверные приложения. На этом шаге мы настроим джейлы пакета fail2ban по умолчанию.

Fail2ban по умолчанию отключает джейлы.

Чтобы включить джейл, обязательно добавьте «enabled = true» под соответствующим именем джейла.

Заблокировать/разблокировать IP

Теперь, когда fail2ban работает с некоторыми включенными тюрьмами, вам нужно знать некоторые основные рабочие команды, чтобы заблокировать/разблокировать IP-адрес. Мы можем использовать команду fail2ban-client для выполнения действия.

Чтобы заблокировать IP-адрес, поместите его в тюрьму sshd и выполните эту команду.

1
sudo fail2ban-client set sshd banip [IP_ADDRESS]

Иногда вы можете обнаружить, что fail2ban случайно заблокировал IP-адрес, и вы хотите разблокировать его. Вы можете запустить эти команды ниже, чтобы найти имя тюрьмы, которая запретила IP-адрес.

1
sudo fail2ban-client status | grep "Jail list" | sed -E 's/^[^:]+:[ \t]+//' | sed 's/,//g'

Получив имя тюрьмы, вы можете запустить эту команду, чтобы окончательно разбанить ее. Не забудьте заменить [IP_ADDRESS] фактическим IP-адресом.

1
sudo fail2ban-client set sshd unbanip [IP_ADDRESS]

Поздравляем! Вы успешно установили и настроили Fail2ban на Ubuntu 22.04.

Если вам понравилось этот пост о том, как установить и использовать Fail2ban на Ubuntu 22.04, поделитесь им с друзьями в социальных сетях. Спасибо.