Зачем нужен VPN-сервер на Windows Server 2019
VPN-сервер на Windows Server 2019 позволяет организовать безопасный удалённый доступ к корпоративной сети. Это особенно актуально для компаний, сотрудники которых работают из дома или в поездках. Встроенные средства Windows Server дают возможность развернуть VPN без покупки дополнительного оборудования или стороннего ПО.
Основные сценарии использования: подключение удалённых сотрудников к внутренним ресурсам (файловые серверы, базы данных, корпоративные приложения), объединение офисов через VPN-туннель «сеть-сеть», а также защита интернет-трафика при работе в публичных Wi-Fi сетях.
Windows Server 2019 поддерживает несколько VPN-протоколов: PPTP, L2TP/IPsec, SSTP и IKEv2. Каждый имеет свои особенности безопасности и совместимости. В этой статье мы подробно разберём, как настроить VPN-сервер, какие протоколы выбрать и как автоматизировать подключение клиентов.
Сравнение VPN-протоколов: PPTP, L2TP, SSTP, IKEv2
Выбор протокола — ключевое решение при настройке VPN. Рассмотрим основные варианты, доступные в Windows Server 2019.
PPTP — самый старый протокол, использует шифрование MPPE. Он прост в настройке, но крайне небезопасен: алгоритм шифрования был взломан, а пароли передаются уязвимым образом. Microsoft не рекомендует использовать PPTP, а начиная с Windows Server 2025 новые установки RRAS вообще не принимают PPTP-подключения. Для Windows Server 2019 он всё ещё доступен, но использовать его стоит только в крайнем случае, например, для совместимости со старыми устройствами.
L2TP/IPsec — комбинация туннельного протокола L2TP и шифрования IPsec. Обеспечивает более высокую безопасность, чем PPTP, но часто блокируется в сетях с NAT из-за особенностей ESP-пакетов. Требует открытия портов UDP 500 и 4500. Настройка сложнее, а производительность ниже, чем у IKEv2.
SSTP — проприетарный протокол Microsoft, использующий HTTPS-туннель через порт 443. Он отлично работает через брандмауэры и прокси, так как трафик выглядит как обычный HTTPS. Однако SSTP поддерживается только в Windows, что ограничивает его использование в смешанных средах.
IKEv2 — современный протокол на базе IPsec, который поддерживает автоматическое переподключение при смене сети (например, при переходе с Wi-Fi на мобильный интернет). IKEv2 устойчив к NAT, быстр и безопасен. Именно его рекомендуют для Always On VPN. В Windows Server 2019 IKEv2 включён по умолчанию.
Для большинства сценариев на Windows Server 2019 оптимальным выбором будет IKEv2, особенно если клиенты — Windows 10/11. Если нужна максимальная совместимость с не-Windows устройствами, можно рассмотреть L2TP/IPsec, но придётся мириться с возможными проблемами NAT.
Подготовка инфраструктуры перед установкой VPN
Прежде чем приступить к настройке VPN-сервера, необходимо убедиться, что выполнены базовые требования. Это поможет избежать многих проблем на поздних этапах.
Аппаратные и сетевые требования:
- Сервер с Windows Server 2019 (можно использовать виртуальную машину).
- Два сетевых интерфейса: один для внешней сети (WAN), другой для внутренней (LAN). В виртуальной среде можно использовать один интерфейс с несколькими IP-адресами, но для надёжности лучше два.
- Статический IP-адрес на внешнем интерфейсе. Если сервер находится за NAT, потребуется проброс портов.
- Доменное имя (FQDN), которое резолвится в внешний IP-адрес сервера, например vpn.company.com. Это необходимо для сертификатов и для удобства клиентов.
Программные компоненты:
- Active Directory (AD) — желательно, но не обязательно. AD упрощает управление пользователями и позволяет использовать сертификаты компьютеров для аутентификации.
- Центр сертификации (PKI) — для выпуска сертификатов серверу и клиентам. Можно использовать внутренний AD CS или публичные сертификаты.
- NPS (Network Policy Server) — RADIUS-сервер для централизованной аутентификации и авторизации VPN-подключений. Может быть установлен на том же сервере, что и RRAS.
Если у вас нет AD, можно настроить VPN с локальными учётными записями, но тогда вы потеряете возможность использовать сертификаты компьютеров и групповые политики. Для Always On VPN с аутентификацией по сертификатам AD обязателен.
Установка ролей RRAS и NPS
Первый шаг — установка ролей Remote Access (RRAS) и Network Policy Server (NPS). Это можно сделать через графический интерфейс Server Manager или с помощью PowerShell.
Через Server Manager:
- Откройте Server Manager → Manage → Add Roles and Features.
- Выберите сервер и перейдите к разделу Server Roles.
- Отметьте Remote Access → в списке служб ролей выберите DirectAccess and VPN (RAS) и Routing.
- Отметьте Network Policy and Access Services → внутри выберите Network Policy Server.
- Завершите мастер и перезагрузите сервер, если потребуется.
Через PowerShell:
Install-WindowsFeature -Name RemoteAccess, NPAS -IncludeManagementToolsПосле установки ролей необходимо настроить RRAS как VPN-сервер. Откройте консоль Routing and Remote Access (rrasmgmt.msc), щёлкните правой кнопкой по имени сервера и выберите Configure and Enable Routing and Remote Access. В мастере выберите Custom configuration → VPN access. Если планируется, чтобы VPN-клиенты получали доступ в интернет через сервер, также отметьте NAT.
После завершения мастера служба RRAS запустится. Теперь сервер готов принимать VPN-подключения, но для полноценной работы потребуется настроить NPS и сертификаты.
Настройка NPS для аутентификации VPN-клиентов
NPS (Network Policy Server) выполняет роль RADIUS-сервера, который проверяет подлинность и авторизует VPN-подключения. Настройка NPS состоит из нескольких этапов.
Добавление RADIUS-клиента:
- Откройте консоль NPS (nps.msc).
- В разделе RADIUS Clients and Servers → RADIUS Clients добавьте новую запись.
- Укажите понятное имя (например, RRAS), IP-адрес VPN-сервера (если NPS на том же хосте — 127.0.0.1) и общий секрет (сложный пароль).
- Сохраните секрет — он понадобится при настройке RRAS.
Создание политики запросов на подключение:
- В разделе Policies → Connection Request Policies создайте новую политику.
- Добавьте условие Type of NAS Port → Virtual (VPN).
- Установите разрешение на доступ.
Создание сетевой политики:
- В разделе Policies → Network Policies создайте новую политику.
- В условиях укажите Windows Groups → Domain Computers или Domain Users (в зависимости от того, кто должен подключаться).
- В настройках аутентификации выберите метод EAP. Для сертификатной аутентификации используйте Microsoft: Smart Card or other certificate (PEAP). Для парольной — Microsoft: Protected EAP (PEAP) или Microsoft: Secured password (EAP-MSCHAP v2).
- На вкладке Constraints настройте параметры шифрования: рекомендуется выбрать Strongest encryption (AES-256).
После создания политик вернитесь в консоль RRAS, откройте свойства сервера, вкладку Security, и в разделе Authentication provider выберите RADIUS Authentication и укажите адрес NPS и общий секрет. Аналогично настройте Accounting provider, если нужен учёт трафика.
Настройка сертификатов для VPN-сервера и клиентов
Сертификаты необходимы для аутентификации VPN-сервера и клиентов. Для IKEv2 и SSTP требуется, чтобы клиент доверял сертификату сервера, а для Always On VPN с аутентификацией по сертификатам компьютера — чтобы у каждого клиента был свой сертификат.
Сертификат сервера:
- Запросите сертификат с шаблоном Web Server или RAS and IAS Server на внутреннем CA.
- В поле CN (Common Name) укажите FQDN VPN-сервера, например vpn.company.com.
- Установите сертификат в хранилище локального компьютера (оснастка certlm.msc) в раздел Personal → Certificates.
- В консоли RRAS откройте свойства порта (например, WAN Miniport (IKEv2)) и укажите этот сертификат.
Клиентские сертификаты:
- Для доменных компьютеров настройте автоматическую регистрацию сертификатов через групповую политику.
- Создайте GPO: Computer Configuration → Policies → Windows Settings → Security Settings → Public Key Policies → Certificate Services Client - Auto-Enrollment.
- Включите политику и выберите шаблон сертификата компьютера (например, Workstation Authentication).
- Убедитесь, что корневой сертификат вашего CA установлен в хранилище Trusted Root Certification Authorities на всех клиентах.
Если вы используете публичный сертификат для сервера (например, от Let's Encrypt), клиенты будут доверять ему автоматически, так как корневые сертификаты публичных CA уже встроены в Windows. Однако для клиентских сертификатов всё равно потребуется внутренний CA.
Создание и распространение VPN-профиля на клиентах
После настройки сервера необходимо создать профиль VPN на клиентских компьютерах. Это можно сделать вручную через настройки Windows, но для массового развёртывания лучше использовать PowerShell, групповые политики или Intune.
Ручное создание профиля:
- Откройте Параметры → Сеть и Интернет → VPN → Добавить VPN-подключение.
- Укажите имя, адрес сервера (FQDN), тип туннеля (IKEv2 или SSTP) и метод аутентификации.
PowerShell-скрипт для создания профиля Always On VPN:
$ProfileName = "Always On VPN"
$ServerAddress = "vpn.company.com"
$TunnelType = "IKEv2"
$AuthenticationMethod = "MachineCertificate"
Add-VpnConnection -Name $ProfileName -ServerAddress $ServerAddress -TunnelType $TunnelType -AuthenticationMethod $AuthenticationMethod -AllUserConnection -SplitTunneling $TrueПараметр -AllUserConnection делает профиль доступным для всех пользователей и позволяет подключаться до входа в систему. -SplitTunneling $True включает раздельное туннелирование: только трафик к корпоративным подсетям идёт через VPN, остальной — напрямую в интернет.
Распространение через GPO:
- Создайте XML-файл профиля в соответствии с VPNv2 CSP.
- Импортируйте его через групповую политику: Computer Configuration → Policies → Administrative Templates → Network → Windows VPN Connection.
- Укажите путь к XML-файлу.
Распространение через Intune:
- В Intune создайте профиль VPN типа Windows 10/11.
- Загрузите XML-файл профиля и назначьте его группам устройств.
После применения профиля клиент автоматически установит VPN-подключение при запуске системы, если настроен Always On VPN.
Настройка брандмауэра и проброса портов
Для корректной работы VPN-сервера необходимо открыть соответствующие порты в брандмауэре Windows и, если сервер находится за NAT, настроить проброс портов на маршрутизаторе.
Необходимые порты:
- IKEv2: UDP 500 (IKE), UDP 4500 (IPsec NAT-T), а также ESP (протокол 50), если не используется NAT-T.
- SSTP: TCP 443 (HTTPS).
- L2TP/IPsec: UDP 500, UDP 4500, ESP.
- PPTP: TCP 1723, GRE (протокол 47).
Настройка брандмауэра Windows:
- Откройте Windows Defender Firewall with Advanced Security.
- Создайте правила для входящих подключений, разрешающие нужные порты и протоколы.
- Для IKEv2 можно использовать готовые правила, которые создаются при установке роли RRAS, но проверьте их наличие.
Проброс портов на маршрутизаторе:
- Зайдите в веб-интерфейс маршрутизатора.
- Найдите раздел Port Forwarding или Virtual Server.
- Создайте правила для каждого порта, указав внешний порт, внутренний порт и IP-адрес VPN-сервера.
- Для ESP-протокола может потребоваться отдельное правило, если маршрутизатор поддерживает проброс протоколов.
Если VPN-сервер находится за двойным NAT или у провайдера нет выделенного IP, могут возникнуть проблемы. В таких случаях рекомендуется использовать VPS с публичным IP-адресом или настроить DMZ для сервера.
Проверка подключения и устранение распространённых проблем
После настройки сервера и клиентов необходимо проверить, что VPN работает корректно. Вот типичные шаги проверки и частые проблемы.
Проверка подключения:
- На клиенте откройте Параметры → Сеть и Интернет → VPN и нажмите Подключить.
- Или используйте команду
rasdial "Имя профиля"в командной строке. - Проверьте статус подключения в Центре управления сетями и общим доступом.
- Выполните
Get-VpnConnectionв PowerShell, чтобы увидеть активные подключения. - Попробуйте открыть внутренний ресурс, например, общую папку или веб-приложение.
Типичные проблемы и решения:
- Ошибка «Не удалось проверить подлинность сервера» — клиент не доверяет сертификату сервера. Убедитесь, что корневой сертификат CA установлен на клиенте, а CN сертификата совпадает с адресом сервера.
- Подключение устанавливается, но нет доступа к внутренним ресурсам — проблема с маршрутизацией или DNS. Проверьте, что VPN-клиентам выдаются правильные DNS-суффиксы и что DNS-сервер доступен через туннель. В свойствах RRAS настройте статический пул IP-адресов и укажите DNS.
- Профиль не применяется автоматически — ошибка в XML-профиле или CSP. Проверьте конфигурацию с помощью
Get-VpnConnection. При использовании GPO убедитесь, что политика применяется (gpresult /r).
- Ошибка аутентификации NPS (событие 6273) — не совпадает общий секрет RADIUS или неверный метод аутентификации. Сравните секреты в NPS и RRAS, проверьте, что в политике NPS выбран поддерживаемый клиентом метод EAP.
- Сервер RRAS не запускается после перезагрузки — конфликт с брандмауэром или другим VPN-сервисом. Проверьте журнал событий Windows → Система. Убедитесь, что порты 500 и 4500 UDP не заняты другими программами.
- Низкая скорость VPN — возможно, используется слабое шифрование или проблема с MTU. Попробуйте уменьшить MTU на VPN-интерфейсе или переключиться на IKEv2 вместо L2TP.
Always On VPN: автоматическое подключение и раздельное туннелирование
Always On VPN (AOVPN) — это технология, которая позволяет клиенту автоматически устанавливать VPN-подключение при запуске системы, ещё до входа пользователя. Это удобно для применения групповых политик, обновления антивируса и доступа к корпоративным ресурсам без ручного вмешательства.
Преимущества Always On VPN:
- Автоматическое подключение при старте системы.
- Поддержка аутентификации по сертификатам компьютера, что повышает безопасность.
- Раздельное туннелирование (split tunneling) — только корпоративный трафик идёт через VPN, остальной — напрямую в интернет.
- Интеграция с Azure AD и Intune для облачного управления.
Настройка Always On VPN:
- Установите RRAS и NPS, как описано выше.
- Настройте сертификаты для компьютеров.
- Создайте VPN-профиль с параметром
-AllUserConnectionи-AuthenticationMethod MachineCertificate. - Распространите профиль через GPO или Intune.
Раздельное туннелирование:
- По умолчанию в Always On VPN включено раздельное туннелирование, но можно настроить, какие подсети должны идти через VPN.
- В PowerShell-скрипте добавьте маршруты:
Add-VpnConnectionRoute -ConnectionName "Always On VPN" -DestinationPrefix "10.0.0.0/8". - Или укажите их в XML-профиле.
Ограничения Always On VPN:
- Требуется Windows 10/11 Enterprise или Education для полной функциональности.
- Для аутентификации по сертификатам компьютера необходим Active Directory и PKI.
- Настройка сложнее, чем обычного VPN, но она окупается автоматизацией.
Always On VPN — это рекомендуемый способ организации удалённого доступа в современных средах Windows, заменяющий устаревший DirectAccess.
Вопросы и ответы
Какой VPN-протокол лучше выбрать для Windows Server 2019?
Для большинства случаев рекомендуется IKEv2, так как он обеспечивает хорошую безопасность, устойчивость к NAT и поддерживает автоматическое переподключение. SSTP подходит, если нужно гарантированно пройти через брандмауэры, так как использует порт 443. L2TP/IPsec можно использовать для совместимости с не-Windows устройствами, но он может блокироваться в сетях с NAT. PPTP использовать не стоит из-за слабого шифрования.
Можно ли настроить VPN на Windows Server 2019 без Active Directory?
Да, можно. В этом случае аутентификация будет выполняться через локальные учётные записи на сервере. Однако вы не сможете использовать сертификаты компьютеров для Always On VPN, а также групповые политики для автоматического распространения профилей. Для небольших организаций или тестовых сред это допустимо, но для продакшена лучше развернуть AD.
Какие порты нужно открыть для VPN на Windows Server 2019?
Для IKEv2 — UDP 500 и UDP 4500 (а также ESP, если не используется NAT-T). Для SSTP — TCP 443. Для L2TP/IPsec — UDP 500, UDP 4500 и ESP. Для PPTP — TCP 1723 и GRE. Убедитесь, что эти порты открыты в брандмауэре Windows и проброшены на маршрутизаторе, если сервер находится за NAT.
Как настроить автоматическое подключение VPN при запуске Windows?
Используйте Always On VPN. Создайте профиль с параметром -AllUserConnection и методом аутентификации MachineCertificate. Распространите профиль через групповые политики или Intune. После этого VPN будет подключаться автоматически при старте системы, ещё до входа пользователя.
Почему возникает ошибка «Не удалось проверить подлинность сервера» при подключении?
Эта ошибка означает, что клиент не доверяет сертификату VPN-сервера. Убедитесь, что корневой сертификат вашего CA установлен в хранилище «Доверенные корневые центры сертификации» на клиенте. Также проверьте, что в сертификате сервера указан правильный FQDN, который клиент использует для подключения.
Что такое раздельное туннелирование и зачем оно нужно?
Раздельное туннелирование (split tunneling) — это режим, при котором только трафик к корпоративным ресурсам направляется через VPN, а остальной интернет-трафик идёт напрямую. Это снижает нагрузку на VPN-сервер и уменьшает задержки для пользователя. В Always On VPN раздельное туннелирование включено по умолчанию, но вы можете настроить список подсетей, которые должны идти через туннель.
Можно ли использовать публичный SSL-сертификат для VPN-сервера?
Да, можно. Если вы используете публичный сертификат (например, от Let's Encrypt), клиенты будут доверять ему автоматически, так как корневые сертификаты публичных CA уже встроены в Windows. Это упрощает настройку, так как не требуется устанавливать корневой сертификат на клиенты. Однако для аутентификации клиентов по сертификатам всё равно потребуется внутренний CA.