Что такое L2TP
L2TP (Layer 2 Tunneling Protocol, протокол туннелирования второго уровня) - Поддержка встроена в Windows. Для создания защищённой VPN его используют совместно с IPSec.
Протокол туннелирования второго уровня создан на основе pptp и проприетарного протокола L2F, разработанного Cisco. В отличие от pptp, в L2TP не используется выделенный канал управления. Все управляющие сообщения посылаются через туннель. Проблема PPTP и иже с ними, связанная с переходом через NAT, ввиду отсутствия в GRE портов, решена в L2TP инкапсулированием туннелируемых данных в UDP (порт 1701). В результате пользовательские данные обернуты как в капусте целой кучей заголовков, да плюс еще PPP-прицепчик.
Реализация протокола мультисвязи MPD имеет унифицированную поддержку следующих типов связи: L2TP, PPTP и другие.
Установка и настройка L2TP VPN-сервера на Ubuntu Server
Данный метод подойдет даже новичкам в системном администрировании, для начала можно ознакомиться с информацией от разработчика скрипта 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 клиент на своем компьютере (или смартфоне) для получения доступа к нашему серверу ВПН.
Настройка клиента L2TP/IPsec в Windows 11
- Выберите Пуск > Параметры > Сеть & Интернет > VPN > Добавить VPN.
- В разделе Добавление VPN-подключения выполните следующие действия.
- В поле Поставщик услуг VPN выберите Windows (встроенный).
- В поле Имя подключения введите понятное вам имя (например, "Мой личный VPN"). Это имя подключения VPN, которое будет нужно искать для подключения.
- В поле Имя или адрес сервера введите адрес для сервера VPN.
- Выберите тип VPN-подключения из списка «L2TP/IPsec с общим ключом».
- Общий ключ — вводим наш IPsec PSK
- Тип данных для входа — выберем «имя пользователя и пароль».
- Имя пользователя и пароль — заполняем эти пункты.
- Нажмите Сохранить.
Попытавшись подключиться скорей всего вы получите ошибку: "Не удалось установить связь по сети между компьютером и VPN-сервером, так как удаленный сервер не отвечает. Возможная причина: одно из сетевых устройств (таких как брандмауэры, NAT, маршрутизаторы и т.п.) между компьютером и удаленным сервером не настроено для разрешения VPN-подключений. Чтобы определить, какое устройство вызывает эту проблему, обратитесь к администратору или поставщику услуг."
Для ее решения, если VPN сервер L2TP/IPsec находится за NAT, то для корректного подключения внешних клиентов через NAT необходимо как на сервере, так и на клиенте Windows внести изменение в реестр, разрешающее UDP инкапсуляцию пакетов для L2TP и поддержку (NAT-T) для IPsec. И даже если сервер не находится за NAT все равно сделайте как указано ниже - это ж Windows:)
- Откройте редактор реестра regedit.exe и перейдите в ветку для Windows 10,8.1,7 и Windows Server 2016,2012R2,2008R2 — HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent
- Создайте DWORD параметр с именем AssumeUDPEncapsulationContextOnSendRule и значением 2
Возможные значения параметра AssumeUDPEncapsulationContextOnSendRule:
- 0 – (значение по-умолчанию), предполагается, что VPN сервер подключен к интернету без NAT;
- 1 – VPN сервер находится за NAT;
- 2 — и VPN сервер и клиент находятся за NAT.
Осталось перезагрузить компьютер и убедиться, что VPN туннель успешно создается.
📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!
7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Китайский VPN Shadowsocks простая установка и настройка
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах