VPN over 3G

Linux, безопасность, сети и все что с этим связано
Chem
Заглянувший
Сообщения: 10
Зарегистрирован: 22 май 2010, 20:14

VPN over 3G

Сообщение Chem »

Добрый день, господа. Возникли проблемы с подключением к корпоративному VPN серверу через 3G-модем.
Ситуация такая: Сервер поднят на Ubuntu 9.04. Клиенты разные - Mac, XP, linux. При работе через проводные каналы проблем не возникает. Однако стала необходимость подключаться через беспроводные каналы...

С клиентами под Windows проблем нет - все работает как часы. С Linux возникли проблемы.
Вот конфиг соединения с велкомом (/etc/ppp/peers/velcom):

Код: Выделить всё

hide-password.
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/velcom"
debug
logfd 2
/dev/ttyUSB0
1843200
defaultroute
replacedefaultroute
noipdefault.
user "vmi"
remotename velcom
ipparam velcom
usepeerdns
crtscts
novj
nodeflate
Вот конфиг VPN:(/etc/peers/VPN)

Код: Выделить всё

pty "pptp SERVER --nolaunchpppd".
user user.
password password
debug
logfd 2
nodeflate.
nobsdcomp.
persist
noauth

passive


noproxyarp
ipparam VPN
require-mppe
ms-dns x.x.x.x
ms-wins x.x.x.x
netmask x.x.x.x

При этом клиент посылает пакет с запросом, сервер его получает, и отправляет ответ и свой запрос. А клиент их не получает вообще...
Интересно что tracepath и пинг идут нормально, но hping и трассировка с его помощью обламываются.
Пробовал играться с mtu и mru - эффект нулевой...
Вообщем готов выслушать любые идеи.

P.S. На Ubuntu.ru ничего ответить никто не смог.

Аватара пользователя
IceMan
Неотъемлемая часть форума
Сообщения: 377
Зарегистрирован: 22 июл 2007, 10:12
Откуда: Минск
Контактная информация:

Re: VPN over 3G

Сообщение IceMan »

Макс, ты? :D

Chem
Заглянувший
Сообщения: 10
Зарегистрирован: 22 май 2010, 20:14

Re: VPN over 3G

Сообщение Chem »

Я. И честно говоря мне уже не смешно...

Аватара пользователя
IceMan
Неотъемлемая часть форума
Сообщения: 377
Зарегистрирован: 22 июл 2007, 10:12
Откуда: Минск
Контактная информация:

Re: VPN over 3G

Сообщение IceMan »

1) убери require-mppe (скорее всего сервер не поддерживает шифрование)
2) проверь чтобы с клиента в сторону сервера был открыт 1723/TCP и хождение GRE (IP protocol 47)

Пару мыслей на вскидку:
- пропиши статический маршрут до ip VPN сервера;
- сбрось настройки iptables на клиенте с разрешением всего по-умолчанию;

pppd call VPN nodetach debug - сбрось лог

Chem
Заглянувший
Сообщения: 10
Зарегистрирован: 22 май 2010, 20:14

Re: VPN over 3G

Сообщение Chem »

1. Сервер как раз-таки требует mppe.
2. Порт открыт. Telnet на него замечательно подрубается. А вот по поводу GRE чуть поподробнее.
3. iptables все разрешает.
4. прописывание маршрута не помогает. Да и соединение с VPN замечательно работает через другие каналы как то DSL, ethernet или еще один VPN.

Вот что происходит на сервере:

Это при соединении через Velcom из Linux

Код: Выделить всё


 linuxserver pppd[23181]: pptpd-logwtmp: $Version$
 linuxserver pppd[23181]: pppd 2.4.5 started by root, uid 0
 linuxserver pppd[23181]: using channel 588
 linuxserver pppd[23181]: Using interface ppp0
 linuxserver pppd[23181]: Connect: ppp0 <--> /dev/pts/0
 linuxserver pppd[23181]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0x2309bf90> <pcomp> <accomp>]
 linuxserver last message repeated 9 times
 linuxserver pppd[23181]: LCP: timeout sending Config-Requests.
 linuxserver pppd[23181]: Connection terminated.
 linuxserver pppd[23181]: Modem hangup
 linuxserver pppd[23181]: Exit.
