LINUX.ORG.RU
ФорумAdmin

Не могу подключиться к VPN PPTP

 , ,


0

1

Пытаюсь подключиться к VPN-серверу PPTP через networkmanager. До этого подключался к openvpn, всё норм. Проверил, что PPP и MPPE в ядре включены, и пошёл в бой. :)

Видел сообщение «сбой подключения». Курение логов ничего не дало... Если кому интересно, то вот.

Jun  7 23:20:53 gallifrey pppd[1921]: Plugin /usr/lib64/pppd/2.4.5/nm-pptp-pppd-plugin.so loaded.
Jun  7 23:20:53 gallifrey pppd[1921]: pppd 2.4.5 started by root, uid 0
Jun  7 23:20:53 gallifrey pppd[1921]: using channel 14
Jun  7 23:20:53 gallifrey pppd[1921]: Using interface ppp0
Jun  7 23:20:53 gallifrey pppd[1921]: Connect: ppp0 <--> /dev/pts/7
Jun  7 23:20:53 gallifrey pptp[1923]: nm-pptp-service-1842 log[main:pptp.c:310]: The synchronous pptp option is NOT activated
Jun  7 23:20:53 gallifrey NetworkManager[1435]: <warn> /sys/devices/virtual/net/ppp0: couldn't determine device driver; ignoring...
Jun  7 23:20:53 gallifrey pptp[1930]: nm-pptp-service-1842 log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 1 'Start-Control-Connection-Request'
Jun  7 23:20:53 gallifrey pptp[1930]: nm-pptp-service-1842 log[ctrlp_disp:pptp_ctrl.c:739]: Received Start Control Connection Reply
Jun  7 23:20:53 gallifrey pptp[1930]: nm-pptp-service-1842 log[ctrlp_disp:pptp_ctrl.c:773]: Client connection established.
Jun  7 23:20:54 gallifrey pppd[1921]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xcf956728> <pcomp> <accomp>]
Jun  7 23:20:54 gallifrey pptp[1930]: nm-pptp-service-1842 log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 7 'Outgoing-Call-Request'
Jun  7 23:20:54 gallifrey pptp[1930]: nm-pptp-service-1842 log[ctrlp_disp:pptp_ctrl.c:858]: Received Outgoing Call Reply.
Jun  7 23:20:54 gallifrey pptp[1930]: nm-pptp-service-1842 log[ctrlp_disp:pptp_ctrl.c:897]: Outgoing call established (call ID 0, peer's call ID 8195).
Jun  7 23:20:57 gallifrey pppd[1921]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xcf956728> <pcomp> <accomp>]
Jun  7 23:21:00 gallifrey pppd[1921]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xcf956728> <pcomp> <accomp>]
Jun  7 23:21:03 gallifrey pppd[1921]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xcf956728> <pcomp> <accomp>]
Jun  7 23:21:06 gallifrey pppd[1921]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xcf956728> <pcomp> <accomp>]
Jun  7 23:21:09 gallifrey pppd[1921]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xcf956728> <pcomp> <accomp>]
Jun  7 23:21:12 gallifrey pppd[1921]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xcf956728> <pcomp> <accomp>]
Jun  7 23:21:15 gallifrey pppd[1921]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xcf956728> <pcomp> <accomp>]
Jun  7 23:21:18 gallifrey pppd[1921]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xcf956728> <pcomp> <accomp>]
Jun  7 23:21:21 gallifrey pppd[1921]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xcf956728> <pcomp> <accomp>]
Jun  7 23:21:24 gallifrey pppd[1921]: LCP: timeout sending Config-Requests
Jun  7 23:21:24 gallifrey pppd[1921]: Connection terminated.
Jun  7 23:21:24 gallifrey NetworkManager[1435]: <warn> VPN plugin failed: 1
Jun  7 23:21:24 gallifrey pppd[1921]: Modem hangup
Jun  7 23:21:24 gallifrey pppd[1921]: Waiting for 1 child processes...
Jun  7 23:21:24 gallifrey pppd[1921]:   script /usr/sbin/pptp *.*.*.* --nolaunchpppd --loglevel 2 --logstring nm-pptp-service-1842, pid 1923
Jun  7 23:21:24 gallifrey pptp[1923]: nm-pptp-service-1842 warn[decaps_hdlc:pptp_gre.c:204]: short read (-1): Input/output error
Jun  7 23:21:24 gallifrey pptp[1923]: nm-pptp-service-1842 warn[decaps_hdlc:pptp_gre.c:216]: pppd may have shutdown, see pppd log
Jun  7 23:21:24 gallifrey pptp[1930]: nm-pptp-service-1842 log[callmgr_main:pptp_callmgr.c:234]: Closing connection (unhandled)
Jun  7 23:21:24 gallifrey pptp[1930]: nm-pptp-service-1842 log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 12 'Call-Clear-Request'
Jun  7 23:21:24 gallifrey pptp[1930]: nm-pptp-service-1842 log[call_callback:pptp_callmgr.c:79]: Closing connection (call state)
Jun  7 23:21:24 gallifrey pppd[1921]: Script /usr/sbin/pptp *.*.*.* --nolaunchpppd --loglevel 2 --logstring nm-pptp-service-1842 finished (pid 1923), status = 0x0
Jun  7 23:21:24 gallifrey pppd[1921]: Exit.
Jun  7 23:21:24 gallifrey NetworkManager[1435]: <warn> VPN plugin failed: 1
Jun  7 23:21:24 gallifrey NetworkManager[1435]: <warn> VPN plugin failed: 1
Jun  7 23:21:24 gallifrey NetworkManager[1435]: <info> VPN plugin state changed: stopped (6)
Jun  7 23:21:24 gallifrey NetworkManager[1435]: <info> VPN plugin state change reason: 0
Jun  7 23:21:24 gallifrey NetworkManager[1435]: <warn> error disconnecting VPN: Could not process the request because no VPN connection was active.

