Статьи :Операционные системы :Железо :
OS FAQ :
Кодинг :
Сейчас на сайте :0 пользователей, 10 гостей : |
Я (после долгих поисков в Интернете,переписки в форумах и чтения разных документаций и FAQ) всё-таки нашел решение, которое и хочу предложить вашему вниманию
Автор: Разместил: Amro Дата: 2006-06-05 01:28 Комментарии: ![]() ![]()
Средняя оценка участников (от 1 до 10): Пока не оценено
Проголосовавших: 0 Настройка VPN(PPTP)-сервера под LinuxДмитрий Коптев
(dimez@nm.ru), "Настройка
VPN(PPTP)-сервера под Linux" - 22/04/2003 ||
Библиотека
ЛинуксЦентра Во-первых, нам потребуется скачать последний ppp (ftp://ftp.samba.org/pub/ppp) Обычно ftp.samba.org очень редко откликается. Я рекомендую взять его с http://www.slackware.at/data/slackware-current/source/n/ppp/ppp-2.4.1.tar.gz (Если брать ppp из cvs, то патчи правильно не наложатся). Также необходимо скачать три патча, расположенные по адресам http://www.shorewall.net/pub/shorewall/pptp/ppp-2.4.1-openssl-0.9.6-mppe-patch.gz http://www.shorewall.net/pub/shorewall/pptp/ppp-2.4.1-MSCHAPv2-fix.patch.gz ftp://ftp.shorewall.net/pub/shorewall/pptp/require-mppe.diff. После этого выполните из командной строки следующие действия (предполагается, что Вы находитесь в директории, куда скачаны файлы, например, /data/src). $ tar xzf ppp-2.4.1.tar.gz $ cd ppp-2.4.1 $ gunzip -c ../ppp-2.4.1-openssl-0.9.6-mppe-patch.gz | patch -p1 $ gunzip -c ../ppp-2.4.1-MSCHAPv2-fix.patch.gz | patch -p1 $ patch -p1 < ../require-mppe.diff $ ./configure $ make $ sudo make install(это если sudo настроено :-)Компиляция пакета ppp закончена, теперь принимаемся за ядро. # cd /usr/src # tar xjf /data/src/kernel/linux-x.y.z.tar.bz2 #### Это можно пропустить, # ln -s linux-x.y.z linux ; cd linux #### если Вы не хотите обновлять ядроСкачайте (если еще не скачали) патч с адреса http://www.shorewall/net/pub/shorewall/pptp/linux-2.4.16-openssl-0.9.6b-mppe-patch.gz (У меня на момент написания этого документа стоит ядро 2.4.21-pre2 - патч подошёл) # gunzip -c ../linux-2.4.16-openssl-0.9.6b-mppe-patch.gz | patch -p1 # make mrproper # make menuconfigНастройте ядро: [*] Network device support PPP support [*] PPP multilink support [*] PPP filtering PPP support for async serial ports PPP support for sync tty ports PPP Deflate compression PPP BSD-Compress compression PPP over EthernetСкомпилируйте ядро командами: # make dep clean bzImage modules modules_install # cp arch/i386/boot/bzImage /boot/vmlinuz (это если у Вас i386-архитектура :-) # cp System.map /boot/ # cp .config /boot/configНастройте загрузчик (здесь Вы, я думаю, справитесь самостоятельно). Если требуется, перезагрузитесь (если ядро более новой версии, в противном случае - просто загрузите соответствующие модули). Ядро готово к употреблению. Теперь примемся за VPN-сервер (http://www.poptop.org/). Скачиваем, разворачиваем, устанавливаем $ tar xzf pptpd-1.1.3.tar.gz(на данный момент) $ cd pptpd-1.1.3 $ ./configure $ make $ sudo make install (это опять же, если настроено sudo)Редактируем /etc/pptpd.conf ---cat-/etc/pptpd.conf--- speed 115200 option /etc/ppp/options.pptpd debug localip 10.0.0.1 remoteip 10.0.0.2-10 ---end-of-cat---Это не должно вызывать каких-либо вопросов Вносим небольшие изменения в /etc/ppp/options ---cat-/etc/ppp/options--- lock ---end-of-cat--- Небольшое отступление: это нужно постольку, поскольку у меня есть ещё и dial-in сервер - все остальные опции я вынес в /etc/ppp/options/ttyS1 И теперь /etc/ppp/options.pptpd ---cat-/etc/ppp/options.pptpd--- ipparam PoPToP lock mtu 1490 mru 1490 ms-dns 10.0.0.1 proxyarp auth -pap +chap +chapms +chapms-v2 ipcp-accept-local ipcp-accept-remote lcp-echo-failure 30 lcp-echo-interval 5 deflate 0 mppe-128 mppe-stateless require-mppe require-mppe-stateless ---end-of-cat--Пишем небольшой скрипт запуска pptpd. ---cat-/etc/rc.d/rc.pptpd #!/bin/sh # # /etc/rc.d/rc.pptpd # # description: control pptp server # case "" in start) echo 1 > /proc/sys/net/ipv4/ip_forward modprobe ppp_async modprobe ppp_generic modprobe ppp_mppe modprobe slhc if /usr/local/vpn/sbin/pptpd; then touch /var/lock/subsys/pptpd fi ;; stop) killall pptpd rm -f /var/lock/subsys/pptpd ;; restart) killall pptpd if /usr/local/vpn/sbin/pptpd; then touch /var/lock/subsys/pptpd fi ;; status) ifconfig ;; *) echo "Usage: {PAGE_TEXT} {start|stop|restart|status}" ;; esac ---end-of-cat---Небольшое дополнение: если у Вас клиенты или сервера расположены за межсетвым экраном (firewall), то надо разрешить на нем прохождение 47 протокола c VPN-сети ( ... -p 47 -s 10.0.0.0/24 ..., если в качестве VPN-сети используется 10.0.0.0/24) и соединения по протоколу tcp через порт 1723 (... -p tcp --dport 1723 ...) а так же опять пропатчить ядро на firewall'е. Патчи следует взять с http://www.impsec.org/linux/masquerade/ip_masq_vpn.html. Теперь можно настраивать VPN-клиентов (по какому угодно протоколу - pap, chap,mschap,mschap-v2, с шифрованием или без - всё должно работать).
P.S. Заранее извините за ошибки (если заметите грубые -
напишите на email) |