А это из Windows

Код: Выделить всё

 linuxserver pptpd[23444]: CTRL: Client 77.74.36.75 control connection started
 linuxserver pptpd[23444]: CTRL: Starting call (launching pppd, opening GRE)
 linuxserver pppd[23445]: Plugin winbind.so loaded.
 linuxserver pppd[23445]: WINBIND plugin initialized.
 linuxserver pppd[23445]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded.
 linuxserver pppd[23445]: pptpd-logwtmp: $Version$
 linuxserver pppd[23445]: pppd 2.4.5 started by root, uid 0
 linuxserver pppd[23445]: using channel 599
 linuxserver pppd[23445]: Using interface ppp0
 linuxserver pppd[23445]: Connect: ppp0 <--> /dev/pts/0
 linuxserver pppd[23445]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0x1d33d7f> <pcomp> <accomp>]
 linuxserver pppd[23445]: rcvd [LCP ConfReq id=0x0 <mru 1400> <magic 0x77775bfc> <pcomp> <accomp> <callback CBCP>]
 linuxserver pppd[23445]: sent [LCP ConfRej id=0x0 <callback CBCP>]
 linuxserver pppd[23445]: rcvd [LCP ConfReq id=0x1 <mru 1400> <magic 0x77775bfc> <pcomp> <accomp>]
 linuxserver pppd[23445]: sent [LCP ConfAck id=0x1 <mru 1400> <magic 0x77775bfc> <pcomp> <accomp>]
 linuxserver pppd[23445]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0x1d33d7f> <pcomp> <accomp>]
 linuxserver pppd[23445]: rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0x1d33d7f> <pcomp> <accomp>]
 linuxserver pppd[23445]: sent [LCP EchoReq id=0x0 magic=0x1d33d7f]
 linuxserver pppd[23445]: sent [CHAP Challenge id=0xac <b9f2380174c9c0ac6852760b61ef46e2>, name = "pptpd"]
 linuxserver pptpd[23444]: CTRL: Ignored a SET LINK INFO packet with real ACCMs!
 linuxserver pppd[23445]: rcvd [LCP Ident id=0x2 magic=0x77775bfc "MSRASV5.20"]
 linuxserver pppd[23445]: rcvd [LCP Ident id=0x3 magic=0x77775bfc "MSRAS-0-PD"]
 linuxserver pppd[23445]: rcvd [LCP Ident id=0x4 magic=0x77775bfc "\37777777745M\377777776067f\030\37777777657B\37777777636\37777777727\37777777662\37777777704\37777777745u\020\37777777706"]
 linuxserver pppd[23445]: rcvd [LCP EchoRep id=0x0 magic=0x77775bfc]
 linuxserver pppd[23445]: rcvd [CHAP Response id=0xac <146b521ab95a383fc5413cb384ae41ba0000000000000000ab9937006ae4f7105a65c59d859f4dd3db4614a5f6faaf7100>, name = "xxxxxxxxxx"
 linuxserver pppd[23445]: sent [CHAP Success id=0xac "S=A971F9F1BBA20B21A613CD1DB0660F84895192EA M=Access granted"]
 linuxserver pppd[23445]: sent [CCP ConfReq id=0x1 <mppe +H -M +S -L -D -C>]
 linuxserver pppd[23445]: rcvd [IPV6CP ConfReq id=0x5 <addr fe80::5079:e37b:0a2a:e467>]

Вообщем. При соединении из винды пакеты до сервака проходят все. А при соединении из линукса - не все. Причем если для соединения с инетом использовать нормальнй канал все нормально (как во втором логе)
У меня сильное ощущение что тут проблема в каком-то параметре велкомовского соединения. Т.е. под виндой управлением модемом занимается MobilePartner, а под линуксом все команды отдаются через pppd - chatscripts.

Аватара пользователя
IceMan
Неотъемлемая часть форума
Сообщения: 377
Зарегистрирован: 22 июл 2007, 10:12
Откуда: Минск
Контактная информация:

Re: VPN over 3G

Сообщение IceMan »

Смотри через tcpdump, что шлет клиент и что ему отвечает сервер. Лог залей на pastebin.org и сбрось сюда линку. И еще я тебя просил сбросить логи с клиента при подключении, а у тебя скорее всего с сервера (linuxserver)

Chem
Заглянувший
Сообщения: 10
Зарегистрирован: 22 май 2010, 20:14

Re: VPN over 3G

Сообщение Chem »

Вот лог соединения через Велком с клиента

Код: Выделить всё

 pppd[3343]: using channel 2
 pppd[3343]: Using interface ppp1
 pppd[3343]: Connect: ppp1 <--> /dev/pts/2
 pptp[3345]: anon log[main:pptp.c:314]: The synchronous pptp option is NOT activated
 pptp[3356]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 1 'Start-Control-Connection-Request'
 pptp[3356]: anon log[ctrlp_disp:pptp_ctrl.c:739]: Received Start Control Connection Reply
 pptp[3356]: anon log[ctrlp_disp:pptp_ctrl.c:773]: Client connection established.
 pppd[3343]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x194453dd> <pcomp> <accomp>]
 pptp[3356]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 7 'Outgoing-Call-Request'
 pptp[3356]: anon log[ctrlp_disp:pptp_ctrl.c:858]: Received Outgoing Call Reply.
 pptp[3356]: anon log[ctrlp_disp:pptp_ctrl.c:897]: Outgoing call established (call ID 0, peer's call ID 1094).
 pppd[3343]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x194453dd> <pcomp> <accomp>]
 pppd[3343]: rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0x6cb7b465> <pcomp> <accomp>]
 pppd[3343]: sent [LCP ConfAck id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0x6cb7b465> <pcomp> <accomp>]
 pppd[3343]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x194453dd> <pcomp> <accomp>]
 pppd[3343]: rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0x6cb7b465> <pcomp> <accomp>]
 pppd[3343]: sent [LCP ConfAck id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0x6cb7b465> <pcomp> <accomp>]
 pppd[3343]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x194453dd> <pcomp> <accomp>]
 pppd[3343]: rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0x6cb7b465> <pcomp> <accomp>]
 pppd[3343]: sent [LCP ConfAck id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0x6cb7b465> <pcomp> <accomp>]
 pppd[3343]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x194453dd> <pcomp> <accomp>]
 pppd[3343]: rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0x6cb7b465> <pcomp> <accomp>]
 pppd[3343]: sent [LCP ConfAck id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0x6cb7b465> <pcomp> <accomp>]


