от titovn(24-04-2006)
рейтинг (12)
[ добре ]
[ зле ]
Вариант за отпечатване
Тез дни ми се наложи и на мен да пусна VPN под Linux-а (нов
ISP), та се оказа, че е доста работа и така както гледам
по-начинаещите потребители мисля, че нЕма да се справят, та
реших да напиша едно ръководство за пускане на PPTP... а не
е лошо някой модератор да го лепне отгоре, че е полезно да
се знаят тез работи...
1) трябва да се пачне кърнъла за да подържа MPPE/MPPC...
такъв пач се сваля за 'секи отделен кърнъл от този сайт:
MPPE/MPPC kernel module for Linux
За да предвидя въпроса "как се пачва кърнъл", ше
кажа, че става с командата:
patch -p0 "... после "Networking support
--->"... пуска се "PPP (point-to-point
protocol) support" и в него "Microsoft PPP
compression/encryption (MPPC/MPPE)"... добре е да се
включат и останалите нещица от PPP-то, но нЕма да навлизам в
подробности.
Следва компилацията на кърнъла (пак нЕма да навлизам в
подробности как се компилира)
Ако MPPE-то е като модул трябва да се добави един ред в
/etc/modules.conf със съдържанив:
alias ppp-compress-18 ppp_mppe_mppc
После може да се пробва дали кърнъла има подръжка на MPPE с
командата:
# modprobe ppp-compress-18
Ако не издаде никакви съобщения за грешки – 'начи модула в
кърнъла вече е работоспособен... иначе – т.1 отначало...
2) Следва инсталация на pppd (ако не е инсталирано вече) –
има го тук като сорс (трябва ви версия 2.4.2 или по-нова):
Welcome to the ppp web pages... 'се пак в повечето по-нови
дистрибуции си го има вече и не е нужно да се слага
отново... като отново се внимава да се включи подръжката на
MPPE... може да се провери дали ppp-то подържа MPPE със
следната команда:
# strings `which pppd`|grep -i mppe|wc --lines
Ако pppd подържа MPPE, отговора ше е някъде около 38-42 или
нещо подобно, а ако не подържа - ше е НУЛА.
3) инсталира се GTK+... тук няма нищо особено...
4) Следва инсталация на php (версия 4.3.7 или по-нова):
PHP...
Задължително при конфигурирането на сорса трябва да се
зададе опцията “--enable-pcntl”:
./configure --enable-pcntl
(Едит1... аз ползвах: ./configure --with-mod_charset
--with-openssl --with-zlib --enable-bcmath --with-bz2
--enable-calendar --with-curl --enable-ftp
--with-java=/usr/lib/j2sdk1.4.2_01/ --enable-mbstring
--with-mysql --enable-pcntl --with-readline)
Може и други опции да се зададат, но трябва да се
внимава... някой са несъвместими една с друга, а за някой
просто трябва да има инсталирани съответните приложения,
които да ги ползват.
После се компилира PHP-то и се инсталира (аз 'сяко нещо
инсталирам чрез checkinstall - правя го първо на пакет и
после го инсталирам, за да мога лесно да добавям, упгрейдвам
и т.н.)
5) следва инсталацията на PHP-GTK версия 1.0.0. или
по-нова... може би най-бъгавата част от цялата
"далавера" (но си заслужава)... първо се
доизгражда сорса със скрипта buildconf:
# ./buildconf
следва конфигурирането на инсталацията (аз добавям
--enable-php-gtk):
# ./configure --enable-php-gtk
После трябва да се "пипнат" няколко неща по сорса
иначе просто дава грешки и не минава компилацията (бъгове -
к'во да пра'и човек)... за да не навлизам в подробности ше
кажа как да се избегнат: отваряте файла Makefile:
# vi Makefile
Трябва да се едитнат няколко нещица: търсите 'СИЧКИ редове,
които започват с: "$(PHP) -f
$(top_srcdir)/generator/generator.php --":
/$(PHP) -f $(top_srcdir)/generator/generator.php --
Трябва да се заменят с: "$(PHP) -q
$(top_srcdir)/generator/generator.php"
останалата част от реда си остава същата, т.е. опцията
"-f" се заменя с "-q" и се махат двете
"минусчета" (пак без да навлизам в подробности
"защо")...
После се компилире (make)... и инсталира php-gtk...
6) изтегля се и се инсталира PPTP Client for Linux или PPTP
Client for Linux версия от 1.2.0. нагоре...
В тази "част" трябва да се инсталират например
версиите: pptp-linux-1.5.0.tar.gz ; pptp-extras-1.5.0.tar.gz
и pptpconfig-20040722.tar.gz.
5) чрез pptpconfig се конфигурират тунелите (VPN-връзките и
се включват/изключват в графичен режим - X11... за туй
трябваше подръжката на GTK+ от PHP-то и самото GTK+...)
Тук има една "уговорка"... обикновено самия
PHP-скрипт е Уеко сгрешен... т.е. пътя до интерпретатора PHP
в началото на скрипта е сгрешен и не съответства на мястото,
където се е инсталирал и съответно не работи без да се
едитне... трябва да се смени първия ред от
"#!/usr/lib/php-pcntl/bin/php -q"... на
"#!/usr/local/bin/php -q" или там където ви е
самото PHP...
После си правите един линк някъде из менютата на KDE-то към
този скрипт (pptpconfig) и го пускате... вече в екранчето
к'во да се сетне е еУементарно... име на връзката, IP, лузър
(юзер), парола, подържани енкапсулации и т.н. - както ви е
казал доставчика.
(Едит2...Забравих да напиша - трябваха ми и следните
библиотеки за да тръгне 'сичко туй - libglade-0.17,
libglade-2.4.0 и libxml-1.8.17 ... при вас може и да трябват
други)
(Едит3... забравих да кажа и че ви трябва пакета
iproute2... ама то туй се подразбира)
Може и малко по'тънко да се мине без графичната част, като
ето ТУК е описано:
Цитат:
Originally posted by prestige
От тук си теглиш:
1. pptp-linux-1.4.0.tar.gz и
2. pptp-extras-1.4.0.tar.gz
Първото си го компилираш, както си е описано.Трябва ти
пакета PPP за съответната дистрибуция (можеш да го
компилираш и от сорс) и PPP Support в ядрото!
С второто правиш следното:
tar zxvf pptp-extras-1.4.0.tar.gz
cp pptp-extras-1.4.0/options.pptp /etc/ppp/
cp pptp-extras-1.4.0/pptp-command /usr/sbin/
Предполагам знаеш, какво правят тези команди.
Скриптът pptp-command е perl скрипт, с който се
конфигурират тунелите.Погледни дали има"х" в
правата (за да е стартируем).
Следва да направиш едни директории, от които pptp-command
се нуждае:
mkdir /etc/pptp.d
mkdir /etc/ppp/peers
Дойде време да стартираш pptp-command:
root@:~# pptp-command
1.) start
2.) stop
3.) setup
4.) quit
What task would you like to do?:
Избираш "3" за setup.
1.) Manage CHAP secrets
2.) Manage PAP secrets
3.) List PPTP Tunnels
4.) Add a NEW PPTP Tunnel
5.) Delete a PPTP Tunnel
6.) Configure resolv.conf
7.) Select a default tunnel
8.) Quit
?:
избираш 1
1.) List CHAP secrets
2.) Add a New CHAP secret
3.) Delete a CHAP secret
4.) Quit
?:
избираш 2
Local Name: тук пишеш username-то си на VPN
connection-а
Remote Name [PPTP]: същото, като по-горното
Password: тук пишеш поролата си (когато си пишеш паролата
ти не се извеждаш символи)
1.) List CHAP secrets
2.) Add a New CHAP secret
3.) Delete a CHAP secret
4.) Quit
?:
избираш 4
1.) Manage CHAP secrets
2.) Manage PAP secrets
3.) List PPTP Tunnels
4.) Add a NEW PPTP Tunnel
5.) Delete a PPTP Tunnel
6.) Configure resolv.conf
7.) Select a default tunnel
8.) Quit
?:
избираш 4
1.) Other
Which configuration would you like to use?:
избираш 1
Tunnel Name: тук няма особено значение, какво ще пишеш -
името на ISP-то си, името на кучето си, името на приятелката
си, ...
Server IP: тук пишеш IP-to на VPN сървъра, който ще те
ауторизира.
route: хм, значи тук нещата са малко импровизирани.Не пиши
нищо за сега.После ще се върнем на него пак с допълнително
обяснение.(Удряш Enter само)
Local Name: username-то на VPN connection-а
Remote Name [PPTP]: пак username-то на VPN connection-а
1.) Manage CHAP secrets
2.) Manage PAP secrets
3.) List PPTP Tunnels
4.) Add a NEW PPTP Tunnel
5.) Delete a PPTP Tunnel
6.) Configure resolv.conf
7.) Select a default tunnel
8.) Quit
?:
избираш 7
и избираш номера на тунела, който ще използваш по
default.Ако е само един това е 1, 2 е cancel.
1.) Manage CHAP secrets
2.) Manage PAP secrets
3.) List PPTP Tunnels
4.) Add a NEW PPTP Tunnel
5.) Delete a PPTP Tunnel
6.) Configure resolv.conf
7.) Select a default tunnel
8.) Quit
?:
избираш 8
стартиране:
pptp-command start
ще видиш нещо такова:
root@:~# pptp-command start
Using interface ppp0
Connect: ppp0 /dev/pts/9
Cannot determine ethernet address for proxy ARP
local IP address 192.200.59.194
remote IP address 192.168.34.8
pptp-command: added route add default gw 192.200.59.194 dev
ppp0
Tunnel atlantis is active on ppp0. Local IP Address:
192.200.59.194
root@:~#
С това тунела е вдигнат и можеш да го видиш с:
ifconfig като ppp0.
Идва ред да оправим route-инга.Онова route: по-горе, което
оставихме празно.
Правиш следното:
ifconfig ppp0
С това виждаш само ppp0 интерфейса.IP-то за route-инга,
което ти трябва е на реда:
inet addr:192.200.59.194 P-t-P:192.168.34.8
Mask:255.255.255.255
IP-то което ти трябва е това: inet addr: x.x.x.x !!!
За да не правиш всеки път:
pptp-command start и после
route add default gw x.x.x.x dev ppp0
тази команда се слага в онова горното route: , което
оставихме празно.
Връщаме се отново на pptp-command скрипта.
Стартираме го:
pptp-command setup
1.) Manage CHAP secrets
2.) Manage PAP secrets
3.) List PPTP Tunnels
4.) Add a NEW PPTP Tunnel
5.) Delete a PPTP Tunnel
6.) Configure resolv.conf
7.) Select a default tunnel
8.) Quit
?:
избираш 5
И после избираш номера на тунела, който искаш да
изтриеш.Предполагам е само един при теб, за това избираш
1.
Removed tunnel
1.) Manage CHAP secrets
2.) Manage PAP secrets
3.) List PPTP Tunnels
4.) Add a NEW PPTP Tunnel
5.) Delete a PPTP Tunnel
6.) Configure resolv.conf
7.) Select a default tunnel
8.) Quit
?:
След това правиш абсолютно същото с добавянето на нов
тунел, както ти го описах по-горе, единствено с тази
разлика, че когато те попита за route: пишеш:
route: add default gw x.x.x.x dev ppp0
"route" НЕ се пише!Скрипта ти го изписва, а ти
пишеш само add default gw x.x.x.x dev ppp0.
Това ip x.x.x.x ти обясних от къде да го вземеш.
П.С Тази статия е написана от mitku във форума на
Hardwarebg.com. Аз само реших да я поставя тук, защото от
всичко каквото съм изчел тя ми помогна да си пусна нет-а. И
единственото което промених, защото съм с pptp-1.5.0 е че в
options.pptp откоментирах mppe-128 и го промених на
require-mppe-128.
|