Как защитить RDP на Windows Server от брутфорса?

Как защитить RDP на Windows Server от брутфорса?

Как защитить RDP на Windows Server от брутфорс-атак и безопасно подключить удаленных сотрудников к серверу через WireGuard VPN

🛡️ Защита RDP на Windows Server от брутфорса через WireGuard VPN

Брутфорс-атаки на стандартный порт удаленного рабочего стола (TCP 3389) — главная головная боль администраторов Windows Server. Боты сканируют публичные IP-адреса круглосуточно, забивая логи неудачными попытками входа и перегружая процессор. Оставлять порт 3389 «смотрещим» наружу опасно, но как организовать одновременный и безопасный доступ для команды без поднятия сложных корпоративных доменов?

Разберем простой, быстрый и надежный метод защиты с помощью легкого VPN-шлюза WireGuard, развернутого прямо на вашем сервере.

🧭 Архитектура решения

Схема строится на разделении публичного и внутреннего трафика:

  • 🔒 WireGuard VPN слушает защищенный UDP-порт (например, 51820). Сотрудники подключаются к нему из любой точки мира.
  • 🚫 RDP (TCP 3389) полностью закрывается на внешнем сетевом интерфейсе брандмауэром Windows, становясь невидимым для сканеров.
  • 🔑 Доступ к рабочим столам открывается только изнутри VPN-туннеля по внутренним IP-адресам виртуальной сети.

Такой подход полностью исключает подбор паролей извне, не нагружает систему и позволяет десяткам пользователей параллельно работать в отдельных сессиях RDS.

📝 Пошаговая инструкция по настройке

Шаг 1. Установка WireGuard на Windows Server

  1. Скачайте официальный установщик с wireguard.com/install и установите его на сервер под управлением Windows Server.
  2. Откройте приложение WireGuard, нажмите Add Tunnel → Add empty tunnel... (или сочетание клавиш Ctrl+N).
  3. Заполните конфигурацию сервера:
[Interface]
Address = 10.10.0.1/24
ListenPort = 51820
PrivateKey = СЕКРЕТНЫЙ_КЛЮЧ_СЕРВЕРА

💡 Приложение автоматически сгенерирует ключи при сохранении файла конфигурации.

Шаг 2. Настройка сетевого экрана (Брандмауэра)

Чтобы клиенты могли подключиться к VPN-серверу из интернета, разрешите входящий UDP-трафик. Откройте PowerShell от имени администратора и выполните:

New-NetFirewallRule -DisplayName "WireGuard Inbound" -Direction Inbound -Protocol UDP -LocalPort 51820 -Action Allow

Шаг 3. Подключение первого клиента

На клиентском устройстве (ноутбуке сотрудника) также установите WireGuard и создайте конфигурационный файл со следующим содержимым:

[Interface]
PrivateKey = ПРИВАТНЫЙ_КЛЮЧ_КЛИЕНТА
Address = 10.10.0.2/24
DNS = 1.1.1.1

[Peer]
PublicKey = ПУБЛИЧНЫЙ_КЛЮЧ_СЕРВЕРА
Endpoint = ВАШ_ПУБЛИЧНЫЙ_IP_СЕРВЕРА:51820
AllowedIPs = 10.10.0.0/24

В конфигурацию сервера на Windows Server добавьте блок этого клиента в секцию [Peer]:

[Peer]
PublicKey = ПУБЛИЧНЫЙ_КЛЮЧ_КЛИЕНТА
AllowedIPs = 10.10.0.2/32

Активируйте туннели с обеих сторон и проверьте соединение командой: ping 10.10.0.1.

Шаг 4. Закрытие RDP-порта от внешних атак

Чтобы боты из интернета больше не могли достучаться до службы удаленных рабочих столов, заблокируйте порт 3389 строго на внешнем сетевом адаптере (замените Ethernet0 на имя вашего интернет-интерфейса, которое можно узнать через Get-NetAdapter):

New-NetFirewallRule -DisplayName "Block RDP on Public Interface" -Direction Inbound -InterfaceAlias "Ethernet0" -Protocol TCP -LocalPort 3389 -Action Block

⚠️ Важно: Не блокируйте порт 3389 глобально для всех интерфейсов без указания параметра -InterfaceAlias, иначе подключение по внутреннему IP 10.10.0.1 также станет недоступно.

После этого подключение по публичному IP станет недоступно для всего мира, но сотрудники, подключенные по VPN, смогут беспрепятственно работать, подключаясь по внутреннему адресу сервера (10.10.0.1).

👥 Масштабирование: добавление новых пользователей

Для подключения дополнительных сотрудников не нужно менять инфраструктуру. Процедура состоит из трех простых шагов:

  1. Создайте локальную учетную запись пользователя в Windows Server (через Computer ManagementLocal Users and Groups) или в Active Directory.
  2. Сгенерируйте новую пару ключей на устройстве сотрудника через приложение WireGuard.
  3. Добавьте новую секцию [Peer] в файл конфигурации сервера, выделив следующий свободный IP-адрес (10.10.0.3/3210.10.0.4/32 и т.д.):
[Peer]
PublicKey = ПУБЛИЧНЫЙ_КЛЮЧ_НОВОГО_СОТРУДНИКА
AllowedIPs = 10.10.0.3/32

Изменения применяются «на лету» без перезапуска службы VPN.