LINUX-BG Адрес : http://www.linux-bg.org |
Инсталиране и конфигуриране на VPN сървър и клиент |
От: Ipolit Публикувана на: 4-11-2005 Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=377032061 |
Този документ описва как да инсталираме PPTP VPN сървър и клиент, като използваме Slackware Linux [www.slackware.com] и PoPToP [www.poptop.org]. PPTP - Microsoft протокол може да не е най-добрия протокол за VPN, но е относително лесен за инсталация. Друг плюс е, че е поддържан от почти всяка версия на Windows по подразбиране, което е прави удобно свързването на вашите клиенти. Съдържание: 1. Предварителни изисквания 2. Инсталиране и конфигуриране на сървърната част 2.1 Инсталиране на MPPC/MPPE поддръжка в ядрото 2.2 Инсталиране на poptop 2.3 Конфигуриране на poptop 2.3.1 Настройване на IP-адресирането 2.3.2 Конфигуриране на демона pptp 2.3.3 Добавяне на потребители 3 Инсталиране и конфигуриране на клиентската част 3.1 Инсталиране на Linux pptp клиента 3.2 Конфигуриране на Linux pptp клиента 1 Изисквания Инсталацията на PPTP сървър и клиент изисква наличието на следните пакети на вашата система: - Кода на ядрото - ppp (от "n" серията пакети) Приемаме че кодът на ядрото е инсталиран в /usr/src и инсталираният пакет ppp е този който идва със Slackware и има MPPE поддръжка. Освен тези изисквания, също предполагаме че имате базови познания за TCP/IP и сте запознати с компилирането на Linux ядро. 2 Инсталиране и конфигуриране на сървърната част 2.1 Инсталиране на MPPC/MPPE поддръжка в ядрото Първата стъпка е да се уверим че в ядрото имаме осигурена поддръжка на MPPC/MPPE. Проектът PoPToP предлага няколко начина за инсталиране на MPPC/MPPE поддръжка, но те са за по-стари ядра. Затова ще направим нещата на ръка, като използваме MPPC/MPPE кръпката от http://www.polbox.com/h/hs001/ Изтеглете подходящата MPPE/MPPC кръпка за версията на вашето ядро http://www.polbox.com/h/hs001/#AEN56 и я копирайте в /usr/src. - Забележка 1 : Кръпката предполага, че пътят до кода на вашето ядро е /usr/src/linux-$ВЕРСИЯ, но тъй като /usr/src/linux обикновено е връзка към тази директория, това не би трябвало да представлява проблем. - Забележка 2 : Ако няма кръпка за версията на вашето ядро, може да опитате да изтеглите кръпка с версията, най-близка до вашата и да направите връзка като тази: ln -s /usr/src/linux-$MYVERSION /usr/src/linux-$MPPE-MPPC-PATCH-VERSION Инсталирайте кръпката на вашето ядро: cd /usr/src zcat linux-$VERSION-mppe-mppc-1.3.patch.gz | patch -p0 конфигурирайте ядрото: cd /usr/src/linux make menuconfig в конфигурационното меню на ядрото идете в Device drivers --> networking support уверете се, че опциите за ppp изглеждат по този начин: [...] <M> PPP (point-to-point protocol) support [ ] PPP multilink support (EXPERIMENTAL) [*] PPP filtering <M> PPP support for async serial ports <M> PPP support for sync tty ports <M> PPP Deflate compression <M> PPP BSD-Compress compression <M> Microsoft PPP compression/encryption (MPPC/MPPE) [...] После идете в Cryptographic options конфигурационното меню на ядрото и активирайте SHA1 и RC4 алгоритмите. Излезте от конфигурационното меню и запазете вашата конфигурация. Компилирайте новото ядро и модули. Рестартирайте системата и се уверете, че новото ядро работи. Добавете следните редове в /etc/modules.conf: alias char-major-108 ppp_generic alias tty-ldisc-3 ppp_async alias tty-ldics-14 ppp_synctty alias ppp-compress-18 ppp_mppe_mppc alias ppp-compress-21 bsd_comp alias ppp-compress-24 ppp_deflate alias ppp-compress-26 ppp_deflate alias tty-ldisc-14 ppp_synctty Това е, което включва частта с ядрото от инсталацията. 2.2 Инсталиране на poptop Изтеглете последната стабилна версия на pptpd от http://sourceforge.net/project/showfile... компилирайте и инсталирайте pptpd: tar zxvf pptpd-$VERSION.tar.gz cd pptpd-$VERSION ./configure make su make install (или използвайте checkinstall (от "extra" пакетите) за да генерирате пакет за Slackware) 2.3 Конфигуриране на poptop 2.3.1 Настройване на IP-адресирането Сега, когато имаме всички необходими пакети инсталирани на коректните места, можем да започнем с конфигурирането на poptop. Първо ще дефинираме IP-адрес за pptp сървъра и IP-адреси за присвояване на нашите клиенти. Може да изберем да присвоим различен IP-адрес на сървъра за всяка входяща връзка, или може да използваме един адрес за всички входящи връзки. В този пример ще използваме единичен адрес на сървъра. В /etc/pptpd.conf добавяме следващите редове: localip 10.0.0.1 remoteip 10.0.0.2-20 С това присвояваме на IP-адрес 10.0.0.1 на pptp сървъра, обърнете внимание, че този адрес не се присвоява на никой от физическите мрежови интерфейси на сървъра, той се използва изцяло за виртуалните интерфейси. Трябва да използвате разбира се подходящ IP-диапазон за вашата подмрежа. Вторият ред дефинира диапазона от адреси, които ще бъдат присвоявани на клиентите. 2.3.2 Конфигуриране на демона pptp Продължаваме с конфигурацията на сървъра. Ще настроим pptpd като редактираме файла /etc/ppp/options.pptpd. Трябва да сме сигурни че pptpd чете този файл, като добавим този ред в /etc/pptpd.conf: option /etc/ppp/options.pptpd После добавяме тези редове в /etc/ppp/options.pptpd: name pptpd ipparam PoPToP lock mtu 1490 mru 1490 ms-wins $IP АДРЕСА НА ВАШИЯТ WINS СЪРВЪР, ПРИСВОЯВА СЕ НА WINDOWS КЛИЕНТИТЕ ms-dns $IP НА ВАШИЯ ПЪРВИ DNS СЪРВЪР, ПРИСВОЯВА СЕ НА WINDOWS КЛИЕНТИТЕ ms-dns $IP НА ВАШИЯ ВТОРИ DNS СЪРВЪР, ПРИСВОЯВА СЕ НА WINDOWS КЛИЕНТИТЕ multilink proxyarp auth require-mschap require-mschap-v2 ipcp-accept-local ipcp-accept-remote lcp-echo-failure 30 lcp-echo-interval 5 deflate 0 require-mppe-128 nopcomp noaccomp Не забравяйте да проверите ms-wins и ms-dns опциите и присвоявайте подходящи ip-адреси. ms-wins се изисква само ако windows клиентите ще достъпват windows сървъри на другия край на тунела. Обърнете внимание че тази конфигурация позволява само 128 битово криптиране, някои версии на Windows се нуждаят от допълнителен пакет за 128-битово криптиране. Този пакет може да бъде изтеглен от Microsoft.com. Възможно е да ограничите криптирането до 40 бита: require-mppe-40 Това ще позволи на всички Windows клиенти да се свържат, но разбира се е по-малко надеждно от гледна точка на сигурността. 2.3.3 Добавяне на потребители Сега ще добавим потребителските акаунти. Има няколко начина клиентите да се идентифицират пред pptp сървъра, които включват radius и Samba. Тук обаче ще използваме файлът на ppp chap-secrets. Потребителите се добавят във файла /etc/ppp/chap-secrets в следния вид: username pptp-server-name password ip-address Валиден запис за потребител би могъл да изглежда по сления начин: joesixpack pptpd somepassword * Това позволява на потребителя "joesixpack" да се идентифицира пред сървъра "pptpd" с паролата "somepassword". След като joesixpack се свърже със сървъра и се установи връзка, неговата машина ще получи първия наличен IP адрес, както дефинирахме в предишната стъпка. Възможно е също всеки потребител да получава свой собствен уникален ip-адрес. Обърнете внимание, че пароли съдържащи специални символи трябва да бъдат оградени в кавички. Вече можем да стартираме pptp демона: /usr/sbin/pptpd Можем да тестваме връзката си като използваме Windows машина. Ако нямате Windows машина за теста (това е разбираемо ;-)), вижте следващата секция, където е описано как да инсталираме pptp linux клиент. 3 Инсталиране и конфигуриране на клиентската част За клиентската част имаме същите изисквания както и за сървърната. Нужна е MPPE/MPPC кръпката да бъде инсталирана на ядрото, както и ppp пакета да бъде инсталиран. За инструкции по кръпката на ядрото погледнете секция 2.1. 3.1 Инсталация на Linux pptp клиент Ако всичко е минало добре трябва да имате MPPE/MPPC поддръжка в ядрото. Можем да продължим с инсталацията на pptp клиента. Първо, изтеглете кода от [http://pptpclient.sourceforge.net/#down... Разархивирайте кода tar zxvf pptp-linux-$VERSION.tar.gz компилирайте и инсталирайте: cd pptp-linux-$VERSION make su make install 3.2 Конфигуриране на Linux pptp клиент Създаваме файл, наречен /etc/ppp/options.pptp и поставяме следните редове в него: lock noauth nodeflate nobsdcomp Добавяме следващия ред в /etc/ppp/chap-secrets: username pptpd password * Поставяме вярно потребителско име и парола за pptp сървъра към който ще се свързваме. Сега създаваме файл, наречен /etc/ppp/peers/YOURTUNNELNAME, като заменяме YOURTUNNELNAME с каквото и да е име, с което искаме да наречем тунела. Поставяме следните редове в този файл: pty "pptp YOURPPTPSERVER --nolaunchpppd" name YOURUSERNAME mtu 1490 mru 1490 remotename pptpd require-mschap require-mschap-v2 require-mppe-128 file /etc/ppp/options.pptp ipparam YOURTUNNELNAME persist където YOURPPTPSERVER е адресът на pptp сървъра, с който искаме да се свържем, YOURUSERNAME е вашето потребителско име YOURTUNNELNAME е същото като това което поставихме във файла /etc/ppp/peers. Остава един последен детайл, за който трябва да се погрижим и това е рутирането. За да сме сигурни че нашият трафик ще бъде рутиран към другия край на тунела, създаваме файл с име ip-up в /etc/ppp и поставяме следните редове в него: #!/bin/sh /sbin/route add -net REMOTE-NET-IP netmask REMOTE-NET-MASK dev ppp в който трябва да заменим IP-адреса и мрежовата маска с тези на другия край на тунела. Ако няма мрежа от другата страна, а само pptp сървър, може да използваме -host вместо -net. Като приключим с това, съхраняваме файла и го правим изпълним: chmod +x /etc/ppp/ip-up Сега вече всичко е готово и може да пуснем тунела: pppd call YOURTUNNELNAME Ако всичко е минало както трябва, би трябвало да се появи нещо такова във /var/log/messages: Mar 16 19:25:53 feike pppd[7319]: local IP address 10.0.0.5 Mar 16 19:25:53 feike pppd[7319]: remote IP address 10.0.0.1 и също да можете да пращате ping по тунела.. << Инсталиране на драйвери за nVidia под SuSE | Антивирусна проверка и SPF поддръжка в Postfix >> |
Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук,
но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора,
както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.
All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
|