Матеріал нижче, є перекладом моєї початкової російськомовної статті: Защита 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. Ця пропозиція актуальна для комерційних і державних структур. Дізнатися більше... Послуги надаються цією компанією по СНД і за межами (Європа, США).
Додано 15.05.2022
Корисну замітку додано: Настройка двухфакторной аутентификации (2FA) в Windows с помощью MultiOTP.