Перестало работать PPTP VPN соединение

Автор: Admin | 01.05.2015

Перестало подниматься соединение PPTP VPN, не работало как на Linux клиентах, так и Windows. На первый взгляд ни чего, что могло бы повлиять на его работу, не менялось


Описание
В Linux Mint 17, управляемый NetworkManager'ом, после попытки подключения такой лог:

NetworkManager[907]:  Starting VPN service 'pptp'...
NetworkManager[907]:  VPN service 'pptp' started (org.freedesktop.NetworkManager.pptp), PID 2936
NetworkManager[907]:  VPN service 'pptp' appeared; activating connections
NetworkManager[907]:  VPN plugin state changed: starting (3)
NetworkManager[907]:  VPN connection 'VPN' (Connect) reply received.
pppd[2940]: Plugin /usr/lib/pppd/2.4.5/nm-pptp-pppd-plugin.so loaded.
pppd[2940]: pppd 2.4.5 started by root, uid 0
pptp[2944]: nm-pptp-service-2936 log[main:pptp.c:314]: The synchronous pptp option is NOT activated
pppd[2940]: Using interface ppp0
pppd[2940]: Connect: ppp0  /dev/pts/3
NetworkManager[907]: SCPlugin-Ifupdown: devices added (path: /sys/devices/virtual/net/ppp0, iface: ppp0)
NetworkManager[907]: SCPlugin-Ifupdown: device added (path: /sys/devices/virtual/net/ppp0, iface: ppp0): no ifupdown configuration found.
NetworkManager[907]:  /sys/devices/virtual/net/ppp0: couldn't determine device driver; ignoring...
pptp[2960]: nm-pptp-service-2936 log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 1 'Start-Control-Connection-Request'
pptp[2960]: nm-pptp-service-2936 log[ctrlp_disp:pptp_ctrl.c:739]: Received Start Control Connection Reply
pptp[2960]: nm-pptp-service-2936 log[ctrlp_disp:pptp_ctrl.c:773]: Client connection established.
pptp[2960]: nm-pptp-service-2936 log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 7 'Outgoing-Call-Request'
pptp[2960]: nm-pptp-service-2936 log[ctrlp_disp:pptp_ctrl.c:858]: Received Outgoing Call Reply.
pptp[2960]: nm-pptp-service-2936 log[ctrlp_disp:pptp_ctrl.c:897]: Outgoing call established (call ID 0, peer's call ID 256).
pppd[2940]: LCP: timeout sending Config-Requests
pppd[2940]: Connection terminated.
avahi-daemon[896]: Withdrawing workstation service for ppp0.
NetworkManager[907]:  VPN plugin failed: 1
NetworkManager[907]: SCPlugin-Ifupdown: devices removed (path: /sys/devices/virtual/net/ppp0, iface: ppp0)
pptp[2944]: nm-pptp-service-2936 warn[decaps_hdlc:pptp_gre.c:204]: short read (-1): Input/output error
pptp[2944]: nm-pptp-service-2936 warn[decaps_hdlc:pptp_gre.c:216]: pppd may have shutdown, see pppd log
pppd[2940]: Modem hangup
pptp[2960]: nm-pptp-service-2936 log[callmgr_main:pptp_callmgr.c:234]: Closing connection (unhandled)
pptp[2960]: nm-pptp-service-2936 log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 12 'Call-Clear-Request'
pppd[2940]: Exit.
NetworkManager[907]:  VPN plugin failed: 1
pptp[2960]: nm-pptp-service-2936 log[call_callback:pptp_callmgr.c:79]: Closing connection (call state)
NetworkManager[907]:  VPN plugin failed: 1
NetworkManager[907]:  VPN plugin state changed: stopped (6)
NetworkManager[907]:  VPN plugin state change reason: 0
NetworkManager[907]:  Policy set 'eth0' (eth0) as default for IPv4 routing and DNS.
NetworkManager[907]:  error disconnecting VPN: Could not process the request because no VPN connection was active.

Виндовый клиент выдавал 800 ошибку (так это выглядит):

Ошибка подключения. Ошибка 800: Удаленное подключение не удалось установить из-за сбоя использованных VPN-туннелей. Возможно, VPN-сервер недоступен. Если это подключение пытается использовать L2TP- или IPsec-туннель, параметры безопасности, необходимые для согласования IPsec, могут быть настроены неверно.

Объединяло обе системы один шлюз для выхода в интернет, работающий под управлением Debian 7 Wheezy. Как выяснилось позднее, все случилось после обновления Linux на этом самом шлюзе. Обновилось ядро. Сильнее ковырять не стал, но похоже сломалось на этом или соседних ядрах:

linux-image-3.2.0-4-amd64:amd64 3.2.65-1+deb7u1 -> 3.2.65-1+deb7u2

Решение
Лечится загрузкой модуля ядра ip_nat_pptp:

modprobe ip_nat_pptp

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


UPDATE
Снова перестали проходить пакеты, решение нашел в блоге Андрея, спасибо, коллега!
Приведу как есть:

Добавить дополнительное правило в netfilter:

iptables -t raw -A PREROUTING -p tcp -m tcp --dport 1723 -j CT --helper pptp

или включить conntrack helper:

sysctl -w net.netfilter.nf_conntrack_helper=1

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *