В продолжение темы VPN серверов на Debian, попробуем поднять L2TP+IPSec VPN сервер.
Устанавливать будем на том же сервере, где сейчас установлен VPN PPTP.
1. Настройка Debian, обновим пакеты и настроим сеть
Обновим систему и пакеты:
apt-get update && apt-get upgrade && apt-get dist-upgrade
Настроим сеть:
nano /etc/network/interfaces
nano /etc/resolv.conf
Применим настройки:
/etc/init.d/networking restart
2. Установим VPN сервер l2tp + ipsec
В качестве ipsec демона будем использовать openswan, а в качестве l2tp сервера стандартный xl2tpd:
apt-get install xl2tpd
Openswan ставим из исходников, поскольку нет кандидатов на установки из репозиториев.
Ставим необходимые зависимости:
apt-get install libgmp3-dev gawk flex bison make
Собираем openswan:
wget https://download.openswan.org/openswan/openswan-latest.tar.gz
tar -xvzf openswan-latest.tar.gz
cd openswan-2*
make programs
make install
Конфигурируем IPSec:
nano /etc/ipsec.conf
Содержимое:
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
oe=off
protostack=netkey
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
ikelifetime=8h
keylife=1h
type=transport
left=SERVER.IP
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
Пробелы перед строками обязательны. SERVER.IP — это внешний IP нашего сервера.
Настроим авторизацию через PreShared Key:
nano /etc/ipsec.secrets
Содержимое:
SERVER.IP %any: PSK "PreSharedKey"
SERVER.IP — это внешний IP нашего сервера
%any: — подключение с любого IP
PSK — метод авторизации для L2TP.
PSK — PreSharedKey, т.е вместо сертификата будем использовать секретное слово.
«PreSharedKey» — само секретное слово
Скрипт для настройки сети:
nano /root/ipsec
iptables --table nat --append POSTROUTING --jump MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec restart
Делаем скрипт исполняемым:
chmod +x /root/ipsec
Теперь необходимо добавить скрипт в автозагрузку. Однако В Debian 9 по-умолчанию не работает файл-автозапуска скриптов rc.local. Запустим его.
Создаем файл:
nano /etc/rc.local
Пишем в него следующее:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
exit 0
Делаем его исполняемым:
chmod +x /etc/rc.local
Включаем автозапуск rc-local:
systemctl start rc-local
systemctl status rc-local
Добавляем содержимое нашего скрипта /root/ipsec в файл rc.local перед exit 0 и запускаем скрипт:
sh /root/ipsec
Настройка l2tp:
nano /etc/xl2tpd/xl2tpd.conf
Содержимое:
[global]
ipsec saref = yes
[lns default]
ip range = 192.168.1.202-192.168.1.220
local ip = 192.168.1.201
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
ip range = 192.168.1.202-192.168.1.220 — диапазон IP адресов выделяемых для VPN Подключений
local ip = 192.168.1.201 — адрес самого сервера VPN внутри локальной сети
refuse chap = yes — запретить Chap авторизацию
refuse pap = yes — запретить Pap авторизацию
Дополнительные настройки:
nano /etc/ppp/options.xl2tpd
Содержимое:
require-mschap-v2
ms-dns 192.168.1.1
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name VPN
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
require-mschap-v2 — требуем авторизацию через MSChap2
ms-dns 192.168.1.1 — это DNS сервер внутри локальной сети. Можно указать и глобальные DNS сервера (типа 8.8.8.8 или 77.88.8.8), но тогда внутренние ресурсы завязанные на DNS не будут видны клиентам подключенным через VPN.
name VPN — этот параметр будет присутствовать в настройках пользовательских аккаунтов.
Настройка пользователей:
nano /etc/ppp/chap-secrets
Формат содержимого:
vpnuser VPN password *
VPN — это и есть тот параметр из /etc/ppp/options.xl2tpd
Перезапускаем сервисы:
/etc/init.d/ipsec restart
/etc/init.d/xl2tpd restart
Проверяем работу:
ipsec verify
В итоге мы имеем сервер, который может обслуживать VPN подключения, и по PPTP, и по L2TP+IPSec.
А подскажите как настроить L2TP VPN без IPSec.
С L2TP VPN с шифрованием IPSec нашел множество инструкций, и деже готовых скриптов, и даже получилось настроить. Но не могу найти ни одной инструкции L2TP VPN без IPSec.
Условия: Комп за роутером, порт 1701 проброшен и ТСР и UDP. ОС Ubuntu 18.04.5 LTS (чистая, со всеми последними обновлениями). Выходить в интернет через этот VPN не надо.
Я установил сервер L2TP
apt-get install xl2tpd
и как только не настраивал файл
vi /etc/xl2tpd/xl2tpd.conf
не запускается сервер, и подключиться к нему не могу.
port = 1701 пробросил в роутере
Может у кого есть скрипт настройки L2TP VPN без IPSec (шифрование просто не нужно в данном случае).
Я не понимаю зачем вообще L2TP без IPSEC? Используйте тогда вообще PPTP, что там, что там шифрование слезы (MPPE 128bit) и никого не напугаешь этим, если конечно вопрос не принципиальный использования UPD, а не TCP.
Также не понял… у вас сервер не стартует на Ubuntu или вы к нему пробиться не можете через роутер?
Ну и как-то так:
для L2TP/IPSec в качестве транспорта применяется протокол UDP, где порт 1701 используется в качестве порта отправителя и получателя для инициализации туннеля, порт UDP-500 применяется для обмена ключами шифрования, порт UDP-4500 для NAT-операций, протокол 50 (ESP) для передачи зашифрованных данных через IPSec.
Спасибо! Тут проблема была комплексная
1. PPTP работал замечательно ранее прямо на роутере настраивался, но потом перестал работать. Долго выясняли, а оказалось что МГТС просто стал блокировать его как то, требуют платить больше. Люди посоветовали, что попробовать L2TP, но его нативно в роутере нет. Пришлось поставить за роутером сервер (слабенький) с убунту
2. Был выбран L2TP VPN без IPSec именно потому что проще, меньше портов пробрасывать (есть ограничение в роутере на количество пробросов). Ну и проще настройка, — нет спецов по линуксу.
А теперь уже и просто любопытно стало — можно ли в принципе.
3. Стартануть мне удалось все-таки сервер
————
root@s:/home/s# /etc/init.d/xl2tpd restart
[ ok ] Restarting xl2tpd (via systemctl): xl2tpd.service.
————
Что то я там настраивал настраивал и он стартанул
Но подключиться так и не могу.
То ошибка 651 то (сейчас) 868 стала.
Я понимаю что вроде как «делай с шифрованием» как «все делают» «не выпендривайся». Но если честно, сначала хотел без шифрования для минимизации процессов и нагрузки, а теперь уже принципиально хочу добить. Ведь есть протокол L2TP, он же должен работать. Странно почему не пользуются, ведь не всем нужно шифрование, тем кто просто играет по виртуальной сети VPN вообще не нужно шифрование и лишние задержки.
Спасибо!
Что касается шифрования, так для того и vpn, чтоб был шифрованный канал. Потому и не пользуются. Кому просто точка-точка… ну… даже не знаю сейчас таких… может тупо pppoe.
Что касается портов, то часто провайдеры начали блокировать порты для vpn. В основном открыты 80 и 443, ну может еще всякие там стандартные службы. Узнавайте у провайдера, если так, то смотрите в сторону SSTP VPN, он через https.
На самом деле это созданный стереотип, что VPN нужен людям именно для скрытности и шифрованности. Реально же большинству нужна другая функция VPN — это сетка поверх интернета. Многим нечего там скрывать и шифровать, ведь реально многие даже в инете сидят без шифрования, по обычным каналам.
Мне от сетки VPN нужно просто удаленный рабочий стол, доступ к серверу иногда, общим папкам (несекретным) , ну иногда игрушки сетевые погонять с друзьями.
Даже выхода в интернет мне не нужно через VPN — интернет должен остаться как и был на всех машинах — напрямую.
L2TP практически настроил, странно что нет инструкции самодостаточной для протокола. Но вот подключиться не могу.
Какие там порты еще надо пробросить на роутере до сервера кроме 1701. Может в принципе с виндовс не подключиться без шифрования?
Тут наверно спорить нет смысла. Каждый пользуется тем, что ему нужно и достаточно. Трудно да и зачем убеждать человека пользоваться тем, в чем он не нуждается. И он прав в своем выборе, поскольку удовлетворен.
Что касается портов, я в первом комментарии все порты перечислил.
airmeno Cпасибо что не хотите переубеждать! А вы можете прото помочь в том вопросе который я озвучил первым. Просто как настроить L2TP VPN без IPSec шифрования
Или просто посоветуйте самый простой канал или способ создать сеть из компьютеров у разных провайдеров при наличии одного белого IP на одном компе (за роутером). ОС — Убунта 18
Нужен просто VPN для объединения, даже без выхода в интернет через VPN (в интернет все по своим будут выходить). ВПН только для виртуальной сети типа (10.0.0.х) диапазон у всех. С минимальной нагрузкой на сервер и задержками, можно без шифрования
У меня сходный с предыдущим вопрошающим интерес: как заставить заработать ядерную поддержку xl2tpd/ppp. У меня старое ядро (2.6.31), xl2tpd 1.3.12, ppp 2.4.7, IPSec нет. Без поддержки работает, но медленно…
modprobe ppp_async
modprobe pppol2tp
Не буду вникать зачем это нужно. И почему такое старое ядро.
Не уверен, что на таком ядре вообще есть реализация и если есть, то насколько вменяемо это работает.