1 (27.04.2010 21:05:24 отредактировано smith)

Тема: Создание и настройка VPN подключения PPTP с MPPE

Я решительно не понимаю разработчиков, которые не включили такую простую функцию, как создание vpn соединений. На WM, Android и IPhone VPN есть из коробки. А тут нет.
И до сих пор не появилось программы(пусть даже в extras-devel) для создания vpn подключений!
Существующий способ, описанный в http://talk.maemo.org/showthread.php?t=36172&page=2 , требует приличных знаний английского языка и консоли линукса.
С этим способом я разобрался и настроил подключение под себя.
Теперь я хочу рассказать это вам и  структурировать все знания на счет создания vpn подключения на N900, описанные в 5 страницах обсуждения на memo.org, в кучу.

Для начала, в качестве предисловия, я поработаю К.О. и приведу определения понятий, которыми мы будем оперировать далее:
PPP — протокол точка-точка канального уровня.
PPTP — туннельный протокол типа точка-точка, позволяющий компьютеру устанавливать защищённое соединение с сервером за счёт создания специального туннеля в стандартной, незащищённой сети.
PPPoE  — сетевой протокол передачи кадров PPP через Ethernet.
Microsoft Point-to-Point Encryption (MPPE) — протокол шифрования данных, используемый поверх соединений PPP.

Для создания vpn подключения к майкросовтовским сетям нам нужно:
PPTP туннель с проверкой подлинности MS CHAP V2 и шифрованием MPPE 128
В ходе создания подключения я привожу команды со своими параметрами. Для моего подключения они такие:
Адрес сервера:10.1.1.10
Имя пользователя:smith
Пароль:123

Итак, начнем настройку PPTP VPN with MPPE!

Подготовка

Скачиваем на телефон следующие файлы:
kernel modules : http://fanoush.wz.cz/maemo/modules-2.6. … ptp.tar.gz
pppd : http://fanoush.wz.cz/maemo/ppp_2.4.4rel … _armel.deb
pptp-linux: http://fanoush.wz.cz/maemo/pptp-linux_1.7.2-1_armel.deb

Сохраняем их, например, в папку \MyDocs\.documents\
То есть в документы.

Открываем терминал и заходим под рутом

root

Установка модулей ядра

Переходим в папку со скачанными файлами

cd /home/user/MyDocs/.documents/

Устанавливаем пакеты поддержки pppd и pptp-linux

dpkg -i ppp_2.4.4rel-osso4_armel.deb
dpkg -i pptp-linux_1.7.2-1_armel.deb

Распаковываем модули ядра

tar -zxvf modules-2.6.28-200903102-pptp.tar.gz

Образуется две папки: "drivers" и "crypto"
Копируем модули ядра в нужную папку:

cp ./drivers/net/ppp_async.ko /lib/modules/2.6.28-omap1/
cp ./drivers/net/ppp_generic.ko /lib/modules/2.6.28-omap1/
cp ./drivers/net/ppp_mppe.ko /lib/modules/2.6.28-omap1/
cp ./drivers/net/slhc.ko /lib/modules/2.6.28-omap1/
cp ./crypto/sha1_generic.ko /lib/modules/2.6.28-omap1/

Переходим в каталог с модулями ядра:

cd /lib/modules/2.6.28-omap1/

Создаем список зависимостей всех модулей:

depmod -a

Вставляем новые модули в ядро Linux:

insmod slhc.ko
insmod ppp_generic.ko
insmod ppp_async.ko
insmod sha1_generic.ko
insmod ppp_mppe.ko

Настройка нового подключения

Можно вручную создать новое подключение со своими настройками. Но зачем, если есть pptpsetup!
Но тут возникает проблема в том, что он использует аргументы, которые не поддерживаются нашим N900. В итоге скрипт просто выдает ошибку о том, что мы не используем mppe.
Это легко исправить!

Открываем файл /usr/sbin/pptpsetup любимым текстовым редактором. Я для этого использую leafpad:

leafpad /usr/sbin/pptpsetup

Переходим на линуию 192(ближе к концу) . Там должен быть метод с именем Check_MPPE_in_pppd. Закомментируем ненужный нам код(или удалим). Этот метд должен выглядеть примерно так:

sub Check_MPPE_in_pppd {
#    my $command = q/strings `which pppd`|grep -i mppe|wc --
#    my $answer  = `$command`;                              
#    if ($answer > 0) {                                     
        # ok!                                               
        return 1;                                           
#    } else {                                               
#        return 0;                                          
#    }                        
}

Или так:

sub Check_MPPE_in_pppd { return 1;}

Запускаем pptpsetup со своими настройками.
Синтаксис примерно такой:

