Настройка блокировок DoSFilter в Zimbra

  • Автор записи:
  • Рубрика записи:Zimbra

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

DoSFilter в многосерверных системах, как правило, проще настроить, чем Fail2ban, поскольку в многосерверной системе хост-регистратор обычно является и одним из серверов почтовых ящиков, а выполнить блокировку Fail2ban вы можете на MTA и прокси-серверах. Выполнить всю эту работу сложно, и если вы используете Network Edition, служба поддержки Zimbra может помочь вам устранить неполадки с DoSFilter, с Fail2ban же вам придется разбираться самому. В системах с одним сервером Zimbra Fail2ban работает нормально, но вам потребуется получить обновленные файлы конфигурации «jail» Zimbra, что является еще одной причиной отдать предпочтение DoSFilter перед Fail2ban.

Поскольку настройки DoSFilter выполняются только через командную строку, а политика блокировки при неудачном входе в систему может быть настроена через консоль администратора, я часто сталкиваюсь с системными администраторами, которые из лучших побуждений вносят такие настройки, которые блокируют почтовые ящики пользователей из-за почти непрерывных атак методом грубой силы, с которыми мы все сталкиваемся.
Хитрость заключается в том, чтобы сделать DoSFilter вашей первой линией защиты: DoSFilter блокирует или ограничивает IP-адрес до того, как сработает политика блокировки при неудачном входе в систему. Таким образом, ваши законные пользователи не будут заблокированы из-за грубой атаки откуда-то еще.

Шаги реализации:
Давайте сначала настроим DoSFilter для ограничения на 30 минут злоумышленников, совершивших более 10 неудачных входов в систему, а также злоумышленников, которые пытаются перегрузить наш сервер более чем 100 запросами в секунду. От имени пользователя Zimbra, запустите следующие команды:

zmprov mcf zimbraHttpDosFilterDelayMillis 20 
zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 250 
zmprov mcf zimbraInvalidLoginFilterDelayInMinBetwnReqBeforeReinstating 30 
zmprov mcf zimbraInvalidLoginFilterMaxFailedLogin 10 
zmprov mcf zimbraInvalidLoginFilterReinstateIpTaskIntervalInMin 5

Вышеупомянутые действия позаботятся о регулировании отдельных некорректно работающих IP-адресов. Теперь нам надо заблокировать почтовый ящик на час, если в течение одного часа произойдет более 15 неудачных попыток входа в систему. Для каждого класса обслуживания в вашей системе. Перейдите в консоли администратора в раздел «Главная» > «Настроить» > «Класс обслуживания» > (каждый класс обслуживания) > «Дополнительно» > «Политика неудачного входа» и установите следующие параметры:

Если вы работаете в крупной организации и у вас есть филиалы с большим количеством пользователей, которые постоянно пытаются использовать неверные пароли, есть вероятность, что DoSFilter может в конечном итоге задушить работу всегофилиала. В этом случае вам придется внести в «белый список» IP-адреса этих филиалов (обычно WAN IP маршрутизатора офиса филиала) с помощью DoSFilter. Это также делается только из командной строки. 
Если WAN-IP вашего филиала — 35.171.80.173, выполните в консоли от имени пользователя zimbra 

zmprov mcf +zimbraHttpThrottleSafeIPs 35.171.80.173/32

Эти три шага — включение DoSFilter, установка политики неудачного входа на более высокий порог чувствительности и внесение в белый список IP-адресов WAN вашего филиала — будут иметь большое значение для блокировки действий злоумышленников, сохраняя при этом Zimbra доступной для ваших пользователей.

Как только DoSFilter заработает и начнет блокировать IP-адреса, вам, возможно захочется узнать, какие IP-адреса DoSFilter блокирует и кто вызывает проблему. Эти знания могут стать актуальны, в случае звонков из филиала, пользователи которого страдают от сообщения «network error» в результате того, что один или несколько пользователей неоднократно повторили неверный пароль.

К сожалению, в консоли администратора для этого нет такого удобного инструмента, как для просмотра заблокированных учетных записей, поэтому нам нужно перейти к командной строке и от имени пользователя Zimbra запустить

cat ~/log/mailbox.log | grep "suspended, for repeated failed login."

Таким образом вы получите список IP-адресов, которые DoSFilter в настоящее время блокирует. 
Теперь нам нужно выяснить, кто является причиной блокировки, поэтому снова от имени zimbra запустите

cat ~/log/mailbox.log | grep "authentication failed"

и вы получите список всех неудачных попыток аутентификации. 
В строках ищите раздел « oip=<IP-адрес> » («oip» означает «Исходный IP-адрес», т. е. IP-адрес, который DoSFilter выберет для блокировки, когда плохие запросы превысят пороговое значение). Сопоставьте адрес oip с IP-адресом, который блокирует DoSFilter, и вы обнаружите пользователей, вызывающих срабатывание DoSFilter.

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