от Ipolit(4-11-2005)
рейтинг (24)
[ добре ]
[ зле ]
Вариант за отпечатване
Този документ описва как да инсталираме 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 >>
|