pptpsetup --create ТУННЕЛЬ --server СЕРВЕР [--domain ДОМЕН] --username ИМЯ_ПОЛЬЗОВАТЕЛЯ [--password ПАРОЛЬ] 

Подробнее можете посмотреть в гугле.
Важно! В параметрах используются два коротких тире! лучше такую команду не копировать, а ввести вручную.
Для меня эта строка выглядит примерно так:

pptpsetup --create ustuvpn --server 10.1.1.10 --username smith --password 123

Открываем для редактирования файл с настройками туннеля:

leafpad /etc/ppp/peers/ustuvpn

ustuvpn заменить на имя вашего подключения
К сожалению я не сохранил состояние изначального файла, поэтому привожу то, как он должен выглядеть:

pty “pptp 10.1.1.10 –nolaunchpppd”
lock
noauth
nobsdcomp
nodeflate
name smith
require-mppe-128
noipdefault
usepeerdns
defaultroute
replacedefaultroute
persist

Расшифровку опций можно посмотреть тут: http://manpages.ylsoftware.com/dokuwiki/man/pppd_8
Если у вас не используется mppe, то уберите строку require-mppe-128.

Устанавливаем необходимые консольные утилиты: iproute и mtr-tiny из репозитория kluenter:

Имя каталога: kluenter
Веб адрес: http://maemo.kluenter.de/packages
Дистрибутив: fremantle
Компоненты: main

После этого у меня замечательно создалось работающее vpn pptp соединения с mppe:

pppd call ustuvpn logfd 2 nodetach debug dump

После запуска этой команды на консоль вываливаются все сервисные сообщения. И можно понять, что все работает, или на каком-то этапе вылазит ошибка.

Вот мой лог выполнения этой команды:

Nokia-N900-42-11:~# pppd call ustuvpn logfd 2 nodetach debug dump
pppd options in effect:
debug        # (from command line)
nodetach        # (from command line)
persist        # (from /etc/ppp/peers/ustuvpn)
logfd 2        # (from command line)
dump        # (from command line)
noauth        # (from /etc/ppp/peers/ustuvpn)
name smith        # (from /etc/ppp/peers/ustuvpn)
remotename ustuvpn        # (from /etc/ppp/peers/ustuvpn)
        # (from /etc/ppp/peers/ustuvpn)
pty pptp 10.1.1.10 --nolaunchpppd        # (from /etc/ppp/peers/ustuvpn)
crtscts        # (from /etc/ppp/options)
        # (from /etc/ppp/options)
asyncmap 0        # (from /etc/ppp/options)
lcp-echo-failure 4        # (from /etc/ppp/options)
lcp-echo-interval 30        # (from /etc/ppp/options)
hide-password        # (from /etc/ppp/options)
ipparam ustuvpn        # (from /etc/ppp/peers/ustuvpn)
noipdefault        # (from /etc/ppp/peers/ustuvpn)
defaultroute        # (from /etc/ppp/peers/ustuvpn)
replacedefaultroute        # (from /etc/ppp/peers/ustuvpn)
proxyarp        # (from /etc/ppp/options)
usepeerdns        # (from /etc/ppp/peers/ustuvpn)
nobsdcomp        # (from /etc/ppp/peers/ustuvpn)
nodeflate        # (from /etc/ppp/peers/ustuvpn)
require-mppe-128        # (from /etc/ppp/peers/ustuvpn)
noipx        # (from /etc/ppp/options)
using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/pts/1
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xe445f209> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x1 <mru 1460> <asyncmap 0x0> <auth chap MS-v2> <magic 0x181935a9> <accomp>]
sent [LCP ConfAck id=0x1 <mru 1460> <asyncmap 0x0> <auth chap MS-v2> <magic 0x181935a9> <accomp>]
rcvd [LCP ConfRej id=0x1 <pcomp>]
sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0xe445f209> <accomp>]
rcvd [LCP ConfAck id=0x2 <asyncmap 0x0> <magic 0xe445f209> <accomp>]
sent [LCP EchoReq id=0x0 magic=0xe445f209]
rcvd [LCP EchoReq id=0x0 magic=0x181935a9]
sent [LCP EchoRep id=0x0 magic=0xe445f209]
rcvd [CHAP Challenge id=0x37 <2ff7d7838d970886121a0d4a2b99ac26>, name = "bill"]
sent [CHAP Response id=0x37 <3fd0ce0070aaa9fb6a7483af08ee0538000000000000000089358c3d86a1aa714001de92448f809cfa848bc4bc517bbc00>, name = "smith"]
rcvd [LCP EchoRep id=0x0 magic=0x181935a9]
rcvd [CHAP Success id=0x37 "S=1DA3D43521437A617A2A7036F6AE10F4E66D0147 M=Access granted"]
CHAP authentication succeeded
sent [CCP ConfReq id=0x1 <mppe +H -M +S -L -D -C>]
rcvd [CCP ConfReq id=0x1 <mppe +H -M +S +L -D -C>]
sent [CCP ConfNak id=0x1 <mppe +H -M +S -L -D -C>]
rcvd [CCP ConfAck id=0x1 <mppe +H -M +S -L -D -C>]
rcvd [CCP ConfReq id=0x2 <mppe +H -M +S -L -D -C>]
sent [CCP ConfAck id=0x2 <mppe +H -M +S -L -D -C>]
MPPE 128-bit stateless compression enabled
sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 10.128.0.0>]
sent [IPCP ConfAck id=0x1 <compress VJ 0f 01> <addr 10.128.0.0>]
rcvd [IPCP ConfNak id=0x1 <addr 10.230.43.23> <ms-dns1 10.128.0.0> <ms-dns3 93.88.181.2>]
sent [IPCP ConfReq id=0x2 <compress VJ 0f 01> <addr 10.230.43.23> <ms-dns1 10.128.0.0> <ms-dns3 93.88.181.2>]
rcvd [IPCP ConfAck id=0x2 <compress VJ 0f 01> <addr 10.230.43.23> <ms-dns1 10.128.0.0> <ms-dns3 93.88.181.2>]
replacing old default route to wlan0 [192.168.137.1]
Cannot determine ethernet address for proxy ARP
local  IP address 10.230.43.23
remote IP address 10.128.0.0
primary   DNS address 10.128.0.0
secondary DNS address 93.88.181.2
Script /etc/ppp/ip-up started (pid 1849)
Script /etc/ppp/ip-up finished (pid 1849), status = 0x0

