Настройка VPN-сервера на Windows Server 2019: протоколы, OpenVPN и безопасность

Подробное руководство по развертыванию VPN-сервера на Windows Server 2019: встроенные протоколы RRAS, настройка OpenVPN, генерация сертификатов, NAT, файрвол и рекомендации по безопасности.

Зачем нужен собственный VPN-сервер на Windows Server 2019

VPN-сервер на Windows Server 2019 позволяет организовать защищенный удаленный доступ к корпоративной сети, объединить офисы или предоставить сотрудникам безопасный выход в интернет. В отличие от публичных VPN-сервисов, собственный сервер дает полный контроль над трафиком, политиками доступа и журналами.

Windows Server 2019 поддерживает несколько протоколов VPN: PPTP, L2TP/IPsec, SSTP и IKEv2. Каждый из них имеет свои особенности безопасности и производительности. Кроме того, на этой ОС можно развернуть OpenVPN-сервер, который отличается гибкостью и высокой степенью защиты.

Использование встроенных средств Windows Server 2019 (роль Remote Access, RRAS) позволяет избежать установки дополнительного ПО, а OpenVPN предоставляет открытый код и широкие возможности кастомизации. Выбор зависит от ваших задач: для простого удаленного доступа достаточно RRAS, для сложных сценариев с NAT и маршрутизацией лучше подходит OpenVPN.

Выбор протокола VPN: PPTP, L2TP, SSTP, IKEv2 или OpenVPN

При настройке VPN-сервера на Windows Server 2019 важно выбрать подходящий протокол. Рассмотрим основные варианты.

PPTP — устаревший протокол, использующий порт 1723 TCP и GRE. Он прост в настройке, но имеет серьезные уязвимости, поэтому Microsoft не рекомендует его использовать. В Windows Server 2025 новые конфигурации RRAS не принимают PPTP, но в 2019 он еще доступен.

L2TP/IPsec — более безопасный, чем PPTP, но требует настройки сертификатов или общего ключа. Использует порты 1701 TCP, 500 UDP и 4500 UDP. Несмотря на улучшенную защиту, Microsoft также не советует применять L2TP из-за отсутствия современных функций безопасности.

SSTP — работает через HTTPS (порт 443), что позволяет обходить большинство файрволов. Обеспечивает хорошую безопасность и простоту настройки, но менее производителен, чем IKEv2.

IKEv2 — современный протокол, поддерживающий мобильность и быструю смену сетей. Использует порты 500 UDP и 4500 UDP. Рекомендуется Microsoft для новых развертываний.

OpenVPN — open-source решение, работающее через UDP или TCP (обычно порт 1194). Обеспечивает высокую гибкость, поддержку современных шифров (AES-256-GCM, ChaCha20-Poly1305) и возможность тонкой настройки. Требует установки дополнительного ПО, но дает полный контроль над конфигурацией.

Для большинства сценариев на Windows Server 2019 оптимальным выбором является IKEv2 или SSTP, если нужна встроенная поддержка, либо OpenVPN, если требуется максимальная гибкость и безопасность.

Подготовка Windows Server 2019 к установке VPN

Перед развертыванием VPN-сервера необходимо выполнить несколько подготовительных шагов.

  1. Проверьте сетевые настройки. Убедитесь, что сервер имеет статический IP-адрес в локальной сети. Если сервер будет доступен из интернета, на роутере нужно настроить проброс портов (port forwarding) на соответствующие порты VPN.
  1. Обновите систему. Установите все последние обновления Windows Server 2019, чтобы закрыть известные уязвимости.
  1. Настройте брандмауэр. Разрешите входящие подключения на порты, которые будут использоваться VPN-протоколами. Для встроенных протоколов это порты 1723 (PPTP), 1701, 500, 4500 (L2TP/IPsec), 443 (SSTP), 500 и 4500 (IKEv2). Для OpenVPN — порт 1194 (UDP или TCP).
  1. Определите пул IP-адресов для VPN-клиентов. Это может быть подсеть, например 10.24.1.0/24, которая не пересекается с локальной сетью. Если DHCP не используется, настройте статический пул.
  1. Подготовьте сертификаты. Для L2TP/IPsec, SSTP и IKEv2 потребуются сертификаты. Можно использовать самоподписанные сертификаты или корпоративный центр сертификации.
  1. Убедитесь, что у вас есть права администратора на сервере и, если сервер в домене, соответствующая учетная запись.

Установка роли Remote Access (RRAS) и настройка VPN

Встроенный VPN-сервер в Windows Server 2019 настраивается через роль Remote Access (RRAS).

