LINUX-BG Адрес : http://www.linux-bg.org |
Настройка на VPN чрез pptp |
![]() |
![]() |
От: titovn Публикувана на: 24-04-2006 Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=381971142 |
![]() |
![]() |
![]() |
![]() |
![]() |
Тез дни ми се наложи и на мен да пусна 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. |
![]() |
![]() |
![]() |
![]() |
![]() |
Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук,
но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора,
както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.
All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
|