Я (после долгих поисков в Интернете,переписки в форумах и чтения разных документаций и FAQ) всё-таки нашел решение, которое и хочу предложить вашему вниманию
Автор:
Разместил: Amro   Дата: 2006-06-05 01:28
Комментарии: (0)   Рейтинг:
Пока комментариев нет

Настройка VPN(PPTP)-сервера под Linux

Дмитрий Коптев (dimez@nm.ru), "Настройка VPN(PPTP)-сервера под Linux" - 22/04/2003 || Библиотека ЛинуксЦентра

Я (после долгих поисков в Интернете,переписки в форумах и чтения разных документаций и FAQ) всё-таки нашел решение, которое и хочу предложить вашему вниманию.

Во-первых, нам потребуется скачать последний 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)

[Источник: OpenNet.ru]

Дмитрий Коптев (dimez@nm.ru), "Настройка VPN(PPTP)-сервера под Linux" - 22/04/2003 || Библиотека ЛинуксЦентра