Установка роли:

  1. Откройте Server Manager.
  2. Выберите ManageAdd Roles and Features.
  3. В мастере отметьте роль Remote Access.
  4. В разделе Role Services выберите DirectAccess and VPN (RAS).
  5. Нажмите Install и дождитесь завершения установки. Возможно, потребуется перезагрузка.

Настройка VPN:

  1. После установки откройте мастер начала работы (Getting Started Wizard).
  2. Выберите Deploy VPN only.
  3. В консоли Routing and Remote Access щелкните правой кнопкой мыши на имени сервера и выберите Configure and Enable Routing and Remote Access.
  4. Выберите Custom configurationVPN access.
  5. Запустите службу.

После этого нужно настроить протоколы. По умолчанию RRAS принимает подключения по PPTP, L2TP, SSTP и IKEv2. Для включения/отключения конкретных протоколов используйте консоль MMC или команды netsh. Например, чтобы включить L2TP, откройте свойства портов, выберите WAN Miniport (L2TP) и разрешите входящие подключения.

Важно: начиная с Windows Server 2025 новые конфигурации не принимают PPTP и L2TP, но в 2019 они работают. Рекомендуется использовать SSTP или IKEv2 для лучшей безопасности.

Настройка пользователей и прав доступа

Для подключения к VPN-серверу пользователи должны иметь учетные записи на сервере или в домене, а также разрешение на удаленный доступ.

Создание пользователя:

  1. Откройте Computer ManagementLocal Users and GroupsUsers.
  2. Создайте нового пользователя или используйте существующего.
  3. Задайте пароль и настройте свойства.

Разрешение удаленного доступа:

  1. Откройте свойства пользователя.
  2. Перейдите на вкладку Dial-in.
  3. Выберите Allow access (Разрешить доступ) или Control access through NPS (если используется политика сети).

Если у вас много пользователей, удобнее использовать групповые политики или NPS (Network Policy Server). Это позволяет централизованно управлять правами доступа.

Также необходимо настроить пул IP-адресов для VPN-клиентов. В консоли RRAS щелкните правой кнопкой мыши на сервере, выберите Properties, перейдите на вкладку IPv4 и укажите статический пул адресов или использование DHCP.

Развертывание OpenVPN-сервера на Windows Server 2019

OpenVPN — это популярное open-source решение, которое можно развернуть на Windows Server 2019. Оно предоставляет больше возможностей для настройки, чем встроенный RRAS, и часто используется для организации защищенных корпоративных сетей.

Установка OpenVPN:

  1. Скачайте установщик OpenVPN Community Edition с официального сайта openvpn.net.
  2. Запустите установку. Выберите компоненты: OpenVPN Service, OpenSSL Utilities, драйвер Data Channel Offload (рекомендуется для Windows 10/11 и Server 2019+). Отключите установку OpenVPN GUI, если он не нужен.
  3. После установки в системе появится новый сетевой адаптер OpenVPN Data Channel Offload.

Генерация сертификатов и ключей: OpenVPN использует инфраструктуру открытых ключей (PKI). Для этого применяются скрипты Easy-RSA.

  1. Откройте командную строку и перейдите в каталог C:\Program Files\OpenVPN\easy-rsa.
  2. Скопируйте файл vars.example в vars и отредактируйте его (страна, город, организация и т.д.).
  3. Запустите EasyRSA-Start.bat.
  4. Инициализируйте PKI: ./easyrsa init-pki.
  5. Создайте корневой сертификат CA: ./easyrsa build-ca (задайте пароль).
  6. Сгенерируйте запрос и ключ для сервера: ./easyrsa gen-req server nopass.
  7. Подпишите сертификат сервера: ./easyrsa sign-req server server.
  8. Создайте ключи Диффи-Хеллмана: ./easyrsa gen-dh.
  9. Для дополнительной защиты сгенерируйте ключ tls-crypt: openvpn --genkey secret tc.key.
  10. Для каждого клиента создайте ключи: ./easyrsa build-client-full client_name (или gen-req с nopass).

Конфигурация сервера: Создайте файл server.ovpn в каталоге C:\Program Files\OpenVPN\config-auto. Пример конфигурации:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-crypt tc.key
server 10.24.1.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
persist-key
persist-tun
status openvpn-status.log
log-append server.log
verb 3
data-ciphers AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305
data-ciphers-fallback AES-256-GCM

Скопируйте файлы сертификатов (ca.crt, server.crt, server.key, dh.pem, tc.key) в каталог конфигурации.

Настройка файрвола: Откройте порт 1194 UDP (или TCP) в брандмауэре Windows. Для этого можно использовать PowerShell:

New-NetFirewallRule -DisplayName "OpenVPN" -Direction Inbound -Protocol UDP -LocalPort 1194 -Action Allow