И после завершения подключения(Ctrl+C):

^CTerminating on signal 2
Script pptp 10.1.1.10 --nolaunchpppd finished (pid 1830), status = 0x0
Modem hangup
Connect time 0.3 minutes.
Sent 0 bytes, received 0 bytes.
restoring old default route to wlan0 [192.168.137.1]
Script /etc/ppp/ip-down started (pid 1852)
MPPE disabled
sent [LCP TermReq id=0x3 "MPPE disabled"]
Connection terminated.
Waiting for 1 child processes...
  script /etc/ppp/ip-down, pid 1852
Script /etc/ppp/ip-down finished (pid 1852), status = 0x0

Я всегда запускаю именно так. Это дает мне информацию о том, что происходит с vpn подключением. Для меня это важно, так как бывают разрывы и пропадание сигнала(далеко ухожу от точек доступа в институте).
Но, если у вас всё замечательно работает, вы можете запускать так:

pppd call <tunnelname>

Для завершения подключения нужно выполнить:

killall pppd

Удачи!

2

Re: Создание и настройка VPN подключения PPTP с MPPE

я тоже пробовал, но что-то не вышло http://maemoworld.ru/forum/viewtopic.ph … 784#p19784
сейчас буду исправлять свои конфиги smile

Поделиться

3 (26.04.2010 21:09:18 отредактировано sem0f)

Re: Создание и настройка VPN подключения PPTP с MPPE

# pptpsetup –create homevpn –server [serverIP] –username [user] –password [pass]
/usr/sbin/pptpsetup: too few arguments.
Try '/usr/sbin/pptpsetup --help' for more information.

и каких аргументов может не хватать?

ну и далее, если создать файл /etc/ppp/peers/home

Nokia-N900-02-8:/# pppd call home logfd 2 nodetach debug dump
pppd: In file /etc/ppp/peers/home: unrecognized option '82.ххх.ххх.ххх –nolaunchpppd'

что-то не выходит пока поднять VPN

да, а если закоментить первую строчку:

#pty “pptp 10.1.1.10 –nolaunchpppd”
lock
noauth
nobsdcomp
nodeflate
name smith
require-mppe-128
noipdefault
usepeerdns
defaultroute
replacedefaultroute
persist

то происходит следующее:

Nokia-N900-02-8:~# pppd call home logfd 2 nodetach debug dump
~?}#?!}!}!} }4}"}&} } } } }%}&?,?}'}"}(}"??~~?}#?!}!}!} }4}"}&}

ну и все в таком духе, пока не прибьешь Killall pppd
интерфейс при этом новый не появляется (ppp0 должен быть я так понимаю)

Поделиться

4 (26.04.2010 21:13:23 отредактировано smith)

Re: Создание и настройка VPN подключения PPTP с MPPE

# pptpsetup –create homevpn –server [serverIP] –username [user] –password [pass]
/usr/sbin/pptpsetup: too few arguments.
Try '/usr/sbin/pptpsetup --help' for more information.

