Страницы

Поиск по вопросам

четверг, 13 февраля 2020 г.

Проблема с подключением VPN (pptp)

#linux #vpn


Связался с Линуксом пару недель назад, так что, возможно, чего-то еще не знаю. Ситуация
такая: на виртуальной машине, Centos 7, не устанавливается VPN соединение через pptp.
По логам что-то смог понять/исправить, что-то - нет. Ниже представлены сделанные мной
настройки и логи:

chap-secrets

# client        server  secret                  IP addresses
mylogin * mypassword *


/etc/ppp/peers/myvpn

pty "pptp vpn.campus.kharkov.ua --nolaunchpppd --debug"
user mylogin
password "mypassword"
#remotename pptp
file /etc/ppp/options.pptp
lock
nodeflate
nobsdcomp
noauth
nopcomp
noaccomp        


Options.pptp

+###############################################################################

# $Id: options.pptp,v 1.3 2006/03/26 23:11:05 quozl Exp $
#
# Sample PPTP PPP options file /etc/ppp/options.pptp
# Options used by PPP when a connection is made by a PPTP client.
# This file can be referred to by an /etc/ppp/peers file for the tunnel.
# Changes are effective on the next connection.  See "man pppd".
# You are expected to change this file to suit your system.  As
# packaged, it requires PPP 2.4.2 or later from http://ppp.samba.org/
# and the kernel MPPE module available from the CVS repository also on
# http://ppp.samba.org/, which is packaged for DKMS as kernel_ppp_mppe.
# Lock the port
lock

# Authentication
# We don't need the tunnel server to authenticate itself

noauth

# We won't do PAP, EAP, CHAP, or MSCHAP, but we will accept MSCHAP-V2
# (you may need to remove these refusals if the server is not using MPPE)

#refuse-pap
#refuse-eap
#refuse-chap
#refuse-mschap
#refuse-mschap-v2

# Compression
# Turn off compression protocols we know won't be used

nobsdcomp
nodeflate
persist

# Encryption
# (There have been multiple versions of PPP with encryption support,
# choose which of the following sections you will use.  Note that MPPE
# requires the use of MSCHAP-V2 during authentication)
#
# Note that using PPTP with MPPE and MSCHAP-V2 should be considered
# insecure:
# http://marc.info/?l=pptpclient-devel&m=134372640219039&w=2
# https://github.com/moxie0/chapcrack/blob/master/README.md
# http://technet.microsoft.com/en-us/security/advisory/2743314

# http://ppp.samba.org/ the PPP project version of PPP by Paul Mackarras
# ppp-2.4.2 or later with MPPE only, kernel module ppp_mppe.o
# If the kernel is booted in FIPS mode (fips=1), the ppp_mppe.ko module
# is not allowed and PPTP-MPPE is not available.
# {{{
# Require MPPE 128-bit encryption

#require-mppe-128
require-mschap-v2
# }}}

# http://mppe-mppc.alphacron.de/ fork from PPP project by Jan Dubiec
# ppp-2.4.2 or later with MPPE and MPPC, kernel module ppp_mppe_mppc.o
# {{{
# Require MPPE 128-bit encryption
#mppe required,stateless
# }}}


После запуска (pppd call myvpn) tail -f /var/log/messages