Вот лог при соединении через соло:

Код: Выделить всё

ppd[2379]: using channel 2
pppd[2379]: Using interface ppp1
pppd[2379]: Connect: ppp1 <--> /dev/pts/3
pptp[2381]: anon log[main:pptp.c:314]: The synchronous pptp option is NOT activated
pptp[2389]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 1 'Start-Control-Connection-Request'
pptp[2389]: anon log[ctrlp_disp:pptp_ctrl.c:739]: Received Start Control Connection Reply
pptp[2389]: anon log[ctrlp_disp:pptp_ctrl.c:773]: Client connection established.
pppd[2379]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xaacd6361> <pcomp> <accomp>]
pptp[2389]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 7 'Outgoing-Call-Request'
pptp[2389]: anon log[ctrlp_disp:pptp_ctrl.c:858]: Received Outgoing Call Reply.
pptp[2389]: anon log[ctrlp_disp:pptp_ctrl.c:897]: Outgoing call established (call ID 0, peer's call ID 1260).
pppd[2379]: rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0xa786f09c> <pcomp> <accomp>]
pppd[2379]: sent [LCP ConfAck id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0xa786f09c> <pcomp> <accomp>]
pppd[2379]: rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xaacd6361> <pcomp> <accomp>]
pppd[2379]: sent [LCP EchoReq id=0x0 magic=0xaacd6361]
pppd[2379]: rcvd [LCP EchoReq id=0x0 magic=0xa786f09c]
pppd[2379]: sent [LCP EchoRep id=0x0 magic=0xaacd6361]
pppd[2379]: rcvd [CHAP Challenge id=0xf1 <43182c0628a49e87453bb6be5defc904>, name = "pptpd"]
pppd[2379]: sent [CHAP Response id=0xf1 <43e845d532590cbc0ab10fc678b4190c0000000000000000a68ce6af076de7186ba72bac7ea5294ffdaeb54040020d8b00>, name = "user"]
pppd[2379]: rcvd [LCP EchoRep id=0x0 magic=0xa786f09c]
pppd[2379]: rcvd [CHAP Success id=0xf1 "S=3F687FC312A301483254F591E121E45049B29E1B M=Access granted"]
pppd[2379]: CHAP authentication succeeded
kernel: [   84.761327] padlock: VIA PadLock Hash Engine not detected.
modprobe: FATAL: Error inserting padlock_sha (/lib/modules/2.6.31-21-generic/kernel/drivers/crypto/padlock-sha.ko): No such device
pppd[2379]: sent [CCP ConfReq id=0x1 <mppe +H -M +S +L -D -C>]
pppd[2379]: rcvd [CCP ConfReq id=0x1 <mppe +H -M +S -L -D -C>]
pppd[2379]: sent [CCP ConfAck id=0x1 <mppe +H -M +S -L -D -C>]
kernel: [   84.777825] PPP MPPE Compression module registered
pppd[2379]: rcvd [CCP ConfNak id=0x1 <mppe +H -M +S -L -D -C>]
pppd[2379]: sent [CCP ConfReq id=0x2 <mppe +H -M +S -L -D -C>]
pppd[2379]: rcvd [CCP ConfAck id=0x2 <mppe +H -M +S -L -D -C>]
и т.д.
четь позже выложу что дает tcpdump

