как сделать l2tp vpn сервер
Как сделать L2TP VPN сервер: инструкция, о которой молчат
как сделать l2tp vpn сервер — этим запросом задаются и сисадмины, и обычные пользователи, которым надоели платные подписки. Кажется, что старый добрый L2TP/IPsec — надёжный выбор, ведь его поддерживает даже Windows без дополнительного софта. Но на деле вы рискуете получить медленное соединение, утечки данных и блокировки со стороны провайдера. Разберём, как поднять такой сервер, какие грабли вас ждут и почему многие переходят на WireGuard.
Почему L2TP всё ещё жив и когда он реально нужен
L2TP (Layer 2 Tunneling Protocol) сам по себе не шифрует трафик — он только создаёт туннель. Вся защита ложится на IPsec (обычно ESP в режиме туннеля). Этой связке больше 20 лет, её поддерживают буквально все устройства: от Windows 98 до iPhone, от роутеров Keenetic до приставок.
Но есть нюансы:
- L2TP/IPsec тяжело пробивает NAT — нужны открытые порты (UDP 500, 4500, ESP протокол 50). Из‑за этого на некоторых публичных Wi‑Fi или в сетях с корпоративными файрволами соединение просто не установится.
- Протокол устарел: алгоритмы шифрования 3DES и SHA‑1 давно взломаны, а современные AES‑256 в связке с L2TP хоть и держатся, но уступают по скорости OpenVPN и WireGuard.
- DPI (Deep Packet Inspection) российских провайдеров, например Ростелекома, легко засекает L2TP по характерным заголовкам ESP. В результате канал режут до 10–20 Мбит/с или блокируют.
Тем не менее L2TP остаётся единственным вариантом, если:
- нужно подключить устройство, где не поставить стороннее приложение (старые принтеры, IP‑камеры, Windows без прав администратора);
- вы настраиваете корпоративный доступ с привязкой к домену;
- хочется использовать встроенный VPN‑клиент без возни с .ovpn‑файлами.

Что нужно для своего L2TP VPN сервера
Вам потребуется:
- VPS — виртуальный сервер в дата-центре. Минимальные характеристики: 1 vCPU, 512 МБ RAM, 10 ГБ SSD. Хостинг лучше выбирать за пределами РФ (Нидерланды, Германия, Финляндия), чтобы избежать требований «пакета Яровой» и ограничений РКН. Примерная цена — от 300–400 руб./мес. Если берёте в России — готовьтесь к тому, что сервер могут заблокировать по IP.
- Домен или статический IP — для сертификатов и удобства подключения. Если IP плавает, придётся каждый раз менять настройки клиентов.
- Linux‑дистрибутив — проще всего Ubuntu 22.04 LTS. На ней есть готовый скрипт
setup-ipsec-vpnот хакера (см. ниже), но мы пойдём ручным путём, чтобы понять, что происходит. - Открытые порты в файрволе — на VPS должны быть разрешены UDP 500, UDP 4500, протокол ESP (IP 50). У многих хостингов по умолчанию стоит блокировка ESP — это нужно явно включить в панели управления.
- Время и нервы — L2TP капризен. Одна ошибка в ipsec.conf — и соединение падает с ошибкой 789 или 809. Придётся гуглить логи
/var/log/auth.logи «танцевать с бубном».

