Как подключить L2TP/IPSec VPN-сервер из Windows

В этой статье мы рассмотрим наиболее распространенные причины ошибок при подключении к L2TP/IPSec VPN-серверу с Windows 10/11 или Windows Server 2019/2016. Если вы не можете установить L2TP VPN-соединение с устройств Windows, внимательно изучите код ошибки и ее описание. Там часто указывается причина ошибки VPN.

Невозможно подключиться к L2TP/IPSec VPN в Windows

При попытке подключения клиента Windows к серверу L2TP VPN может возникнуть ошибка:

Can’t connect to your_L2TP-IPsec-VPN-Server.hostname
The network connection between your computer and the VPN server could not be established because the remote server is not responding. This could be because one of the network devices (e.g. firewalls, NAT, routers, etc) between your computer and the remote server is not configured to allow VPN connections. Please contact your Administrator or your service provider to determine which device may be causing the problem.

Не удается подключиться к L2TP-IPsec-VPN-ServerНевозможно подключиться к L2TP-IPsec-VPN-Server

Наиболее распространенными кодами ошибок, связанных с VPN, являются 800, 794, или 809.

Если возникла эта ошибка, проверьте, что вы ввели правильный адрес VPN-сервера, что VPN-сервер доступен и что все необходимые порты открыты в брандмауэрах.

Для подключения VPN-сервера L2TP/IPsec должны быть открыты следующие порты:

  • UDP порт 1701 (Layer 2 Forwarding Protocol (L2F) и Layer 2 Tunneling Protocol (L2TP));
  • UDP порт 500 (IKE, управление ключами шифрования);
  • ESP 50 протокол (Encapsulating Security Payload) для IPSec;
  • Если VPN-сервер расположен за NAT, вам также необходимо открыть UDP порт 4500 (протокол NAT-T, IPSec Network Address Translator Traversal).
Если сервер L2TP VPN работает на Windows Server, вам нужно открыть эти входящие порты в правилах брандмауэра Windows Defender.

Используйте встроенный клиент Windows VPN Client для подключения к серверу L2TP VPN. Проверьте настройки VPN-соединения. Убедитесь, что ваше VPN-соединение использует туннель L2TP и предварительный ключ (PSK) или сертификат для аутентификации. Вы можете использовать PowerShell для списка параметров VPN-соединения:

Get-VpnConnection

powershell: list l2tp vpn connectionspowershell: list l2tp vpn connections

Как подключиться к L2TP/IPSec VPN-серверу за NAT

Если целевой L2TP VPN-сервер находится за NAT, вы не сможете подключиться к нему с компьютера под управлением Windows с настройками по умолчанию. Проблема в том, что протокол IPsec не поддерживает NAT. Чтобы обойти это ограничение, NAT-T, который инкапсулирует пакеты IPsec через UDP/4500.

IPSec использует протокол Encapsulating Security Payload (ESP) для шифрования пакетов, а протокол ESP не поддерживает Port Address Translation (PAT).

NAT-T включен по умолчанию почти во всех операционных системах (iOS, Android, Linux), кроме Windows.

