#2950: Попытка L2TP-подключения не удалась из-за ошибки, произошедшей на уровне безопасности
Отредактирована: 139 дней назадСимптомы
Ошибка "Попытка L2TP-подключения не удалась из-за ошибки, произошедшей на уровне безопасности во время согласований с удаленным компьютером" при подключении к L2TP/IpSec VPN.
Решение 1
Разрешить подключение к L2TP/IPSec VPN серверу за NAT
Если целевой L2TP VPN сервер находится за NAT, то с настройками по умолчанию вы не сможете установить подключение к нему с компьютера Windows. Дело в том, что протокол IPsec не поддерживает NAT. Для обхода этого ограничения используется протокол NAT-T, который инкапсулирует пакеты IPsec в UDP/4500.
IPSec использует протокол ESP (Encapsulating Security Payload) для шифрования пакетов, а протокол ESP не поддерживает PAT/ Port Address Translation.
NAT-T включен по умолчанию почти во всех операционных системах (iOS, Android, Linux), кроме Windows.
Если VPN сервер L2TP/IPsec находится за NAT, то для корректного подключения внешних клиентов через NAT необходимо как на сервере, так и на клиентеWindows внести изменение в реестр, разрешающее UDP инкапсуляцию пакетов для L2TP и поддержку (NAT-T) для IPsec.
- Откройте редактор реестра
regedit.exeи перейдите в ветку:- Для Windows 10,8.1,7 и Windows Server 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:- 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 подключения сначала создается зашифрованный IPsec-канал (используется протокол IKE: UDP/500 и NAT-T: UDP/4500). После этого уже внутри IPsec поднимается туннель L2TP на порт 1701 UDP. Это означает, что, если VPN сервер находится за NAT, вам не нужно пробрасывать на него порт1701 UDP с внешнего роутера/маршрутизатора.
Решение 2
Попытка L2TP-подключения не удалась из-за ошибки, произошедшей на уровне безопасности во время согласований с удаленным компьютером. (Ошибка 789)
Error 789: The L2TP connection attempt failed because the security layer encountered a processing error during initial negotiations with the remove computer.
Это баг. Если в вашей локальной сети несколько Windows компьютеров, вы не сможете установить более одного одновременного подключения к внешнему L2TP/IPSec VPN серверу. Если при наличии активного VPN туннеля с одного клиента, вы попытаетесь подключиться к тому же самому VPN серверу с другого компьютера, появится ошибка с кодом 809 или 789:
Что интересно, эта проблема наблюдется только с 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 клиентами или утилитами)
Для изменения этих параметров реестра достаточно выполнить команды:
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 адрес (работает на всех версиях, начиная с Windows XP и заканчивая Windows 10/11).
Еще несколько советов, которые помогут вам исправить проблему с L2TP VPN подключением в Windows
- Проверьте, что в настройках L2TP VPN подключения включен протокол аутентификации, которые поддерживается VPN сервером. Откройте ncpa.cpl -> свойства VPN подключения -> вкладка Security. В списке протоколов отметьте разрешенные только PAP.
- Проверьте, что в Windows запущены службы IKE and AuthIP IPsec Keying Modulesи IPsec Policy Agent:
get-service IKEEXT,PolicyAgent-

- Откройте диспетчер устройств и удалите виртуальные адаптеры WAN Miniport (L2TP)и WAN Miniport (IKEv2). Перезагрузите компьютер. После перезагрузки Windows восстановит эти адаптеры с настройками по умолчанию;
-
- В некоторых случаях помогает отключение IPSec и использование только L2TP. Для этого нужно изменить значение параметр ProhibitIpSecна 1в ветке HKLM\SYSTEM\CurrentControlSet\Services\RasMan\Parameters.
Решение 3
Попробуйте обновить или переустановить драйвер сетевой карты последней версии