VPN шлюз для RDP

Для защиты Windows сервера лучше всего «спрятать» его за OpenVpn и заблокировать все входящие подключения к серверу из внешней сети.

Это полезно в случаях:

1. Brute Force атак (метод подбора пароля, заключающийся в переборе всех возможных комбинаций символов, пока не будет найдена верная комбинация).
2. Защита Windows сервера от взлома, когда атакующий использует новые обнаруженные уязвимости в часто используемых службах, например в RDP (специальный протокол, разработанный компанией Microsoft для удаленного управления ОС Windows), FTP и других.
3. Администратор Windows сервера не устанавливает обязательные обновления системы тем самым увеличивая шансы на взлом системы с помощью эксплоитов.

Для настройки шлюза нам понадобится Linux сервер (достаточно сервера с минимальным тарифом camp и ОС Ubuntu 18) а так же Windows сервер (в примере это сервер с ОС Windows 2019).

1. Установка OpenVPN на Linux VPS и создание пользователей.

Для настройки OpenVPN лучше всего воспользоваться инструкцией — Настройка OpenVPN сервера на Debian, Ubuntu, CentOS за пару минут
В процессе настройки сделаем двух пользователей, например Server и Client. В итоге у нас должно быть два конфигурационных файла OpenVPN, один для Windows сервера другой для подключения клиентов к OpenVPN серверу.

Создание конфигурационных файлов OpenVPN

2. Настраиваем статический IP для Windows сервера.

mkdir /etc/openvpn/ccd && echo "ifconfig-push 10.8.0.200 255.255.255.0" > /etc/openvpn/ccd/windows


В результате будет создана директория для конфигурационных файлов пользователей, конфигурационный файл для пользователя windows и выдан ему статический ip 10.8.0.200

В конфигурационный файл /etc/openvpn/server/server.conf OpenVPN сервера добавляем:

client-config-dir /etc/openvpn/ccd
push "dhcp-option DNS 1.1.1.1"


Можно указать любой другой DNS сервер в строке push «dhcp-option DNS 1.1.1.1»

В результате конфигурационный файл /etc/openvpn/server/server.conf должен выглядеть так:

port 1194
proto udp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-auth ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-config-dir /etc/openvpn/ccd
push "dhcp-option DNS 1.1.1.1"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem


Запускаем OpenVPN сервер командой

/etc/init.d/openvpn start


3. Настройка OpenVPN на Windows сервере.

Скачиваем и устанавливаем OpenVPN клиент по ссылке.

Копируем конфигурационный файл server.ovpn на Windows сервер и подключаемся к VPN.

После подключения Windows сервер получит статический ip 10.8.0.200, если мы хотим использовать openvpn сервер в качестве шлюза для выхода во внешнюю сеть то в конфигурационный файл клиента windows.ovpn нужно добавить параметр redirect-gateway

4. Настройка OpenVPN на пользовательском ПК.

Настройка на пользовательском ПК проводится аналогично пункту 3, после подключения по конфигурационному файлу client.ovpn ПК получит динамический ip, после чего можно будет выполнить ping тест openvpn и windows сервера.

ping тест openvpn

На этом этапе можно проверить наш сервер на открытые порты, они должны быть уже закрыты, сервер будет полностью доступен (в том числе и по RDP) в сети VPN по адресу 10.8.0.200

VPN шлюз для RDP

5. Настройка брандмауэра Windows.

Может быть ситуация когда OpenVPN шлюз не запущен на Windows сервере и тогда сервер будет доступен из внешней сети.
Для этого нужно заблокировать все внешние подключения на основной ip Windows сервера.

Сканируем открытые порты пакетом nmap.
Устанавливаем его на OpenVPN сервере (Ubuntu 18)

apt install nmap -y


Запускаем сканирование и получаем результат

Сканирование открытых портов nmap

По результатам сканирования видно что открыт один порт 3389 (Служба удаленных рабочих столов) когда Windows сервер не подключен к шлюзу OpenVPN. Исправим это.

В брандмауэре Windows создаем правило для входящих подключений и блокируем порт 3389

Блокирование RDP порта 3389 с помощью Брандмауэра Windows

В свойствах созданного правила на вкладке Область добавляем внешний ip сервера. После этого этапа наш сервер перестанет принимать входящие подключения на порт 3389 и внешний IP. Получить доступ к серверу по RDP можно будет только запустив OpenVPN подключение и используя адрес локальной сети 10.8.0.200

Блокирование RDP порта 3389 с помощью Брандмауэра Windows

P.S. Более простой, быстрый и менее надежный вариант защиты RDP Защита RDP от BruteForce атак. Автоматическая блокировка атакующего IP
  • 0
  • 01 сентября 2020, 14:46
  • GreatAlex

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

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