Защита RDP от брутфорса при помощи IPBan.

Защита RDP от брутфорса при помощи IPBan.

@Leakinfo

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

Сразу оговорюсь, что решение проверялось на Windows Server 2016, Windows Server 2019 и ОС Windows 10 Pro. Данная заметка, написана «по горячему», с использованием Windows Server 2019. Однако, есть «обрывки идей и мыслей» в заметке, как использовать данное решение и на Windows Server 2008, которые мне удалось собрать с открытых источников. При этом, лично не работал с данным решением на Windows Server ниже 2016.

Защита RDP от брутфорса при помощи IPBan.

Есть готовое решение IPBan, с открытым исходным кодом, позволяющее производить автоматический мониторинг журнала событий Windows, фиксируя неудачные попытки зайти на сервер по RDP и после 5-й неудачной попытки входа, блокирует в автоматическом режиме IP-адрес на 24 часа.

Решение работает на Windows Server не ниже Windows Server 2008 (Windows XP и Windows Server 2003 не поддерживаются).

Оф. сайт: https://www.digitalruby.com/ipban/

Github: https://github.com/DigitalRuby/IPBan/releases/

Настраиваем IPBan.

1. Открываем GitHub по ссылке: https://github.com/DigitalRuby/IPBan/releases/

2. Выбираем нужную разрядность Windows x86/x64 (на момент создания заметки, была доступна последняя версия IPBan 1.6.0):

3. Скачав архив, распакуйте его содержимое в любую папку (в рассматриваемом примере, создам папку IPBan и расположу ее в корень диска C:).

4. Выделите все распакованные файлы, нажмите по ним правой кнопкой мыши и в появившемся окне, выберите «Свойства». В открывшемся меню, выберите вариант (поставьте галочку) «Разблокировать», если данная возможность присутствует.

Зачастую, файлы скачанные с Интернета, система автоматически блокирует. Для корректной работы с файлами, их необходимо разблокировать.

Если файлы не заблокированы, у вас должна быть следующая картина:

При просмотре свойств исполняемого.exe (DigitalRuby.IPBan.exe) файла в папке, у вас не должно быть сообщений о блокировании ресурса:

Вы можете разблокировать файлы, посредством выполнения команды в PowerShell. Для этого, запустите PowerShell от имени Администратора и в открывшемся окне, выполните команду:get-childitem "Укажите_расположение_вашей_папки" | unblock-file -confirm

Для наглядности. В моем примере, была выполнена следующая команда в PowerShell:

get-childitem "C:\IPBan" | unblock-file -confirm

5. Необходимо проверить, что в системных логах отображаются IP-адреса. Для этого, внесите изменения в локальную политику безопасности. Открываем «Локальную политику безопасности». Для этого, нажмите на клавиатуре Win + R, введите в окне «Выполнить» secpol.msc и нажмите «ОК»:

Переходим в «Локальные политики» -> «Политика аудита»:

Включаем регистрацию сбоев для «Аудита входа в систему»:

Включаем регистрацию сбоев для «Аудита событий входа в систему»:

В результате, у вас станет так:

Примечание. Только для для Windows Server 2008 и для Windows Server 2008 R2!

Для Windows Server 2008, насколько удалось найти информацию, необходимо открыть «Локальную политику безопасности» (Win + R, введите secpol.msc и «OK») и перейти в:

  • «Локальные политики» -> «Параметры безопасности» -> «Сетевая безопасность: Ограничения NTLM: входящий трафик NTLM» («Network security: Restrict NTLM: Incoming NTLM traffic») и установите значение «Запретить все учетные записи» («Deny all accounts»).

При этом, для Windows Server 2008 R2, необходимо еще настроить:

  • «Локальные политики» -> «Параметры безопасности» -> «Сетевая безопасность: ограничения NTLM — проверка подлинности NTLM на этом домене» («Network security: Restrict NTLM: NTLM authentication in this domain») и установить значение «Запретить все» («Deny all»).

К сожалению, нет уже возможности проверить это лично на Windows Server 2008. При поиске информации, нашел много сообщений о том, что у пользователей, возникают проблемы на Windows Server 2008 R2 с невозможностью зайти на него, если установить только «Запретить все учетные записи» в «Сетевая безопасность: Ограничения NTLM: входящий трафик NTLM». Поэтому, пробуйте еще указать «Запретить все» в «Сетевая безопасность: ограничения NTLM — проверка подлинности NTLM на этом домене».

