# Попытка L2TP-подключения не удалась из-за ошибки, произошедшей на уровне безопасности
# Симптомы

*Ошибка "Попытка 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.

1.  Откройте редактор реестра`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**
2.  Создайте **DWORD** параметр с именем **AssumeUDPEncapsulationContextOnSendRule** и значением **2**[<img height="459" width="589" alt="AssumeUDPEncapsulationContextOnSendRule" src="https://winitpro.ru/wp-content/uploads/2017/10/AssumeUDPEncapsulationContextOnSendRule.jpg" />](https://winitpro.ru/wp-content/uploads/2017/10/AssumeUDPEncapsulationContextOnSendRule.jpg)
    **Примечание**. Возможные значения параметра AssumeUDPEncapsulationContextOnSendRule:
    *   **0**– (значение по умолчанию), предполагается, что VPN сервер подключен к интернету без NAT;
    *   **1** – VPN сервер находится за NAT;
    *   **2 -** и VPN сервер и клиент находятся за NAT.
3.  Осталось перезагрузить компьютер и убедиться, что VPN туннель успешно создается.

Если и Windows VPN сервер и клиент находятся за NAT, нужно изменить это параметре на обоих системах.

Можно использовать [командлет PowerShell для внесения изменений в реестр](https://winitpro.ru/index.php/2017/02/07/rabotaem-s-reestrom-windows-cherez-powershell/):

```txt
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, вам **не нужно** [пробрасывать на него порт](https://winitpro.ru/index.php/2014/12/23/nastrojka-port-forvardinga-v-windows/)1701 UDP с внешнего роутера/маршрутизатора.

# Решение 2

```txt
Попытка L2TP-подключения не удалась из-за ошибки, произошедшей на уровне безопасности во время согласований с удаленным компьютером. (Ошибка 789)
Error 789: The L2TP connection attempt failed because the security layer encountered a processing error during initial negotiations with the remove computer. 
```

<img height="149" width="303" alt="l2tp ошибка 789 подключение не удалась из за несогласования безопасности" src="https://winitpro.ru/wp-content/uploads/2017/10/l2tp-789-oshibka-soglasovaniya.jpg" />

Это баг. Если в вашей локальной сети несколько 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 клиентами или утилитами)

<img height="288" width="886" alt="Параметры реестра ProhibitIPSec AllowL2TPWeakCrypto для корректной работы VPN за NAT" src="https://winitpro.ru/wp-content/uploads/2017/10/ProhibitIPSec-AllowL2TPWeakCrypto-parametry-reestra.png" />

Для изменения этих параметров реестра достаточно выполнить команды:

```txt
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`
*   &#x20;<img height="136" width="499" alt="Проверить службы IKE и IPsec Policy Agent" src="https://winitpro.ru/wp-content/uploads/2017/10/sluzhba-ike-i-ipsec-agent.jpg" />
*   Откройте диспетчер устройств и удалите виртуальные адаптеры **WAN Miniport (L2TP)**&#x438; **WAN Miniport (IKEv2)**. Перезагрузите компьютер. После перезагрузки Windows восстановит эти адаптеры с настройками по умолчанию;&#x20;
*   <img height="314" width="393" alt="переустановить виртуальный адаптер wan miniport l2tp" src="https://winitpro.ru/wp-content/uploads/2017/10/pereustanovit-adapter-wan-miniport-l2tp.jpg" />
*   В некоторых случаях помогает отключение IPSec и использование только L2TP. Для этого нужно изменить значение параметр **ProhibitIpSec**на **1**в ветке HKLM\SYSTEM\CurrentControlSet\Services\RasMan\Parameters.

# Решение 3

Попробуйте обновить или переустановить драйвер сетевой карты последней версии&#x20;