LINUX.ORG.RU

VPN L2TP-server, голый, без шифрования

 ,


0

1

Проблема такая, нужно установить, настроить VPN L2TP-server без IPsec.

Почему так, потому что другого выбора не остаётся.

Есть IP телефон, он поддерживает L2TP без шифрования.

Все что нужно, ip VPN сервера, логин и пароль.

Весь Интернет облазил ничего толкового не попалось.

Может кто подскажет как такое реализовать?

xl2tpd установлен.

Так-то у меня успешно пашет OpenVPN, проблем не вызывает и телефон думал, что прикручу по OpenVPN, а вот не проканало…


Ответ на: комментарий от Pinkbyte

Сервер xl2tp запустился, но почему-то ppp0 в DOWN, соответственно IP-адрес телефону не назначается, соединения точка-точка нет.

ppp0: <POINTOPOINT,MULTICAST,NOARP> mtu 1410 qdisc noop state DOWN group default qlen 3 link/ppp

Всё, всё вроде посмотрел, не могу понять в чём дело.

Вот из дебага, вроде, как я понимаю, телефон аутентификация CHAP устраивает…

PPPoL2TP options: lnsmode tid 51105 sid 16408 debugmask 0

sent [LCP ConfReq id=0x1 <mru 1410> <asyncmap 0x0> <magic 0xcbf72e94>]

rcvd [LCP ConfRej id=0x1 <asyncmap 0x0>]

sent [LCP ConfReq id=0x2 <mru 1410> <magic 0xcbf72e94>]

rcvd [LCP ConfNak id=0x2 ]

sent [LCP ConfReq id=0x3 <mru 1410> <magic 0xcbf72e94>]

rcvd [LCP ConfAck id=0x3 <mru 1410> <magic 0xcbf72e94>]

rcvd [LCP ConfReq id=0x57 <mru 1492>]

sent [LCP ConfAck id=0x57 <mru 1492>]

PPPoL2TP options: lnsmode tid 51105 sid 16408 debugmask 0

sent [LCP EchoReq id=0x0 magic=0xcbf72e94]

sent [CHAP Challenge id=0x7a <0686b537f1a052c9a2483e0f498acfb4723c>, name = «mvt-np305v4a»]

rcvd [LCP EchoRep id=0x0 magic=0x0]

rcvd [CHAP Response id=0x7a <4c5d649667bb1a8b640a2519512c3da3>, name = «admin»]

sent [CHAP Success id=0x7a «Access granted»]

sent [IPCP ConfReq id=0x1 <addr 172.16.16.1>]

sent [IPV6CP ConfReq id=0x1 ]

rcvd [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]

sent [IPCP ConfRej id=0x1 <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]

rcvd [LCP ProtRej id=0x58 80 57 01 01 00 0e 01 0a 1d ed d0 3a 5d 51 24 45]

Protocol-Reject for ‘IPv6 Control Protocol’ (0x8057) received

rcvd [IPCP ConfAck id=0x1 <addr 172.16.16.1>]

mvt
() автор топика
Последнее исправление: mvt (всего исправлений: 2)
Ответ на: комментарий от Pinkbyte

Если, что я выложил дамп с телефона, может там и не очень понятно, но видно, что L2TP тоннель вроде есть и запросы жив - не жив тоннель есть.

https://pastebin.com/QXC1CFCk

mvt
() автор топика
Последнее исправление: mvt (всего исправлений: 2)
Ответ на: комментарий от mvt

Ты сначала 2 Linux-машины связать попробуй, а потом уже включай сюда телефон.

Беглый сбор стенда подтвердил валидность настроек из статьи выше. Обе машины(клиент и сервер) на Alpine Linux. Включены в одну сеть, сервер дополнительно имеет выход в Интернет через другой сетевой адаптер. Файрвол на сервере содержит только правило для NAT-а трафика от L2TP-клиентов, в цепочке filter всё разрешено.

IP-адрес сервера в локалке - 192.168.0.1/24
IP-адрес клиента в локалке - 192.168.0.100/24

Клиент:

alpine-client # cat /etc/xl2tpd/xl2tpd.conf
[lac client]
lns = 192.168.0.1
redial = yes
redial timeout = 5
require chap = yes
refuse pap = yes
name = test
pppoptfile = /etc/ppp/options.l2tp
autodial = yes

alpine-client # cat /etc/ppp/options.l2tp
noauth
defaultroute

alpine-client # cat /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client	server	secret			IP addresses
test		*	pass

alpine-client # ip route
default dev ppp0 scope link 
192.168.0.0/24 dev eth0 scope link  src 192.168.0.100 
192.168.200.1 dev ppp0 scope link  src 192.168.200.128

Сервер:

alpine-server # cat /etc/xl2tpd/xl2tpd.conf
[lns default]
ip range = 192.168.200.128-192.168.200.254
local ip = 192.168.200.1
require chap = yes
refuse pap = yes
require authentication = yes
name = LinuxVPNserver
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tp
length bit = yes

alpine-server # cat /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client	server	secret			IP addresses
test		*	pass                    192.168.200.128

alpine-server # cat /etc/ppp/options.l2tp
debug
auth
mtu 1400
mru 1400

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Спасибо за такое мощную инфу, я все посмотрю и изучу.

Но, у меня нет задачи связать два компа по L2TP.