6. Создаем службу IPBan, для автозапуска утилиты при запуске системы и ее фоновой работы. Запустите PowerShell от имени Администратора. Выполните в окне PowerShell следующую команду:

sc.exe create IPBAN type= own start= auto binPath= C:\Каталог_с_утилитой\Имя_исполняемого_файла.exe DisplayName= IPBAN

И нажмите Enter. Получаем сообщение об успехе.

Для наглядности. В моем примере, была выполнена следующая команда в PowerShell:

sc.exe create IPBAN type= own start= auto binPath= C:\IPBan\DigitalRuby.IPBan.exe DisplayName= IPBAN

На заметку. По мере выхода новых версий утилиты IPBan, имя исполняемого файла, несколько раз менялось. На момент написания заметки, исполняемый файл имеет следующее имя: DigitalRuby.IPBan.exe.

А вот в самой првой версии IPBan, имя исполняемого файла, было: IPBan.exe

Именно поэтому, указал выше команду, где заменил имя файла на «C:\Каталог_с_утилитой\Имя_исполняемого_файла.exe» и привел скрины. Иначе, вы получите сообщение с ошибкой. Прежде, чем выполнять по данной инструкции команды, проверяйте содержимое скачанных файлов и проверяйте имя исполняемого файлы в папке. Надеюсь, суть уловили.

7. Вышеприведенной командой, в пункте 6, мы создали службу IPBan в системе. Для запуска службы, перейдите в «Службы». Для этого, нажмите на клавиатуре Win + R, введите в окне «Выполнить» services.msc и нажмите «ОК»:

Ищем в окне «Службы», службу «IPBAN» и запускаем ее:

В свойствах службы «IPBAN», мы всегда можем изменить тип запуска. Если она больше нам станет ненужной, мы всегда можем ее отключить. Естественно, нельзя удалять файлы службы, где у нас была распакована утилита IPBan. Поэтому, ответственно изначально подойдите к выбору места распаковки утилиты, чтобы потом не пришлось все перенастраивать.

После запуска службы «IPBAN», мы можем найти ее в Диспетчере задач во вкладке «Процессы» -> разделе «Фоновые процессы»:

И во вкладке Диспетчера задач «Службы»:

Благодаря работе службы «IPBAN», все IP-адреса, скоторых было сделано 5-ть неудачных попыток входа, будут автоматически занесены в брандмауэр Windows с блокировкой на 24 часа. Служба создает правило IPBan_Block_0:

Свойства правила IPBan_Block_0:

Удалять/разблокировать ошибочно добавленные IP-адреса, можно во вкладке «Область» в свойствах правила "IPBan_0" и удалите из списка нужный вам IP-адрес:

Тут же, можно просматривать какие IP-адреса сейчас добавлены. Также создаются два правила IPBan_EmergingThreats_0 и IPBan_EmergingThreats_1000 – общеизвестные IP-адреса с которых происходят попытки входа.

Частые ошибки и заметки.

На форумах, можно найти информацию по использованию утилиты IPBan, где также указано, что в настройках Локальной политики нужно отключить логины NTLM и разрешить только NTLM2-вход в систему. Как указал выше, это только для Windows Server 2008 и Windows Server 2008 R2. Если вы сделаете так например на Windows Server 2019, то не сможете зайти на свой сервер.

При изменении политики NTLM пропадет доступ к сетевым папкам сервера со всех «старых» клиентов, например WinXP.

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

Вы можете изменить время блокировки IP, количество попыток и т.д. посредством корректировки данных в файле ipban.config.

Например:

  • FailedLoginAttemptsBeforeBan – отвечает за количество попыток входа (по умолчанию, установлено 5-ть попыток), после чего, происходит бан.
  • ExpireTime – отвечает за время блокировки IP-адреса (по умолчанию, установлена блокировка на 24 часа).

Однако, конфигурационный файл, периодически меняет свое названия (и содержимое) с выходом новых версий, имейте это ввиду.

Полную документацию по данным правкам, смотрите тут: https://github.com/DigitalRuby/IPBan/wiki/Configuration

На форуме rutracker, пользователь evgen_b привел свою инструкцию по настройке IPBan: https://rutracker.org/forum...

Заключение.

Если у вас будут поправки и дополнения, оставляйте комментарии. Проверить работу данное решения на Windows Server 2008, Windows Server 2008 R2 и Windows Server 2012, у меня нет сейчас возможности. При этом, стоит подумать об отказе использования Windows Server 2008 и старее. Про использование XP и речи не идет.




Report Page