Перестало подниматься соединение 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