Категории

Как настроить Fail2Ban для Roundcube: пошаговая инструкция

2025-08-11 14:07:02 | Linux
Настройка  Fail2Ban для Roundcube

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

1. Проверка: где лежит Roundcube и куда пишутся логи

Сначала нужно понять, где установлен Roundcube и где он хранит логи.

sudo ls -la /var/www/html/webmail
sudo ls -la /var/log/roundcube/
    

В моём случае:

2. Проверка логов: есть ли попытки входа?

Смотрим, есть ли в логах строки с неудачными входами:

sudo tail -f /var/log/roundcube/errors.log
    

Пример строки, которую мы ищем:

[08-Aug-2025 17:44:25 +0300]:  IMAP Error: Login failed for вуы against localhost from 77.37.134.141. AUTHENTICATE PLAIN: Authentication failed.
    

Если таких строк нет — Fail2Ban не сможет ничего забанить. Убедитесь, что в Roundcube включено логирование неудачных входов.

3. Включить логирование в Roundcube

Откройте конфиг Roundcube:

sudo nano /var/www/html/webmail/config/config.inc.php
    

Добавьте или проверьте строки:

$config['log_failed_logins'] = true;
$config['log_logins'] = true;
$config['log_driver'] = 'file';
$config['log_file'] = '/var/log/roundcube/errors.log';
    

Это включит запись всех попыток входа, включая неудачные.

4. Создаём фильтр для Fail2Ban

Создаём файл фильтра:

sudo nano /etc/fail2ban/filter.d/roundcube.conf
    

Вставляем регулярное выражение, которое ловит неудачные входы:

[Definition]
failregex = ^$$.*?$$: <.*?> IMAP Error: Login failed for .*? from \\..*$
ignoreregex =
    

Важно: используется — это макрос Fail2Ban для IP-адреса.

5. Тестируем фильтр

Проверяем, сколько совпадений находит фильтр:

sudo fail2ban-regex /var/log/roundcube/errors.log /etc/fail2ban/filter.d/roundcube.conf
    

Если видите:

Failregex: 692 total

— значит, фильтр работает!

6. Настройка тюрьмы (jail)

Открываем основной конфиг Fail2Ban:

sudo nano /etc/fail2ban/jail.local
    

Добавляем секцию для Roundcube:

[roundcube]
enabled   = true
port      = http,https
filter    = roundcube
logpath   = /var/log/roundcube/errors.log
maxretry  = 3
bantime   = 1d
findtime  = 1h
    

7. Игнорируем свой IP

Чтобы не забанить себя, добавьте свой IP в ignoreip:

ignoreip = 127.0.0.1/8 77.37.134.141 188.127.243.55
    

8. Перезапускаем Fail2Ban

sudo systemctl restart fail2ban
    

9. Проверяем статус

sudo fail2ban-client status roundcube
    

Если всё настроено правильно, вы увидите:

Currently banned: 1
Banned IP list: 188.255.78.103
    

10. Тест: попробуйте войти с ошибкой

С чужого устройства или с другого IP:

  1. Зайдите на http://ваш-домен/webmail
  2. Введите неправильный пароль 3 раза
  3. Подождите 10 секунд
  4. Проверьте: sudo fail2ban-client status roundcube

Если IP появился в списке banned — поздравляю, защита работает!

Вывод

Теперь ваш Roundcube защищён от брутфорса. После 3 неудачных попыток входа IP-адрес будет автоматически заблокирован на 24 часа. Это сильно снижает риск подбора пароля и перегрузки сервера.

Fail2Ban — мощный инструмент, и его можно настроить под любое приложение: SSH, Nginx, WordPress, OwnCloud и т.д. Roundcube — отличный пример, как защитить веб-интерфейс с минимальными усилиями.

Совет: сохраните эту статью — в следующий раз будет проще!

Комментарии

Пока нет комментариев. Будьте первым!

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

← Назад к списку статей

DISCLAIMER: Блог-эксперимент

Внимание: Cтатьи здесь сгенерированы нейросетью, пока не правил ошибки, только запустил его да и не до этого. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
НО!
Каждый кейс я реально делал минимум один раз. Серьёзно.
Сервера стоят, клиенты довольны, дата-центры не горят.
Это не просто копипаста — это опыт, выстраданный в бою, просто пересказанный через ИИ.
Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.

Посетителей сегодня: 0


© Digital Specialist | Не являемся сотрудниками Google, Яндекса и NASA
Кто я | HSH | Контакты и регион