Jul 27 23:28:27 Sanduka pppd[2982]: LCP: timeout sending Config-Requests
Jul 27 23:28:27 Sanduka pppd[2982]: Connection terminated.
Jul 27 23:28:27 Sanduka pppd[2982]: Modem hangup
Jul 27 23:28:27 Sanduka pptp[2995]: anon
warn[decaps_hdlc:pptp_gre.c:217]: short read (-1): Input/output error
Jul 27 23:28:27 Sanduka pptp[2995]: anon
warn[decaps_hdlc:pptp_gre.c:229]: pppd may have shutdown, see pppd log
Jul 27 23:28:27 Sanduka pptp[3003]: anon
log[callmgr_main:pptp_callmgr.c:242]: Closing connection (unhandled)
Jul 27 23:28:27 Sanduka pptp[3003]: anon
log[ctrlp_rep:pptp_ctrl.c:254]: Sent control packet type is 12
'Call-Clear-Request'
Jul 27 23:28:27 Sanduka pptp[3003]: anon
log[call_callback:pptp_callmgr.c:81]: Closing connection (call state)
Jul 27 23:28:27 Sanduka pppd[2982]: Using interface ppp0
Jul 27 23:28:27 Sanduka pppd[2982]: Connect: ppp0 <--> /dev/pts/2
Jul 27 23:28:27 Sanduka NetworkManager[650]:   (ppp0): new
Generic device (driver: 'unknown' ifindex: 16)
Jul 27 23:28:27 Sanduka NetworkManager[650]:   (ppp0): exported
as /org/freedesktop/NetworkManager/Devices/15
Jul 27 23:28:27 Sanduka pptp[3007]: anon log[main:pptp.c:333]: The
synchronous pptp option is NOT activated
Jul 27 23:28:27 Sanduka pptp[3015]: anon
log[ctrlp_rep:pptp_ctrl.c:254]: Sent control packet type is 1
'Start-Control-Connection-Request'
Jul 27 23:28:27 Sanduka pptp[3015]: anon
log[ctrlp_disp:pptp_ctrl.c:754]: Received Start Control Connection
Reply
Jul 27 23:28:27 Sanduka pptp[3015]: anon
log[ctrlp_disp:pptp_ctrl.c:788]: Client connection established.
Jul 27 23:28:28 Sanduka pptp[3015]: anon
log[ctrlp_rep:pptp_ctrl.c:254]: Sent control packet type is 7
'Outgoing-Call-Request'
Jul 27 23:28:28 Sanduka pptp[3015]: anon
log[ctrlp_disp:pptp_ctrl.c:873]: Received Outgoing Call Reply.
Jul 27 23:28:28 Sanduka pptp[3015]: anon
log[ctrlp_disp:pptp_ctrl.c:912]: Outgoing call established (call ID 0,
peer's call ID 11291).


Пробовал настроить через KDE (nm-connection-editor, можно ли его вообще настроить
таким образом?), на что получил такое сообщение. 



В итоге подозрения пали на то, что в ядре не хватает то ли драйверов, то ли модулей.
Но опыт у меня в этом деле мизерный. Прошу подсказать знающих: что не так и как исправить?
    


Ответы

Ответ 1



Не стоит светить свой эккаунт с паролем на весь мир, пускай даже и кампусный :) Весьма рекомендую сменить пароль как скомпроментированый! Для поднятия туннеля нужно два файла: /etc/ppp/peers/KHARKOV # cat /etc/ppp/peers/KHARKOV pty "pptp vpn.campus.kharkov.ua --nolaunchpppd" lock noauth nobsdcomp nodeflate name vasnievda remotename KHARKOV ipparam KHARKOV refuse-pap refuse-eap refuse-chap   # cat /etc/ppp/chap-secrets vasnievda KHARKOV "mysecretpasswd" * При этом нужно ещё разрешить в файрволле gre, причём не забыть, что это может быть вовсе и не eth0, так как это седьмая версия Центоса :) Естественно всё это делдается от рута! # iptables --insert OUTPUT 1 --source 0.0.0.0/0.0.0.0 --destination 0.0.0.0/0.0.0.0 --jump ACCEPT --protocol gre --out-interface eth0 # iptables --insert INPUT 1 --source 0.0.0.0/0.0.0.0 --destination 0.0.0.0/0.0.0.0 --jump ACCEPT --protocol gre --in-interface eth0 Приблизительный лог: Jul 28 12:21:08 myserver pppd[15902]: pppd 2.4.5 started by root, uid 0 Jul 28 12:21:08 myserver pppd[15902]: Using interface ppp0 Jul 28 12:21:08 myserver pppd[15902]: Connect: ppp0 <--> /dev/pts/3 Jul 28 12:21:08 myserver pptp[15903]: anon log[main:pptp.c:314]: The synchronous pptp option is NOT activated Jul 28 12:21:08 myserver pptp[15911]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 1 'Start-Control-Connection-Request' Jul 28 12:21:08 myserver pptp[15911]: anon log[ctrlp_disp:pptp_ctrl.c:739]: Received Start Control Connection Reply Jul 28 12:21:08 myserver pptp[15911]: anon log[ctrlp_disp:pptp_ctrl.c:773]: Client connection established. Jul 28 12:21:09 myserver pptp[15911]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 7 'Outgoing-Call-Request' Jul 28 12:21:09 myserver pptp[15911]: anon log[ctrlp_disp:pptp_ctrl.c:858]: Received Outgoing Call Reply. Jul 28 12:21:09 myserver pptp[15911]: anon log[ctrlp_disp:pptp_ctrl.c:897]: Outgoing call established (call ID 0, peer's call ID 11305). Jul 28 12:21:10 myserver pppd[15902]: CHAP authentication succeeded Jul 28 12:21:10 myserver pppd[15902]: CCP terminated by peer (No compression negotiated) Jul 28 12:21:10 myserver pppd[15902]: Compression disabled by peer. Jul 28 12:21:10 myserver pppd[15902]: local IP address yyy.yyy.yyy.yyy Jul 28 12:21:10 myserver pppd[15902]: remote IP address xxx.xxx.xxx.xxx Ещё раз: весьма рекомендую сменить пароль как скомпроментированый!

