Защита RDP от BruteForce атак. Автоматическая блокировка атакующего IP.

В данном топике будет рассмотрена защита RDP доступа к VPS серверу с помощью автоматически запускаемого скрипта PowerShell. Скрипт будет запускать Планировщик задач анализируя Журнал Windows, журнал Безопасность, код события 4625 (Данное событие возникает при неудачной попытке входа).

Скрипт проверяет журнал Безопасность за последние 5 часов (время можно менять), если в журнале есть 5 событий (количество событий так же можно изменить) с кодом 4625 от одного ip адреса то этот ip будет автоматически добавлен в предварительно созданное правило Брандмауэра Windows которое заблокирует входящие подключения к порту 3389 VPS сервера.

1. Создание правила блокирующего доступ к порту 3389 добавляемым ip адресам.

Скачайте на сервер и выполните PewerShell сценарий (единоразово).

В результате будет создано правило блокирующее порт RDP (3389) для указанных ip (будет добавлен случайный ip 123.123.123.123 без которого правило не сохранится).

Создание правила блокирующего доступ к порту 3389 добавляемым ip адресам.

2. Сценарий PowerShell анализирующий журнал Безопасность и добавляющий ip в ранее созданное правило.

Скачайте на сервер и выполните PewerShell сценарий.

Переменные которые можно менять:
$Last_n_Hours = [DateTime]::Now.AddHours(-5)
переменной Last_n_Hours присваивается время с которого будет анализироваться журнал Безопасность. В данном случае это текущее время минус 5 часов.

{$_.Count -gt 5}
количество повторений события 4625 для ip адреса. В данном случае оно равно 5.

$log = "C:\blocked_ip_rdp.txt"
в данный файл будут добавляться заблокированные ip с указанием времени блокировки и количества неудачных попыток подключения к RDP за последние 5 часов.

После первого выполнения сценария на сервере результат выполнения можно проверить в свойствах созданного правила Брандмауэра.

Сценарий PowerShell анализирующий журнал Безопасность и добавляющий ip в ранее созданное правило

На этом этапе всем ip которые сделали 5 попыток в течение последних 5 часов уже будет заблокирован доступ к RDP.

3. Настройка Планировщика Windows для автоматического запуска PowerShell сценария.

Внимание: Групповые политики Windows не разрешают выполнение сценариев PowerShell которые скачаны из сети. Поэтому перед настройкой планировщика заданий нужно разблокировать сценарий с помощью Unblock-File командлета.
Запустите консоль Windows PowerShell и выполните: Unblock-File C:\Users\Администратор.WIN-BHK3CCM292M\Desktop\blockip.ps1

Запуск сценария PowerShell скачанного из сети.

Запускаем Планировщик заданий и создаем простую задачу с любым именем, например blockip.
Указываем когда будет срабатывать триггер:
Планировщик заданий Windows. Тригер по событию из журнала Windows.

Указываем событие при котором будет срабатывать триггер:
событие при котором будет срабатывать триггер

На следующем этапе выбираем действие для задачи — Запустить программу.

Далее указываем программу которая будет запускаться — PowerShell.exe
и в качестве аргумента к ней ссылку на сценарий PowerShell — C:\Users\Администратор\Desktop\blockip.ps1 (нужно указать полный путь к сценарию).

Запуск сценария PowerShell в планипровщике заданий

Далее сохраняем созданную задачу и проверяем работу планировщика.
Созданное правило BlockRDPBruteForce (см. пункт 1 инструкции), проверяем его свойства, вкладка Область, там будут добавляться ip которым будет запрещены входящие подключения для порта 3389.

Лог работы сценария можно проверить в файле C:\blocked_ip_rdp.txt
Лог работы сценария PowerShell автоматической блокировки Brutforce атак на RDP.

Если требуется очистить правило BlockRDPBruteForce можно выполнить сценарий или добавить этот сценарий в Планировщик заданий для ежедневного выполнения.

P.S. Данная инструкция является наиболее простым вариантом защиты RDP вашего сервера от BruteForce атак. Лучшим способом защиты RDP является настройка VPN шлюз для RDP

Комментарии (0)

RSS свернуть / развернуть
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.