Ситуация следующая, назову это стендом - ноутбук, он выполняет роль OpenVPN-сервера, соединён шифрованным тоннелем с домашним компом.

Всё работает, интернет везде есть, ноутбук получает интернет, через WI-FI, но это неважно.

И, на этом ноутбуке, который выполняет роль тестового сервера, параллельно OpenVPN я вынужден запустить VPN L2TP, чтобы IP-телефон, который подключён к домашнему компу, был подключён по простому, нешифрованному тоннелю, внутри шифрованного, к ноутбуку.

Интернет на IP-телефоне есть, получает он IP от DHCP-сервера, установленного на домашнем компе к которому он и подключён, оттуда же DNS, весь трафик от телефона, домашнего компа заворачивается в зашифрованный OpenVPN-тоннель и следует к ноутбуку, ну, а далее всё это в Интернет, такая тестовая схема….

Поэтому, задача с одной стороны сложная, для меня, а с другой стороны, наверное простая, если знать куда копать, понять почему ppp0 в DOWN.

P.S. В телефон-то я залезть не могу, конфиги править и т.д. Остаётся принять то, что предоставили китайцы - ip сервера, логин и пароль….

mvt
() автор топика
Последнее исправление: mvt (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Смысл всей этой канители смоделировать подключение и работу IP-телефона как если бы он подключался к серверу, на котором установлен Астериск (сейчас эту роль выполняет ноутбук) извне, из глобального интернета.

mvt
() автор топика

Не парь мозги, разверни виртуалку Mikrotik CHR (без лицензии скорость портов ограничена 1мб/с, но для единственного телефона вообще пофиг). И настроить проще, и ресурсов меньше сожрёт (~128 мегабайт рам и ещё меньше места на диске). Заодно максимально изолируешь недоверенный участок, разрешив файрволлом доступ только к АТС.

Лично так подключал телефон, не умеющий ничего, кроме L2TP. Всё работало.

Если критично, чтобы была СВОБОДА, то разверни OpenWRT, поколхозней вариант, но всё равно удобнее будет.

nebularia ★★★
()
Последнее исправление: nebularia (всего исправлений: 2)
Ответ на: комментарий от nebularia

Как вариант такое предложение можно рассмотреть, но есть одно существенное но, теоретически и практически туда, куда должен уехать этот телефонный аппарат я сам не уеду, развернуть там виртуалку возможности нет, а потому этот телефон должен работать «As is».

Поэтому, было бы неплохо домучить этот вопрос.

Тут, кстати, подвалил ответ от магазина DNS, там был куплен сей аппарат, Fanvil X4G, я у них спросил есть ли, реальная, поддержка прошивкой OpenVPN или нет. Их поставщик Fanvil.ru, DNS говорит, что есть поддержка, на сайте Fanvil.ru на это указывается. Web-мордой можно файлы загрузить (сертификаты, ключи), но есть некоторые особенности. Когда easy-rsa создаётся файл client.crt, то просто так, как есть, он с web-морды в недра телефона не грузится, вообще. Как вариант я попробовал создать чистый, новый файл, назвать его также и скопировать все данные из оригинального файла client.crt в новый. И, этот файл загружается. А, далее такое: в телефоне есть утилита PCAP Trace, ей можно посмотреть, что происходит в телефоне при попытке его подключения, так вот если на web-морде выбрать L2TP, то по логу видны попытки телефона использовать этот протокол, а если выбрать OpenVPN, то вообще нет ни намёка на его использование. И, вот у меня возник вопрос, а не «декоративно» ли OpenVPN присутствует на web-морде??? На просторах Интернета есть сообщения о том, что при поставке этих телефонов в Россию, согласно каким-то требованиям Таможенного союза, протокол OpenVPN может отсутствовать, что наталкивает на мысль о «выпиливании» его из прошивки и оставлении web-морды как было до «выпиливания» OpenVPN. В общем-то этот телефон и покупался как поддерживающий OpenVPN… а тут такое…L2TP…

mvt
() автор топика
Ответ на: комментарий от mvt

Ну, если принудительно «поднять» ip link set ppp0 up, то он из DOWN становится UP, но ip адрес клиенту (телефону) не назначается, ip-адрес сервера тоже отсутствует:

6: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state UNKNOWN group default qlen 3 link/ppp

И, я такой не один: (на клиентах windows и mikrotik у меня нет возможности проверить работу xl2tpd), но ip-телефон это клиент работающий на Linux.

https://forum.ubuntu.ru/index.php?topic=314327.0

Разница со мной у этого автора только в том, что отсутствие логина и пароля у меня в файле chap-secrets не даёт подключение и закрывает сессию.

Так, что наличие логина и пароля в этом файле в моём случае критично.

mvt
() автор топика
Ответ на: комментарий от mvt

Ну, xl2tpd я запустил, по ссылке ниже сказано, что в конфигурационный файл нужно добавить опции

ms-dns

А, вопрос вот в чём, почему с этой опцией сервер стартует и клиенту назначается ip адрес из пула адресов, а без этой опции ip-адрес клиенту не назначается и интерфейс ppp0 остаётся без ip адреса сервера и клиента?

https://wiki.debian.org/ru/xl2tpd/Server#A.2BBB0EMARBBEIEQAQ.2BBDkEOgQw_L2TP

mvt
() автор топика