Что такое L2TP

L2TP (Layer 2 Tunneling Protocol, протокол туннелирования второго уровня) - Поддержка встроена в Windows. Для создания защищённой VPN его используют совместно с IPSec.

Протокол туннелирования второго уровня создан на основе pptp и проприетарного протокола L2F, разработанного Cisco. В отличие от pptp, в L2TP не используется выделенный канал управления. Все управляющие сообщения посылаются через туннель. Проблема PPTP и иже с ними, связанная с переходом через NAT, ввиду отсутствия в GRE портов, решена в L2TP инкапсулированием туннелируемых данных в UDP (порт 1701). В результате пользовательские данные обернуты как в капусте целой кучей заголовков, да плюс еще PPP-прицепчик.

Реализация протокола мультисвязи MPD имеет унифицированную поддержку следующих типов связи: L2TP, PPTP и другие.

Данный метод подойдет даже новичкам в системном администрировании, для начала можно ознакомиться с информацией от разработчика скрипта IPsec VPN Server Auto Setup Scripts на ресурсе GitHub. В скрипте используются протоколы IPsec (Libreswan) и L2TP (xl2tpd). Данный скрипт проверен на работоспособность для Ubuntu 20.04 (Focal), Ubuntu 22.

apt update
wget https://get.vpnsetup.net -O vpn.sh && sudo sh vpn.sh

Если вы хотите выполнить скрипт со своими учетными данными для доступа к VPN-серверу, то запустите команду и затем отредактируйте файл vpnsetup.sh в редакторе Nano. Вместо этих переменных впишите свои данные: YOUR_IPSEC_PSK, YOUR_USERNAME and YOUR_PASSWORD.

wget https://get.vpnsetup.net -O vpn.sh
nano -w vpn.sh

В автоматическом режиме скрипт создаст готовый L2TP VPN-server, а также сгенерирует учетные данные для доступа к серверу VPN, примерно так:

IPsec VPN server is now ready for use!
 
Connect to your new VPN with these details:
 
Server IP: xxx.xxx.xxx.xxx
IPsec PSK: djsXsLpgShVENZY3WRS
Username: vpnuser
Password: 7Vjjuo5l6Wzke4x
 
Write these down. Youll need them to connect!
 
IKEv2 setup successful. Details for IKEv2 mode:
 
VPN server address: xxx.xxx.xxx.xxx
VPN client name: vpnclient
 
Client configuration is available at:
/root/vpnclient.p12 (for Windows & Linux)
/root/vpnclient.sswan (for Android)
/root/vpnclient.mobileconfig (for iOS & macOS)

Работы на сервере завершены, учетные данные для входа получены, осталось настроить VPN клиент на своем компьютере (или смартфоне) для получения доступа к нашему серверу ВПН.

  1. Выберите Пуск > Параметры > Сеть & Интернет > VPN > Добавить VPN.
  2. В разделе Добавление VPN-подключения выполните следующие действия.
    1. В поле Поставщик услуг VPN выберите Windows (встроенный).
    2. В поле Имя подключения введите понятное вам имя (например, "Мой личный VPN"). Это имя подключения VPN, которое будет нужно искать для подключения.
    3. В поле Имя или адрес сервера введите адрес для сервера VPN.
    4. Выберите тип VPN-подключения из списка «L2TP/IPsec с общим ключом».
    5. Общий ключ — вводим наш IPsec PSK
    6. Тип данных для входа — выберем «имя пользователя и пароль».
    7. Имя пользователя и пароль — заполняем эти пункты.
  3. Нажмите Сохранить.

Попытавшись подключиться скорей всего вы получите ошибку: "Не удалось установить связь по сети между компьютером и VPN-сервером, так как удаленный сервер не отвечает. Возможная причина: одно из сетевых устройств (таких как брандмауэры, NAT, маршрутизаторы и т.п.) между компьютером и удаленным сервером не настроено для разрешения VPN-подключений. Чтобы определить, какое устройство вызывает эту проблему, обратитесь к администратору или поставщику услуг."

Для ее решения, если VPN сервер L2TP/IPsec находится за NAT, то для корректного подключения внешних клиентов через NAT необходимо как на сервере, так и на клиенте Windows внести изменение в реестр, разрешающее UDP инкапсуляцию пакетов для L2TP и поддержку (NAT-T) для IPsec. И даже если сервер не находится за NAT все равно сделайте как указано ниже - это ж Windows:)

  1. Откройте редактор реестра regedit.exe и перейдите в ветку для Windows 10,8.1,7 и Windows Server 2016,2012R2,2008R2 — HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent
  2. Создайте DWORD параметр с именем AssumeUDPEncapsulationContextOnSendRule и значением 2

Возможные значения параметра AssumeUDPEncapsulationContextOnSendRule:

  • 0 – (значение по-умолчанию), предполагается, что VPN сервер подключен к интернету без NAT;
  • 1 – VPN сервер находится за NAT;
  • 2 — и VPN сервер и клиент находятся за NAT.

Осталось перезагрузить компьютер и убедиться, что VPN туннель успешно создается.


Как протестировать скрипт или установщик VPN? Используйте Надежные VPS для кратковременного использования.
PQ VPS сервера в 38+ странах.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!