Ларин
Неотъемлемая часть форума
Сообщения: 484
Зарегистрирован: 19 ноя 2007, 15:01
Контактная информация:

Re: VPN over 3G

Сообщение Ларин »

у меня все замечательно работает вот так.
правда у меня лайф.

Код: Выделить всё

pptpsetup --create connection_name --server VPNSRV  --username larin --password "pass" --start
Two of the most famous products of Berkeley are LSD and BSD:)

Chem
Заглянувший
Сообщения: 10
Зарегистрирован: 22 май 2010, 20:14

Re: VPN over 3G

Сообщение Chem »

Расскажи какой модем на лайфе, как настроено соединение? Я попробовал подсоединиться через МТС GPRS. Те же яйца. Где-то я все-таки недопираю в настройках беспроводного соединения.

Ларин
Неотъемлемая часть форума
Сообщения: 484
Зарегистрирован: 19 ноя 2007, 15:01
Контактная информация:

Re: VPN over 3G

Сообщение Ларин »

модем хуявей какой-то)
соединение подымается через какую-то мегафоновскую софтину на яве. но это пофиг. она вызывает обычный ppp
Two of the most famous products of Berkeley are LSD and BSD:)

Chem
Заглянувший
Сообщения: 10
Зарегистрирован: 22 май 2010, 20:14

Re: VPN over 3G

Сообщение Chem »

Можешь софтину выложить и посмотреть модель хуавея? Хуавеи используют как правило MobilePartner. Но пока ни одна из скачанных мной версий не заработала с моим E156G.
А PPP соединение эт понятие очень растяжимое - как автомобиль например. Например при установке MobilePartner может ставить какой-нибудь параметр типа разрешения фрагментации пакетов или еще какую-нибудь подобную вещь.

Господа, а может попробовать по логам глянуть что сия софтина делает?