Действительно, я ошибся при написании. Исправил.
нужно примерно так:pptpsetup --create homevpn --server [serverIP] --username [user] --password [pass]
без правильного выполнения этой команды дальнейшие действия бесполезны
к тому же надо открывать(не создавать!!) для редактирования файл /etc/ppp/peers/homevpn , раз ты в pptpsetup его указываешь.

Поделиться

5

Re: Создание и настройка VPN подключения PPTP с MPPE

smith пишет:

Действительно, я ошибся при написании. Исправил.
нужно примерно так:pptpsetup --create homevpn --server [serverIP] --username [user] --password [pass]
без правильного выполнения этой команды дальнейшие действия бесполезны
к тому же надо открывать(не создавать!!) для редактирования файл /etc/ppp/peers/homevpn , раз ты в pptpsetup его указываешь.

А в чем ошибся-то?)
файл /etc/ppp/peers/homevpn уже создан, а результат тот-же  sad

Поделиться

6

Re: Создание и настройка VPN подключения PPTP с MPPE

Тему не стоило все-таки так обобщенно называть. Ибо для простого создания VPN соединения в devel достаточно большое количество программ. Сам пользуюсь vpnc например, можно даже графический интерфейс поставить. Но за ликбез по pptp спасибо!

7

Re: Создание и настройка VPN подключения PPTP с MPPE

bovi пишет:

Ибо для простого создания VPN соединения в devel достаточно большое количество программ.

OpenVPN и vpnc для cisco, вот собственно и все, не густо...

Поделиться

8

Re: Создание и настройка VPN подключения PPTP с MPPE

все заработало как надо, даже через GPRS, хотя думал что у опсосов могут быть порты закрыты.
если все настройки ввели верно но соединение отваливается, читаем внимательно лог и пробуем перезагрузиться smile
также  следует обратить внимание, включена ли на VPN сервере опция MPPE Encryption, если нет то комментируем строчку require-mppe-128 в файле /etc/ppp/peers/Имя_вашего_соединения

Поделиться

9

Re: Создание и настройка VPN подключения PPTP с MPPE

Не могу установить iproute, диспечер приложений говорит что репозиторий http://maemo.kluenter.de/packages не имеет  PGP ключика . Может кто подскажет что делать?

Поделиться

10

Re: Создание и настройка VPN подключения PPTP с MPPE

Можно например ставить через терминал, там вроде есть параметр для игнорирования отсутствия подписи на пакетах.

На форуме появляюсь редко, но N900 пользоваться не перестал, если вдруг что-то нужно пишите в jabber или eMail
Jabber: mrclon@jabnet.org

Поделиться

11

Re: Создание и настройка VPN подключения PPTP с MPPE

Держите деб iproute. Я сам не пробовал ставить в таком виде, а просто выкачал с  http://maemo.kluenter.de/packages
Возможно нужно будет удовлетворить зависимости или ставить через dpkg -i

Post's attachments

iproute_20080725-3-maemo2_armel.deb 362.43 kb, 8 загрузок с 2010-07-13 

У Вас недостаточно прав для загрузки файлов, прикрепленных к этому сообщению.

Поделиться

12

Re: Создание и настройка VPN подключения PPTP с MPPE

Кстати даненые пакеты есть в Extras Devel, но их в диспетчере не видно. Можно поставить через apt get install iproute или найти в Faster Application Manager

Поделиться

13 (31.07.2010 18:44:54 отредактировано SaDem)

Re: Создание и настройка VPN подключения PPTP с MPPE

smith пишет:

Вставляем новые модули в ядро Linux:

insmod slhc.ko
insmod ppp_generic.ko
insmod ppp_async.ko
insmod sha1_generic.ko
insmod ppp_mppe.ko

insmod: error inserting 'module_name' : -1 Invalid module format
Вот такой ответ получаю при попытке вставить модули. На родном ядре проблем не было, сейчас стоит ядро отсюда http://maemoworld.ru/wiki/index.php/Раз … Nokia_N900 CPU 900MHz DSP 490MHz.
Что-нибудь может помочь в моей ситуации кроме отказа от модифицированного ядра в пользу оригинального?
Заранее спасибо.

Поделиться

14

Re: Создание и настройка VPN подключения PPTP с MPPE

SaDem , сложно сказать. У меня стоит ядро от titan. power37. с ним проблем нет и можно поставить любые частоты.

Поделиться

15

Re: Создание и настройка VPN подключения PPTP с MPPE

поставил ядро power-kernel из реп

uname -r
2.6.28.10power37

однако все равно при попытке вставить модули в ядро получаю

insmod: error inserting 'module_name' : -1 Invalid module format

smith, может быть у меня ядро какое-то не то?) поделитесь ссылкой на ядро в которое модули гарантировано вставляются, пожалуйста.

Поделиться