Запуск службы: Служба OpenVPN автоматически запускается при установке. Убедитесь, что она работает, и проверьте журналы.

Настройка NAT и маршрутизации для доступа к локальной сети

Чтобы VPN-клиенты могли обращаться к ресурсам локальной сети (например, к файловым серверам или внутренним сайтам), необходимо настроить маршрутизацию и NAT.

Для встроенного RRAS:

  1. В консоли RRAS щелкните правой кнопкой мыши на сервере и выберите Properties.
  2. Перейдите на вкладку IPv4 и включите LAN and demand-dial routing.
  3. В разделе IPv4NAT добавьте интерфейс, подключенный к локальной сети, и включите NAT.
  4. Убедитесь, что VPN-подсеть (например, 10.24.1.0/24) маршрутизируется в локальную сеть.

Для OpenVPN:

  1. В конфигурационном файле сервера добавьте директиву push "route 192.168.13.0 255.255.255.0", чтобы клиенты знали маршрут к локальной сети.
  2. Включите IP-пересылку (IP forwarding) на сервере. Это можно сделать через реестр или PowerShell:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -Name IPEnableRouter -Value 1
  1. Настройте NAT. Если сервер имеет белый IP-адрес, можно использовать встроенный NAT Windows. Если нет, настройте проброс портов на роутере.

Проброс портов на роутере: Если сервер находится за NAT, на роутере необходимо настроить правило трансляции портов. Например, для OpenVPN: внешний порт 1194/UDP → внутренний IP сервера (192.168.13.200) порт 1194/UDP. Аналогично для других протоколов.

Настройка клиентских подключений

После настройки сервера необходимо настроить клиентские устройства.

Для встроенного VPN (Windows 10/11):

  1. Откройте ПараметрыСеть и ИнтернетVPNДобавить VPN-подключение.
  2. Укажите адрес сервера (внешний IP или DNS-имя), тип VPN (например, IKEv2 или SSTP), имя пользователя и пароль.
  3. Сохраните и подключитесь.

Для OpenVPN:

  1. Установите OpenVPN Client на компьютер пользователя.
  2. Скопируйте файлы клиентского сертификата и ключа (client.crt, client.key, ca.crt) в каталог конфигурации клиента.
  3. Создайте файл client.ovpn с настройками:
client
dev tun
proto udp
remote myvpn.example.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
tls-crypt tc.key
remote-cert-tls server
cipher AES-256-GCM
verb 3
  1. Импортируйте файл в OpenVPN GUI и подключитесь.

Проверка подключения: После подключения проверьте, что клиент получает IP-адрес из пула VPN и может обращаться к ресурсам локальной сети. Используйте команды ipconfig и ping для диагностики.

Обеспечение безопасности VPN-сервера

Безопасность VPN-сервера критически важна, так как он открыт для интернета. Вот основные рекомендации.

  1. Используйте современные протоколы. Отключите PPTP и L2TP, если они не нужны. Отдавайте предпочтение IKEv2, SSTP или OpenVPN с шифрованием AES-256-GCM.
  1. Управление сертификатами. Для OpenVPN используйте надежные пароли для CA и клиентских ключей. Регулярно обновляйте сертификаты и отзывайте ключи уволенных сотрудников.
  1. Ограничьте доступ. Настройте брандмауэр так, чтобы разрешить входящие подключения только на порты VPN. Используйте списки контроля доступа (ACL) для ограничения доступа к внутренним ресурсам.
  1. Многофакторная аутентификация. Для встроенного VPN можно настроить NPS с поддержкой MFA. Для OpenVPN можно использовать плагины, например, OTP.
  1. Мониторинг и журналирование. Включите подробное журналирование (verb 3-4 для OpenVPN, журналы RRAS). Регулярно проверяйте журналы на предмет подозрительной активности.
  1. Обновления. Своевременно устанавливайте обновления Windows Server и OpenVPN.
  1. Защита от перебора паролей. Используйте сложные пароли, включите блокировку учетных записей после нескольких неудачных попыток.
  1. Изоляция VPN-трафика. Рассмотрите возможность размещения VPN-сервера в DMZ и ограничения доступа к внутренней сети через межсетевой экран.

Устранение неполадок и диагностика

При настройке VPN-сервера могут возникнуть различные проблемы. Рассмотрим типичные сценарии и способы их решения.

Клиент не может подключиться:

  • Проверьте, что порты открыты на сервере и роутере.
  • Убедитесь, что служба VPN (RRAS или OpenVPN) запущена.
  • Проверьте журналы событий Windows и журналы OpenVPN.
  • Проверьте правильность введенных учетных данных и разрешение на удаленный доступ.