Ларин
Неотъемлемая часть форума
Сообщения: 484
Зарегистрирован: 19 ноя 2007, 15:01
Контактная информация:

Re: VPN over 3G

Сообщение Ларин »

угу. мобайл партнер.
не думаю, что софтина имеет отношение к пптп. в фаере точно все разрешено? на сервере шифрование пробовал отключать?

Код: Выделить всё

larin-laptop# ps ax | grep ppp
 3582 ?        Ss+    0:00 /usr/local/hw_pppd/sbin/pppd linkname HuaweiMobile telephone "*99#" -pap lock crtscts modem /dev/ttyUSB_utps_modem 115200 usepeerdns noauth noipdefault defaultroute name  password  connect /usr/local/hw_pppd/etc/ppp/huawei-ppp-on-dialer
 3698 pts/0    S+     0:00 grep ppp
larin-laptop# 
Two of the most famous products of Berkeley are LSD and BSD:)

Chem
Заглянувший
Сообщения: 10
Зарегистрирован: 22 май 2010, 20:14

Re: VPN over 3G

Сообщение Chem »

К pptp оно имеет отношение только тем что пропускает трафик через себя. Но повторюсь что с виндовых клиентов все работает и перенастраивать сервак не очень охота - ибо его юзает много человек. Перенастраивать всем соединения не в кайф. Кроме того, соединение из линукса через проводные каналы работает.

Можешь дать еще содержимое /usr/local/hw_pppd/etc/ppp/huawei-ppp-on-dialer
и показать какой tracepath до яндеса например.

С кстати, можешь дать конфиг VPN соединения которое подключаешь через Life?

Ларин
Неотъемлемая часть форума
Сообщения: 484
Зарегистрирован: 19 ноя 2007, 15:01
Контактная информация:

Re: VPN over 3G

Сообщение Ларин »

Chem писал(а): Можешь дать еще содержимое /usr/local/hw_pppd/etc/ppp/huawei-ppp-on-dialer

Код: Выделить всё

# This is part 2 of the ppp-on script. It will perform the connection
# protocol for the desired connection.
# Modify: Derek116@huawei.com
#
MYHWPATH=/usr/local/hw_pppd

"$MYHWPATH"/sbin/chat -v					\
	TIMEOUT		25				\
	ABORT		'\nBUSY\r'			\
	ABORT		'\nNO ANSWER\r'			\
	ABORT		'\nNO CARRIER\r'			\
	ABORT		'\nRINGING\r\n\r\nRINGING\r'	\
        ABORT           '\nUsername/Password Incorrect\r' \
	SAY		"Beginning...\n"		\
	''		AT				\
	''      	ATH0				\
	SAY             "Dialing up...$TELEPHONE\n"    \
	OK		ATDT$TELEPHONE			\
	CONNECT		\c				\
	SAY		"Logging...\n"			\
larin-laptop% 
Chem писал(а): и показать какой tracepath до яндеса например.
не думаю, что это тебе поможет)
но трасерт только звездочки показывает
Chem писал(а): С кстати, можешь дать конфиг VPN соединения которое подключаешь через Life?
я ж уже кидал...
pptpsetup --create connection_name --server VPNSRV --username larin --password "pass" --start
Two of the most famous products of Berkeley are LSD and BSD:)

Chem
Заглянувший
Сообщения: 10
Зарегистрирован: 22 май 2010, 20:14

Re: VPN over 3G

Сообщение Chem »

Ларин, Трацерт меня интересует скорее для интереса: сколько узлов проходит пакет до выхода на реальный IP. Конфиг скрипта у меня примерно такой же...

IceMan, Вот ссылка на то что выдал tcpdump http://pastebin.org/280308

Господа... Абсолютно случайно попробовал запустить соединение два раза подряд... Второе соединение прошло... А первое отвалилось. Попробовал еще раз - отключил все, подключил велком, подключаю свой сервер - ничего. Запускаю два соединения к серверу - второе подключается... Скажем так, жить уже можно, но хотелось бы чтоб красиво было.

Ответить