Защита от перебора паролей. IPBan
Как защитить Exchange от перебора паролей?
Существует решение IPBan, позволяющее мониторить логи различных программных продуктов систем Windows и Linux, в том числе и Exchange. Страница IPBan на github: https://github.com/DigitalRuby/IPBan/
В бесплатной версии IPBan позволяет мониторить различные системы изолированно: на каждой свой инстанс программы. Версия PRO имеет GUI для настройки и позволяет осуществлять бан централизованно, логически объединяя системы для настройки. Здесь будет использоваться бесплатная версия, которая настраивается правкой конфигурационного файла.
Скачать можно по ссылке: https://github.com/DigitalRuby/IPBan/releases
В Exchange мы имеем, как минимум, две точки входа для перебора паролей: OWA и SMTP.
IPBan будет отслеживать события в event-логе Windows и транспортных логах Exchange.
Перед настройкой самого IPBan для Exchange нам требуется в первую очередь включить все нужные логи.
Включение аудита событий входа
Для включения событий аудита нам требуется в GPO, которая применяется к серверам Exchange - выставить значение параметров Audit Logon и Other Logon/Logoff Events в success and failure.
Перед включением аудита большого количества событий - неплохим решением станет расширение объема хранимого лога для журнала security.
В GPO есть два места, в которых настраивается аудит. Первое находится в Local Policies → Audit Policy. В даном разделе находится классическая, более старая политика аудита. В современных системах принято настраивать параметры аудита в расширенной политике аудита, в которой параметры настраиваются более гибко. (Advanced Audit Policy Configuration). Нас интересуют два параметра:
Computer Configuration >> Windows Settings >> Security Settings >> Advanced Audit Policy Configuration >> Audit Policies >> Logon/Logoff >> "Audit Other Logon/Logoff Events"
Computer Configuration >> Windows Settings >> Security Settings >> Advanced Audit Policy Configuration >> System Audit Policies >> Logon/Logoff >> "Audit Logon"
После применения политики, при неудачных логинах - мы увидим события с кодом 4625.
Включение транспортных логов
Если на нашем сервере не включено ведение логов на коннекторах приёма почты - необходимо это сделать. Пример для коннектора сервера Edge Transport, принимиающего почту непосредственно из внешнего мира.
Узнаем Identity коннектора командой:
Get-ReceiveConnector
Set-ReceiveConnector -Identity "MX1\Default internal receive connector MX1" -ProtocolLoggingLevel Verbose
Для mailbox серверов транспортные логи коннекторов будут находиться здесь:
C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\FrontEnd\ProtocolLog
Для серверов edge-transport путь немного другой:
C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\Edge\ProtocolLog
Правка конфигурационного файла IPBan
Все настройки содержатся в конфигурационном файле ipban.config, который можно править после распаковки архива с дистрибутивом.
Первая часть файла содержит секции, в которых IPBan ищет логи различных событий в разных системах. Если мы настраиваем IPBan на Edge серверах, то путь к логу в секции MSExchange необходимо поправить, прописав:
C:/Program Files/Microsoft/Exchange Server/*/TransportRoles/Logs/Edge/ProtocolLog/**.log
В конце файла, в секции <appSettings> задаются параметры программы, довольно подробно прокомментированные. Здесь можно задать время бана, количество провальных логинов, после которых IP будет заблокирован, параметры белого и черного списка адресов, принципы разблокировки, можно задать параметр, позволяющий сбрасывать списки после перезапуска сервиса и многое другое. Пример задания белого списка адресов:
<add key="Whitelist" value="8.8.8.8, 1.1.1.1, 2.2.2.2"/>
IP Ban и Windows Firewall
Для работы IPBan необходим включенный Windows Firewall потому что блокировка происходит путём добавления IP-адреса в правило брендмауэра. Префикс данного правила задается в конфигурационном файле, в параметре:
<add key="FirewallRulePrefix" value="IPBan_"/>
IPBan создаст правило только после появления актуальных блокировок. Естественно, в случае проблем - можно вручную отредактировать правило.
Установка IPBan
Чтобы установить IPBan как сервис - нужно запустить команду sc примерно следующим образом:
sc.exe create IPBAN type=own start=delayed-auto binPath=C:\IP_BAN\IPBan-Windows-x64_2_0_0\DigitalRuby.IPBan.exe DisplayName=IPBAN
Удаление сервиса
Если по каким-либо причинам нам требуется удалить созданный сервис - можем также использовать команду SC.
sc delete IPBAN
Команда будет корректно работать только в интерпретаторе CMD, а не PowerShell.