В этой статье мы подробно расскажем, как настроить Fail2Ban в Ubuntu 25.04 для автоматической блокировки атак методом перебора на систему, осуществляемых через SSH.
Что такое Fail2Ban?
Fail2Ban — это утилита на основе Python, которую необходимо установить в системе вручную. Она помогает защитить систему от сетевых атак, таких как перебор паролей.
При возникновении такой атаки Fail2Ban ожидает срабатывания определённых правил в файлах конфигурации, прежде чем предпринять необходимые действия, например заблокировать целевой IP-адрес и зарегистрировать инцидент.
Ограничение на целевой IP-адрес снова снимается в соответствии с правилами, указанными в файлах конфигурации, которые хранятся в формате conf по пути /etc/fail2ban/.
В этом руководстве я расскажу вам, как установить и настроить Fail2Ban в Ubuntu 25.04, а также как настроить его для предотвращения атак методом перебора.
Шаг 1. Установка Fail2Ban
Сначала нам нужно убедиться, что список пакетов и база данных пакетов обновлены.
$ sudo apt update && sudo apt upgrade -y
Далее мы можем приступить к установке Fail2Ban с помощью менеджера пакетов APT.
$ sudo apt install fail2ban
После завершения установки вы можете проверить её, посмотрев версию.
$ fail2ban-server --version
Если при выполнении инструкции у вас возникнут какие-либо проблемы, обязательно укажите эту версию в комментариях.
Шаг 2: Настройте Fail2Ban
Конфигурации Fail2Ban хранятся в каталоге «/etc/fail2ban«, при этом некоторые конфигурационные файлы сгруппированы в каталогах «action.d«, «fail2ban.d«, «filter.d» и «jail.d«, в то время как важные конфигурационные файлы, такие как «fail2ban.conf«, «jail.conf» и «jail.local«, находятся в родительском каталоге.
В первую очередь мы сосредоточимся на изменении файла jail.conf для настройки Fail2Ban на предотвращение атак методом перебора. Итак, что содержит этот файл? Он включает в себя конфигурацию по умолчанию для различных служб, таких как SSH.
Обычно мы не вносим изменения непосредственно в этот файл. Вместо этого мы создаем в том же каталоге копию под названием «jail.local» и вносим изменения туда. Итак, давайте быстро создадим копию с помощью следующей команды:
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Затем мы изменим этот файл конфигурации в соответствии с нашими требованиями, используя текстовый редактор по нашему выбору (я предпочитаю Nano).
$ sudo nano /etc/fail2ban/jail.local
Открыв файл, найдите директиву [SSH], которая часто помечается префиксом #, поэтому обязательно удалите его, а затем скопируйте следующее содержимое под ним.
[ssh] enabled = true port = ssh filter = sshd maxretry = 3 findtime = 5m bantime = 24h
Убедитесь, что это директива [SSH], а не [SSHD]. В противном случае вам нужно переименовать её в [SSH]. Далее мы вкратце объясним, как работает конфигурация, которую мы вставили.
enabled = trueозначает, что конфигурация активна.port = sshиfilter = sshdопределяют имя службы.maxrety = 3определяет максимальное количество неудачных попыток входа в систему, после которых IP-адрес блокируется (например, 3 означает три попытки).findtime = 5mуказывает продолжительность периода, в течение которого должно быть выполнено условие (например, 5 минут означает, что пользователь должен трижды войти в систему с ошибкой в течение пяти минут, чтобы было выполнено действие).bantime = 24hопределяет, на какой срок IP-адрес блокируется (или заносится в чёрный список), где 24 часа означают полный день.
Значение конфигурации не является отраслевым стандартом, которому следует слепо следовать. Вы можете изменить его в соответствии со своими потребностями или требованиями. После завершения редактирования файла конфигурации он должен выглядеть примерно так:

Сохраните и закройте файл. Если вы используете nano, нажмите Ctrl+X, затем Y, затем Enter для сохранения и выхода.
Шаг 3. Перезапустите службу
После внесения изменений необходимо убедиться, что служба SSH запущена и включена, что позволит ей автоматически запускаться при загрузке системы. Для этого выполните следующие две команды:
$ sudo systemctl restart ssh $ sudo systemctl enable ssh
Далее нам нужно перезапустить и включить службу Fail2Ban с помощью следующей команды:
$ sudo systemctl restart fail2ban $ sudo systemctl enable fail2ban
Теперь мы готовы проверить, будет ли заблокирована попытка брутфорса через SSH.
Шаг 4. Проверка брутфорса через SSH
Чтобы проверить, блокируются ли множественные попытки SSH-подключения (или атаки методом брутфорса), используйте свой локальный IP-адрес (который можно узнать с помощью команды ip addr show), и из своей локальной сети (или из той же системы, что вполне допустимо) попытайтесь несколько раз войти в систему с настроенным Fail2Ban, пока не будет достигнут лимит.
Во время или после неудачных попыток входа в систему вы можете просмотреть журналы Fail2Ban, чтобы узнать, был ли заблокирован IP-адрес.
$ sudo tail -f /var/log/fail2ban.log
После блокировки IP-адреса со стороны пользователя при попытке войти в систему через SSH появится следующее сообщение.

Чтобы разблокировать IP-адрес пользователя в Fail2Ban, укажите его IP-адрес с помощью следующей команды:
$ sudo fail2ban-client set sshd unbanip 192.168.0.101
Заключение
В этой статье вы узнали, как установить и настроить Fail2Ban для блокировки IP-адресов, с которых осуществляется брутфорс системы через SSH. Если у вас есть вопросы по этой теме, задавайте их в комментариях.