И, запуская /usr/libexec/nm-pptp-service с опцией --debug также увидел следующее:

* Message: pppd started with pid 1921
Plugin /usr/lib64/pppd/2.4.5/nm-pptp-pppd-plugin.so loaded.
** Message: nm-pptp-ppp-plugin: (plugin_init): initializing
** Message: nm-pptp-ppp-plugin: (nm_phasechange): status 3 / phase 'serial connection'
using channel 14
Using interface ppp0
Connect: ppp0 <--> /dev/pts/7
** Message: nm-pptp-ppp-plugin: (nm_phasechange): status 5 / phase 'establish'
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xcf956728> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xcf956728> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xcf956728> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xcf956728> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xcf956728> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xcf956728> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xcf956728> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xcf956728> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xcf956728> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xcf956728> <pcomp> <accomp>]
LCP: timeout sending Config-Requests
** Message: nm-pptp-ppp-plugin: (nm_phasechange): status 11 / phase 'disconnect'
Connection terminated.
** Message: nm-pptp-ppp-plugin: (nm_phasechange): status 1 / phase 'dead'
Modem hangup
Waiting for 1 child processes...
  script /usr/sbin/pptp *.*.*.* --nolaunchpppd --loglevel 2 --logstring nm-pptp-service-1842, pid 1923
Script /usr/sbin/pptp *.*.*.* --nolaunchpppd --loglevel 2 --logstring nm-pptp-service-1842 finished (pid 1923), status = 0x0
** Message: nm-pptp-ppp-plugin: (nm_exit_notify): cleaning up

** (nm-pptp-service:1842): WARNING **: pppd exited with error code 16

Версии:

ppp-2.4.5-r2

pptpclient-1.7.2-r3

networkmanager-0.9.6.4

networkmanager-pptp-0.9.6.0

Подскажите, в какую сторону начать копать? %) Понятно, что настройки того или иного сервера могут быть разными, но сервер 100% рабочий, мне надо с клиентской стороны решать проблему, уверен, она где-то здесь :) может быть в ядре чего всё-таки не хватает?

Ну посмотрите настройки iptables, что GRE проткол разрешён, попробуйте подампить пакеты и убедится, что на GRE пакеты, отсылаемые клиентом, приходят GRE пакеты от сервера.

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

Вот и я судя по логам думаю, что проблема с этими GRE, с другой стороны не могу понять, какая в принципе может быть проблема.

iptables выключен. Интернет по wifi. С другой стороны, есть маршрутизатор, и у него внутри наверное свой iptables... наверное он что-то не пропускает. Надо пошаманить.

А может его провайдер режет? Тоже очень маловероятный вариант... с чего бы?

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

По дефолту говнороутеры со стоковыми прошивками GRE не пускают.
Либо ищешь внутри VPN PPTP Passthrough, либо шьешь кошерный OpenWRT :)

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

Да, кстати... проблема может быть не только в маршрутизаторе... я за двойным NAT-ом (свой и провайдера). Возможно, провайдер всё-таки виноват. Буду узнавать.

BattleCoder ★★★★★ ()

Ох.... ВСЁ намного проще. Похоже, PPP в ядре я включил, NET_IPGRE_DEMUX нет. Вот и не работает. Сейчас включу и посмотрю, что изменится.

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

Нет, как ни странно, включение GRE в ядре ни на что ровным счётом не повлияло. Ожидал хотя бы появления другой ошибки...

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

Вы вобще читает, что я вам посоветовал, или ядро компилировать проще, чем посмотреть пакеты tcpdump'ом? Незвисимо от конфигурации ядра tcpdump должен показать GRE пакеты, идущие от клиента к серверу и ответные пакеты от сервера.

Если от сервера GRE-пакетов нет, значит проблемы не в клиенте, а где то по дороге. NAT'ить протокол pptp умеют далеко все маршрутизаторы, и провайдер, бывает, просто запрещает всё, кроме ICMP, TCP и UDP.

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

Не дошёл до этого. Проще не проще, но то, то в ядре GRE выключен, я посчитал фатальным недостатком. ;)

Разумеется, попробую, просто этот VPN ненастолько сильно уж нужен именно в данный момент.

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

Вся поддержка GRE в ядре вторична в отношении работы вашего VPN (pppd + pptp). Там можно включать различные вещи, ЕМНИП, conntrack для pptp-vpn и правильный SNAT, хождение multicast по GRE-тунелям, терминирование тунеля на уровне ядра (accel-pptp), но без этого должно работать. У вас pptp устанавливает tcp управляющее соединение и начинает отправлять по GRE пакеты от pppd. На первый же пакет «LCP ConfReq» pppd не получает ответа, значит, скорее всего нет прохождения GRE-пакетов.

mky ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.