Ответ 2



Дополню предыдущего оратора Настройка подключения VPN клиента в CentOS 7 к VPN Серверу на Windows Предварительно должны быть установлены пакеты: yum install ppp pptp содержимое файла /etc/ppp/peers/harkiv_vpn # pty "pptp xxx.xxx.xxx.xxx --nolaunchpppd" # можно по IP-адресу pty "pptp vpn.campus.harkiv.ua --nolaunchpppd" lock noauth nobsdcomp nodeflate nodefaultroute usepeerdns name user_name remotename harkiv_vpn ipparam harkiv_vpn refuse-pap refuse-eap refuse-chap refuse-mschap require-mppe nomppe-stateful содержимое файла /etc/ppp/chap-secrets # Secrets for authentication using CHAP # client server secret IP addresses user_name harkiv_vpn "user_password_in_dblquotes" * создаем скрипт start_vpn1.sh systemctl stop firewalld # останавливаем фаервол pppd call harkiv_vpn # запускаем VPN-соединение # pppd call megarvpn debug nodetach # для запуска VPN вручную После запуска этого скрипта поднимается VPN соединение, но Шлюз в нем берется из текущего сетевого соединения, а не с удаленного VPN-сервера. Исправляем: содержимое файла /etc/resolv.conf # Generated by NetworkManager search harkiv.local nameserver zzz.zzz.zzz.zzz # Шлюз удаленного VPN сервера <- нужно добавить nameserver xxx.xxx.xxx.xxx # DNS1 сетевого подключения nameserver yyy.yyy.yyy.yyy # DNS2 сетевого подключения создаем скрипт start_vpn2.sh cp resolv.conf /etc/ route add -net 10.0.0.0 netmask 255.0.0.0 gw zzz.zzz.zzz.zzz После запуска второго скрипта нам становятся доступны ресурсы удаленного VPN сервера. Как все это отключить, вернуть в исходное состояние? создаем скрипт stop_vpn.sh pkill pptp # останавливаем VPN подключение systemctl start firewalld # запускаем фаервол systemctl restart network # перезапуск службы пересоздает файл resolv.conf

Комментариев нет:

Отправить комментарий