Нет доступа к локальной сети после подключения:

  • Проверьте маршрутизацию и NAT на сервере.
  • Убедитесь, что на клиенте настроен маршрут к локальной сети (для OpenVPN - директива push route).
  • Проверьте, что IP-пересылка включена на сервере.

Низкая скорость соединения:

  • Используйте протокол UDP вместо TCP для OpenVPN.
  • Проверьте качество интернет-канала.
  • Убедитесь, что шифрование не слишком ресурсоемкое (например, AES-256-GCM быстрее, чем AES-256-CBC).

Ошибки сертификатов:

  • Проверьте срок действия сертификатов.
  • Убедитесь, что на клиенте установлен корневой сертификат CA.
  • Для OpenVPN проверьте, что файлы сертификатов соответствуют конфигурации.

Проблемы с драйвером TAP:

  • Если используется старый драйвер TAP-Windows6, обновите OpenVPN до версии 2.7+ и используйте драйвер Data Channel Offload.

Для диагностики используйте команды ping, tracert, netstat, а также утилиты openvpn --config для просмотра подробных сообщений.

Вопросы и ответы

Какой протокол VPN лучше всего использовать на Windows Server 2019?

Для Windows Server 2019 рекомендуется использовать IKEv2 или SSTP, так как они обеспечивают хорошую безопасность и поддерживаются встроенными средствами. IKEv2 быстрее и лучше работает при смене сетей, а SSTP использует порт 443, что позволяет обходить большинство файрволов. Если нужна максимальная гибкость и контроль, выбирайте OpenVPN с современными шифрами (AES-256-GCM, ChaCha20-Poly1305). PPTP и L2TP считаются устаревшими и не рекомендуются Microsoft.

Можно ли настроить VPN на Windows Server 2019 без установки дополнительного ПО?

Да, можно. В Windows Server 2019 встроена роль Remote Access (RRAS), которая позволяет развернуть VPN-сервер с поддержкой протоколов PPTP, L2TP/IPsec, SSTP и IKEv2. Для этого нужно установить роль через Server Manager и настроить маршрутизацию и удаленный доступ. Это решение подходит для базовых сценариев удаленного доступа. Если нужны расширенные функции, такие как тонкая настройка шифрования или нестандартные порты, лучше использовать OpenVPN.

Какие порты нужно открыть для VPN на Windows Server 2019?

Порты зависят от используемого протокола: PPTP — 1723 TCP и GRE (протокол 47); L2TP/IPsec — 1701 TCP, 500 UDP, 4500 UDP; SSTP — 443 TCP; IKEv2 — 500 UDP и 4500 UDP; OpenVPN — обычно 1194 UDP (или TCP). Не забудьте также настроить проброс портов на роутере, если сервер находится за NAT.

Как ограничить количество одновременных подключений к VPN-серверу?

В RRAS можно ограничить количество портов для каждого протокола. В консоли Routing and Remote Access откройте свойства портов, выберите нужный тип (например, WAN Miniport (IKEv2)) и укажите максимальное число портов. По умолчанию для L2TP и PPTP установлено 128 портов. Для OpenVPN количество подключений не ограничено, но вы можете использовать файрвол или настройки сервера для ограничения.

Нужно ли настраивать NAT для доступа VPN-клиентов к интернету?

Если вы хотите, чтобы VPN-клиенты могли выходить в интернет через ваш сервер, необходимо настроить NAT. В RRAS это делается через раздел NAT в свойствах сервера. Для OpenVPN нужно включить IP-пересылку и настроить NAT с помощью встроенных средств Windows или маршрутизатора. Если VPN используется только для доступа к локальной сети, NAT не обязателен, но маршрутизация все равно потребуется.

Как отозвать сертификат клиента в OpenVPN?

Для отзыва сертификата клиента в OpenVPN используйте Easy-RSA. Перейдите в каталог easy-rsa, запустите EasyRSA-Start.bat и выполните команду ./easyrsa revoke client_name. Затем сгенерируйте новый список отзыва (CRL) командой ./easyrsa gen-crl. Скопируйте файл crl.pem на сервер и добавьте в конфигурацию директиву crl-verify crl.pem. После этого доступ для данного клиента будет заблокирован.

Что делать, если VPN-клиент не может подключиться к серверу?

Проверьте несколько вещей: 1) Убедитесь, что служба VPN запущена на сервере. 2) Проверьте, что порты открыты в брандмауэре Windows и на роутере. 3) Проверьте правильность введенного адреса сервера и учетных данных. 4) Посмотрите журналы событий Windows (для RRAS) или журнал OpenVPN (server.log) на наличие ошибок. 5) Убедитесь, что у пользователя есть разрешение на удаленный доступ. 6) Для OpenVPN проверьте, что файлы сертификатов и ключей корректны и не истекли.