Пошаговая настройка L2TP/IPsec на Ubuntu 22.04
Подключаемся по SSH к серверу. Все команды выполняем от root или через sudo.
1. Обновление системы и установка пакетов
apt update && apt upgrade -y
apt install strongswan strongswan-pki libcharon-extra-plugins xl2tpd net-tools iptables-persistent -y
strongswan— реализация IPsec.xl2tpd— демон L2TP.iptables-persistent— сохранит правила после перезагрузки.
2. Настройка IPsec (strongSwan)
Редактируем /etc/ipsec.conf:
nano /etc/ipsec.conf
Содержимое:
config setup
charondebug="ike 2, knl 2, cfg 2"
uniqueids=no
conn l2tp-psk
auto=add
keyexchange=ikev1
authby=secret
pfs=no
rekey=no
type=transport
left=%any
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
dpddelay=30
dpdtimeout=120
dpdaction=clear
ike=aes256-sha1-modp1024
esp=aes256-sha1
Параметр pfs=no отключает Perfect Forward Secrecy — это снижает безопасность, но нужно для совместимости с Windows. Если нужна PFS, ставьте ike=aes256-sha1-modp2048 — но тогда Windows 7 не подключится.
Теперь задаём общий ключ (PSK) в /etc/ipsec.secrets:
: PSK "ваш_секретный_ключ_32_символа"
Ключ должен быть длинным и случайным. Сгенерировать можно командой openssl rand -base64 32.
3. Настройка xl2tpd
Файл /etc/xl2tpd/xl2tpd.conf:
[global]
port = 1701
[lns default]
ip range = 10.10.10.2-10.10.10.100
local ip = 10.10.10.1
require chap = yes
refuse pap = yes
require authentication = yes
name = l2tp-vpn
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
4. PPP и аутентификация
Создаём /etc/ppp/options.xl2tpd:
ipcp-accept-local
ipcp-accept-remote
ms-dns 8.8.8.8
ms-dns 1.1.1.1
noccp
auth
crtscts
mtu 1400
mru 1400
nodefaultroute
debug
lock
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
Добавляем пользователя в /etc/ppp/chap-secrets:
user1 * password1 *
Формат: имя сервер(звёздочка) пароль IP(звёздочка). Можно несколько пользователей.
5. Включение форвардинга и фаервол
Раскомментируем net.ipv4.ip_forward=1 в /etc/sysctl.conf. Применяем:
sysctl -p
Настраиваем iptables (NAT для выхода в интернет):
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o ppp+ -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i ppp+ -o eth0 -j ACCEPT
Сохраняем правила:
netfilter-persistent save
6. Запуск и автозагрузка
systemctl enable strongswan-starter xl2tpd
systemctl restart strongswan-starter xl2tpd
Проверяем логи:
journalctl -u strongswan-starter -f
journalctl -u xl2tpd -f
Если всё в порядке — подключаемся с клиента.
Настройка клиентов: Windows, macOS, Android, iOS, роутеры
Windows 10/11:
- «Параметры» → «Сеть и Интернет» → «VPN» → «Добавить VPN-подключение».
- Тип: L2TP/IPsec с предварительным ключом.
- Ввести IP сервера, имя пользователя, пароль, PSK.
- Дополнительно: отключить «Включить проверку подлинности на основе сертификатов» и выбрать «Использовать протокол проверки подлинности: PAP» (если MSCHAPv2 не работает).
- В реестре для исправления ошибки 809: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent → добавить AssumeUDPEncapsulationContextOnSendRule = DWORD 2.
macOS:
- «Системные настройки» → «Сеть» → «Добавить службу» → VPN типа L2TP/IPsec.
- Указать IP, имя, пароль, PSK.
- В «Параметры сеанса»: отключить «Перенаправлять весь трафик через VPN» (иначе могут конфликты со шлюзом).
Android:
- «Настройки» → «Подключения» → «VPN» → «Добавить VPN».
- Тип: L2TP/IPsec PSK.
- Ввести данные. Важно: MTU на Android часто сбрасывается до 1500, что может вызвать фрагментацию. Рекомендуется принудительно задать MTU 1400 в PPP‑опциях сервера.
Роутеры (Keenetic, ASUS, OpenWrt):
- В панели администратора ищем раздел «VPN-сервер» или «IPsec VPN».
- Указываем те же параметры, что и в StrongSwan.
- Минус: встроенные реализации L2TP на роутерах часто глючат — теряют соединение при переключении между Wi‑Fi и мобильной сетью.
Чего вам НЕ говорят в других гайдах
1. Ваш PSK можно узнать за 10 минут
При подключении с Windows предварительный ключ хранится в открытом виде в реестре (если не используется шифрование учётных данных). Любой malware с правами пользователя вытащит PSK. Рекомендация: не используйте один PSK для всех — настраивайте сертификаты (EAP‑TLS) хотя бы для корпоративных сценариев.
2. L2TP не переживает смену сети
При переключении с Wi‑Fi на мобильный интернет (или наоборот) туннель разрывается. В отличие от WireGuard, L2TP не умеет «плыть» за сменой IP. Клиент зависает на 2–5 минут, пока таймаут не сбросит соединение. Для мобильных пользователей это катастрофа.
3. Реальные утечки DNS и WebRTC
По умолчанию L2TP не заворачивает DNS-запросы — они могут уходить напрямую вашему провайдеру. Даже если вы указали ms-dns 1.1.1.1, Windows всё равно может использовать DNS-сервер, полученный по DHCP. Проверьте на browserleaks.com — часто виден настоящий IP и DNS. Решение: добавить в iptables принудительный перенаправление DNS:
iptables -t nat -A PREROUTING -i ppp+ -p udp --dport 53 -j DNAT --to-destination 1.1.1.1
Но это не спасёт от WebRTC: браузер может определить ваш реальный IP через STUN. Единственный выход — расширение WebRTC Leak Prevent.
4. Провайдер может легко заблокировать L2TP
Ростелеком и МТС активно борются с VPN. Они видят ESP-пакеты и режут их скорость до 50 Кбит/с. Используйте протоколы с маскировкой: OpenVPN over TCP 443 (выглядит как HTTPS) или WireGuard через obfuscation (например, wg‑proxy). L2TP для обхода блокировок бесполезен.
5. Логирование и юрисдикция
Если арендуете VPS в Нидерландах или Германии — на сервере законы обязывают хранить логи подключений до 6 месяцев (14 Eyes). При поступлении запроса от местной полиции ваши данные передадут. Для параноиков — VPS в Сейшелах или с оплатой криптовалютой, но такие стоят $15–20/мес.
6. «Kill switch» в L2TP — миф
Встроенного механизма нет. При падении туннеля трафик пойдёт напрямую. Программные kill switches есть только в клиентах OpenVPN и WireGuard. На Windows можно настроить брандмауэр: разрешить весь трафик только на IP VPN-сервера, а всё остальное блокировать. Но это громоздко и при разрыве вы вообще останетесь без интернета.
Сравнительная таблица: L2TP vs OpenVPN vs WireGuard vs IKEv2
| Критерий | L2TP/IPsec | OpenVPN (UDP) | WireGuard | IKEv2/IPsec |
|---|---|---|---|---|
| Шифрование | AES‑256 + SHA‑1 (но можно AES‑SHA‑256) | AES‑256‑GCM, ChaCha20 | ChaCha20‑Poly1305 | AES‑256‑GCM, ChaCha20 |
| PFS (Perfect Forward Secrecy) | Нет по умолчанию (включается отключением pfs=no) | Да (через DH) | Да (через Curve25519) | Да (через DH) |
| Скорость (на канале 100 Мбит/с) | 30–50 Мбит/с (на VPS) | 70–90 Мбит/с | 95+ Мбит/с | 80–95 Мбит/с |
| Обход DPI (Ростелеком) | Плохо | Хорошо (через TCP 443) | Средне (WireGuard легко детектится, нужен obfs) | Хорошо (IKEv2 используют мобильные операторы) |
| Поддержка мобильности (смена сети) | Нет | Частично (ручной reconnect) | Да (отличная roaming) |
Great summary. Nice focus on practical details and risk control. A quick comparison of payment options would be useful.
Question: Is there a way to set deposit/time limits directly in the account?