Если L2TP/IPsec VPN-сервер находится за NAT, необходимо внести изменения в реестр на сервере и клиенте, чтобы разрешить инкапсуляцию UDP-пакетов для L2TP и поддержку (NAT-T) для IPsec.

  • Откройте редактор реестра (regedit.exe) и перейдите к следующему ключу реестра:
    • Windows 11/10/8.1 и Windows Server 2022/2019/2016/2012R2/2008R2 — HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent
    • Windows XP/Windows Server 2003 — HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPSec
  • Создать DWORD параметр с именем AssumeUDPEncapsulationContextOnSendRule и значение 2;Ключ реестра AssumeUDPEncapsulationContextOnSendRule Ключ реестра AssumeUDPEncapsulationContextOnSendRule
    Примечание. Возможно ПредполагатьUDPEncapsulationContextOnSendRule значения:

    • 0 — (значение по умолчанию) предполагает, что VPN-сервер напрямую подключен к Интернету (без NAT);
    • 1 — VPN-сервер расположен за устройством NAT;
    • 2 — VPN-сервер и клиент находятся за NAT.
  • Перезагрузите компьютер и убедитесь, что VPN-туннель успешно создан.
  • Если и сервер, и клиент Windows VPN находятся за NAT, вам нужно будет изменить этот параметр на обоих компьютерах.

    Для внесения изменений в реестр можно использовать команду PowerShell:

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\PolicyAgent" -Name "AssumeUDPEncapsulationContextOnSendRule" -Type DWORD -Value 2 –Force;

    После включения поддержки NAT-T вы сможете подключаться к VPN-серверу с клиента через NAT (включая двойной NAT). В этом случае перед созданием L2TP-соединения создается зашифрованный IPsec-туннель (с использованием протокола IKE: UDP/500 и NAT-T: UDP/4500). Затем туннель L2TP создается внутри IPsec на порту UDP 1701. Это означает, что если VPN-сервер находится за NAT, вам не нужно перенаправлять на него UDP-порт 1701 с периметра маршрутизатора/брандмауэра.

    Попытка подключения L2TP VPN не удалась в Windows

    В Windows есть еще одна досадная ошибка VPN. Если в вашей локальной сети есть несколько компьютеров с Windows, вы не сможете одновременно подключиться к внешнему L2TP/IPSec VPN-серверу. Если вы попытаетесь подключиться к тому же VPN-серверу с другого компьютера при активном VPN-туннеле из вашей сети, вы получите код ошибки 809 или 789:

    Error 789: The L2TP connection attempt failed because the security layer encountered a processing error during initial negotiations with the remove computer.

    l2tp-соединение не удалось из-за переговоров на уровне безопасностиl2tp-соединение не удалось из-за переговоров на уровне безопасности

    Интересно отметить, что эта проблема возникает только на устройствах под управлением Windows. С устройствами Linux/MacOS/Android в той же локальной сети таких проблем не возникает. Вы можете легко подключаться к серверу VPN L2TP с нескольких устройств одновременно.

    Согласно TechNet, проблема связана с некорректной реализацией клиента L2TP/IPSec в Windows (не исправленной в течение многих лет).

    Чтобы исправить эту ошибку, необходимо изменить два параметра реестра в папке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters и перезагрузите компьютер:

    • AllowL2TPWeakCrypto — изменить на 00000001 (позволяет использовать слабые алгоритмы шифрования; L2TP/IPSec использует алгоритмы MD5 и DES);
    • ProhibitIPSec — изменить на 00000000 (включает шифрование IPsec, которое часто отключается некоторыми сторонними VPN-клиентами или системными инструментами).

    AllowL2TPWeakCrypto и ProhibitIpSec для l2tp ipsec vpn соединения за NAT в WindowsAllowL2TPWeakCrypto и ProhibitIpSec для l2tp ipsec vpn соединения за NAT в Windows

    Выполните следующую команду, чтобы применить эти изменения в реестре:

    reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters" /v AllowL2TPWeakCrypto /t REG_DWORD /d 1 /f
    reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters" /v ProhibitIpSec /t REG_DWORD /d 0 /f

    Это обеспечивает поддержку нескольких одновременных соединений L2TP/IPSec в Windows через общий публичный IP-адрес.

    Вот еще несколько советов по устранению проблемы с L2TP VPN-соединением в Windows:

    • Убедитесь, что в настройках соединения L2TP VPN включен только протокол аутентификации, поддерживаемый VPN-сервером. Откройте ncpa.cpl -> свойства вашего VPN-соединения -> Безопасность вкладка. Выберите разрешенные протоколы аутентификации. Обычно выбирают только MS-CHAP v2 следует проверить здесь; использование ms-chap-v2 auth в l2tp vpnиспользование ms-chap-v2 auth в l2tp vpn
    • Перейдите на вкладку Options -> PPP Settings -> проверьте Включить расширение LCP;расширение l2tp lcpрасширение l2tp lcp
    • Проверьте, что Модули ключей IPsec IKE и AuthIP и Агент политики IPsec службы работают в Windows:
      get-service IKEEXT,PolicyAgentпроверка служб ike и ipsecпроверка служб ike и ipsec
    • Запустите диспетчер устройств и удалите WAN Miniport (L2TP) и WAN Miniport (IKEv2) виртуальные адаптеры. Перезагрузите компьютер. После перезагрузки Windows восстановит эти виртуальные адаптеры с настройками по умолчанию; переустановка l2tp vpn wanminiport адаптеров на windowsпереустановка l2tp vpn wanminiport адаптеров на windows
      Дополнительные сведения см. в разделе «Как исправить ошибку VPN-соединение не может быть установлено».
    • В некоторых случаях помогает отключение IPSec и использование только L2TP. Для этого измените значение параметра ProhibitIpSec на 1 в рег. ключе HKLM\SYSTEM\CurrentControlSet\Services\RasMan\Parameters.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *