Захист RDP-підключення від брутфорса за допомогою IPBan.

Матеріал нижче, є перекладом моєї початкової російськомовної статті: Защита RDP подключения от брутфорса при помощи IPBan.

Для блокування невдалих спроб під'єднання до 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 години.

За темою: Встановлюємо та налаштовуємо Cyberarms Intrusion Detection and Defense Software (IDDS).

Рішення працює на Windows Server не нижче Windows Server 2008 (Windows XP і Windows Server 2003 не підтримуються).

Складно і потрібна допомога в налаштуванні сервера? Є питання? Якісна та надійна IT-допомога за доступними цінами в Україні:

Налаштовуємо 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 від імені Адміністратора (як запустити 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 має бути обов'язково запущений від імені Адміністратора (як запустити PowerShell від імені Адміністратора).

Для наочності. У моєму прикладі, було виконано таку команду в 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 і мови не йде.

Є, додаткова замітка з корисними ідеями для організації захисту RDP: «Настройка RDP (защита от перебора паролей).»

Додано 04.07.2021

Є доступне за ціною і надійне рішення з готовим віртуальним сервером VPN для бізнесу, яке можна розгорнути буквально за лічені хвилини. Послуга надається тільки для юридичних осіб України. Дізнатися більше...

 

Бізнес-пропозиція для фірм, підприємств, приватних осіб та організацій (хмарні рішення). 

Резервне копіювання даних, захист даних від втрат, організація віддаленого офісу для співробітників, налаштування бухгалтерії в хмарі, VDS/VPS, досвідчена та чуйна підтримка, обслуговування та супровід на базі TUCHA.UA. Ця пропозиція актуальна для комерційних і державних структур. Дізнатися більше... Послуги надаються цією компанією по СНД і за межами (Європа, США).

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

Добавлять новые комментарии запрещено.*

Новые Старые