Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Alex Morozov                         2:5003/34.1    28 Apr 2005  12:50:03
 To : Alexey Belyaev
 Subject : Hастройка PPTP Linux->Win2k3
 -------------------------------------------------------------------------------- 
 
 
 28 Apr 05 12:48, Alexey Belyaev ===> All:
 
  AB>  Итaк :) Имeю Win2k3 AS c пoднятым нa нём VPN cepвepoм.
  AB>          А тaк жe имeю Linux и жeлaниe пoдключить этoт Linux к VPN.
 From: Sergey Sikorsky <fagot#kalinovka.net>
 Date: Mon, 20 Dec 2004 18:21:07 +0000 (UTC)
 Subject: PPTP туннель с MS-CHAPv2 (аутентификация), MPPE (шифрование) и MPPC
 (сжатие)
 
 Оригинал:
 http://fine.kalinovka.net/modules.php?op=modload&name=News&file=article&sid=3
 
    Шифрованный VPN туннель к провайдеру: MS-CHAPv2, MPPE, MPPC и все, все ,
 все...
 
    Мне кажется, этот вопрос сегодня стоит перед многими пользователями
    сети Интернет и ОС Linux в частности... в отличии от ответа на него :)
    А настройка такого подключения у новичков вызывает некоторые проблемы.
    Да, из Microsoft Windows несколько проще подключится к VPN серверу по
    протоколу PPTP от Microsoft, используя протокол аутентификации
    Microsoft MS-CHAPv2, с использованием метода шифрования Microsoft
    Point-to-Point Encryption и сжатия Microsoft Point-to-Point
    Compression...
 
    Hо к счастью, из под ОС Linux это тоже вполне реализуемо, а на
    сегодняшний день - еще и довольно просто, что и будет
    продемонстрировано ниже.
    MS-CHAPv2 - Это протокол аутентификации, широко используемый в продуктах от
    Microsoft, в связи с чем стал, по-сути, стандартом. Он более защищен
    по сравнению с PAP/CHAP и является усовершенствованной версией
    MS-CHAP, использовавшегося ранее и славящегося своими дырами в плане
    безопасности сейчас :)
 
    Его поддержка есть в pppd последних версий, для более ранних
    существуют патчи. К ядру MS-CHAP не имеет никакого отношения.
    MPPE и MPPC
 
    MPPE - это Microsoft Point-to-Point Encryption, метод шифрования
    данных при передаче по VPN-каналу. Тоже довольно популярен, даже
    используется в некоторых аппаратных шлюзах, роутерах и т.д. Разумеется
    очень рекомендуется к применению, особенно при построении туннеля
    через "дикий" Интернет.
 
    Хотя можно и не использовать, тогда никаких патчей искать не нужно.
    Для использования MPPE нужна поддержка в самом ядре Linux и в pppd. В
    pppd поддержка появилась относительно недавно, в ядре... ну, пока что
    ждем, надеемся и верим :)
 
    А патчи уже есть.
 
    Раньше я использовал патчи ppp-2.4.0-openssl-0.9.6-mppe.patch и
    linux-2.4.16-openssl-0.9.6b-mppe.patch
    (http://www.advancevpn.com/cgi-bin/content?lang=1&cid=LIBRARY&hid=15 ),
    но сейчас это кажется уже не модно :)
 
    С включением в pppd поддержки MPPE, в исходниках была директория
    include/linux/mppe, в которой тоже лежал патч к ядру, но почему-то в
    pppd-2.4.2 ее нет.
 
    Также имеется kernelmod с уже готовым модулем, но он тоже считается
    уже устаревшим и к тому же заточен только под ядра RedHat (поправьте
    меня, если я ошибаюсь).
 
    Самый распространенный набор патчей на сегодня "живет" на
    http://public.planetmirror.com/pub/mppe (ранее -
    http://mirror.binarix.com/ppp-mppe )
 
    Впрочем, я буду использовать немножко другие, авторства Jan Dubiec -
    http://www.polbox.com/h/hs001
 
    Автор добавил немножко "отсебятины", поэтому для работы требуется
    пропатчить не только ядро, но и pppd (да, да и новый тоже).
    Достоинством этих патчей является поддержка MPPC - Microsoft
    Point-to-Point Compression, если кому надо...
 
    Система: Slackware 9.1, linux-2.4.22
 
    Патчи ложатся на исходный код нормально, без напильника, и кажется
    работают :) После применения патча к ядру, в `make menuconfig`
    появляется новая опция - "Microsoft PPP compression/encryption
    (MPPC/MPPE) (NEW)":
 
            Linux Kernel v2.4.22 Configuration
            [*] Network device support
            ARCnet devices --->
            < > Dummy net driver support
            <M>Bonding driver support
            <M>EQL (serial line load balancing) support
            <M>Universal TUN/TAP device driver support
            < > Ethertap network tap (OBSOLETE)
            Ethernet (10 or 100Mbit) --->
            Ethernet (1000 Mbit) --->
            [ ] FDDI driver support
            [ ] HIPPI driver support (EXPERIMENTAL)
            <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) (NEW)
            <M>PPP over Ethernet (EXPERIMENTAL)
            < > SLIP (serial line) support
            Wireless LAN (non-hamradio) --->
            Token Ring devices --->
            [ ] Fibre Channel driver support
            <M>Red Creek Hardware VPN (EXPERIMENTAL)
            <M>Traffic Shaper (EXPERIMENTAL)
            Wan interfaces --->
            PCMCIA network device support --->
    Ее следует включить (CONFIG_PPP_MPPE=y, можно модулем ) и пересобрать
    ядро. Это уж как кому хочется :)
 Установка PPPD
 
    http://samba.org/ppp
    Берем последний pppd, собираем, ставим. Тут и далее вместо `make
    install` будет применятся checkinstall (
    http://asic-linux.com.mx/~izto/checkinstall ), кто не знает что
    это, могут делать по старинке.
 
    Качаем:
 
            user@linux:~$ cd
            user@linux:~$ wget ftp://ftp.samba.org/pub/ppp/ppp-2.4.2.tar.gz
            user@linux:~$ md5sum ./ppp-2.4.2.tar.gz
              362bcf218fba8afbb9afbee7471e5dac ./ppp-2.4.2.tar.gz
    Патч к pppd для поддержки MPPE и MPPC:
 
            user@linux:~$ wget
 http://www.polbox.com/h/hs001/ppp-2.4.2-mppe-mppc-1.0.patch.gz
            user@linux:~$ md5sum ./ppp-2.4.2-mppe-mppc-1.0.patch.gz
               844c9d343d7511902b5380b27eca417e
 ./ppp-2.4.2-mppe-mppc-1.0.patch.gz
    Собираем и ставим:
 
            user@linux:~$ cd /usr/src/
            user@linux:/usr/src$ tar -zxvf ~/ppp-2.4.2.tar.gz
            user@linux:/usr/src$ cd ./ppp-2.4.2/
            user@linux:/usr/src/ppp-2.4.2$ ./configure
            user@linux:/usr/src$ zcat ~/ppp-2.4.2-mppe-mppc-1.0.patch.gz |patch
 -p1
            user@linux:/usr/src/ppp-2.4.2$ make
            user@linux:/usr/src/ppp-2.4.2$ sudo checkinstall
    Если вы (почему-то) хотите использовать бета-версии pppd. У меня бета
    (ppp_2.4.2b1) никогда нормально не собиралась:
 
            user@linux:~$ cd /usr/src
            user@linux:/usr/src$ tar -zxvf ~/ppp_2.4.2b1.tgz
            user@linux:/usr/src$ cd ppp
            user@linux:/usr/src/ppp$ ./configure
            user@linux:/usr/src/ppp$ make
            ...
            creating config.h
            make -C radiusclient
            make[3]: Вход в каталог
 `/usr/src/ppp/pppd/plugins/radius/radiusclient'
            cd . && autoheader
            ./aclocal.m4:49: error: m4_defn: undefined macro:
 _m4_divert_diversion
            acoldnames.m4:86: AM_PROG_INSTALL is expanded from...
            ./aclocal.m4:49: the top level
            autoconf: tracing failed
            make[3]: *** [stamp-h.in] Ошибка 1
            make[3]: Выход из каталог
 `/usr/src/ppp/pppd/plugins/radius/radiusclient'
            make[2]: *** [radiusclient/lib/.libs/libradiusclient.a] Ошибка 2
            make[2]: Выход из каталог `/usr/src/ppp/pppd/plugins/radius'
            make[1]: *** [all] Ошибка 2
            make[1]: Выход из каталог `/usr/src/ppp/pppd/plugins'
            make: *** [all] Ошибка 2
    Лечится даунгрейдом m4 на время установки, или так:
 
            user@linux:/usr/src/ppp$ cd ./pppd/plugins/radius/radiusclient
            user@linux:/usr/src/ppp/pppd/plugins/radius/radiusclient$  rm
 aclocal.m4
            user@linux:/usr/src/ppp/pppd/plugins/radius/radiusclient$ update
            user@linux:/usr/src/ppp/pppd/plugins/radius/radiusclient$ aclocal
            user@linux:/usr/src/ppp/pppd/plugins/radius/radiusclient$ cd
 ../../../..
            user@linux:/usr/src/ppp$ make
            user@linux:/usr/src/ppp$ sudo checkinstall
 Ядро
 
    http://kernel.org/
    Качаем и устанавливаем патч к ядру для поддержки MPPE и MPPC. Hа сайте
    разработчика (патча, не ядра :) есть куча патчей под разные версии
    ядра, поищите, что вам больше подходит.
 
            user@linux:~$ cd
            user@linux:~$ wget
 http://www.polbox.com/h/hs001/linux-2.4.22-mppe-mppc-0.98.patch.gz
            user@linux:~$ md5sum ~/linux-2.4.22-mppe-mppc-0.98.patch.gz
               90d3dffa4bada645ce2fa9605684565e
 /home/fagot/linux-2.4.22-mppe-mppc-0.98.patch.gz
            user@linux:~$ su -
            root@linux:~# cd /usr/src/linux
            root@linux:/usr/src/linux# zcat
 /home/fagot/linux-2.4.22-mppe-mppc-0.98.patch.gz |patch -p1
            root@linux:/usr/src/linux# make menuconfig
    Собираем то, что вышло:
 
            root@linux:/usr/src/linux# make dep
            root@linux:/usr/src/linux# make bzlilo
            root@linux:/usr/src/linux# mv /vmlinuz /System.map /boot
            root@linux:/usr/src/linux# lilo
            root@linux:/usr/src/linux# make modules
            root@linux:/usr/src/linux# make modules_install
    Если все прошло нормально, можно попробовать загрузить модуль. Если
    поддержка MPPE была включена как модуль, систему можно не перегружать.
 
            root@linux:/usr/src/linux# modprobe ppp_mppe_mppc
            root@linux:/usr/src/linux# lsmod|grep ppp_mppe_mppc
            ppp_mppe_mppc 20568 0 (unused)
            ppp_generic 16444 0 [ppp_mppe_mppc]
    Все получилось. Закрепим результат:
 
            # echo "alias ppp-compress-18 ppp_mppe_mppc" >>/etc/modules.conf
 Установка PPTP-клиента
 
    http://pptpclient.sourceforge.net/
    Если в системе уже есть (или планируется pptpd), pptp-клиент
    (linux-pptp) не нужен. Иначе -- в путь-дорожку:
 
    Качаем linux-pptp с http://pptpclient.sourceforge.net/#download
 
            user@linux:~$ cd
            user@linux:~$ md5sum ./pptp-linux-1.4.0.tar.gz
               9e5c07de3e347c7125ed94824cebeaee ./pptp-linux-1.4.0.tar.gz
            user@linux:~$ cd /usr/src/
            user@linux:/usr/src$ tar -zxvf ~/pptp-linux-1.4.0.tar.gz
            user@linux:/usr/src$ cd ./pptp-linux-1.4.0/
            user@linux:/usr/src/poptop-1.1.4$ make
            user@linux:/usr/src/pptp-linux-1.4.0$ sudo checkinstall
    Hастройка сводится к минимуму:
 
            user@linux:/usr/src/pptp-linux-1.4.0$ sudo mkdir /etc/ppp/peers
    Файл /etc/ppp/peers/ISP-NAME:
 
            name LOGIN
            remotename ISP-NAME
            debug
            lock
            deflate 0
            defaultroute
            file /etc/ppp/options.pptp
            pty "/usr/sbin/pptp SERVER --nolaunchpppd"
    Файл /etc/ppp/options.pptp:
 
            lock noauth nobsdcomp nodeflate
    Файл /etc/ppp/pap-secrets ИЛИ /etc/ppp/chap-secrets:
 
            # client server secret IP addresses
            LOGIN ISP-NAME PASSWORD *
    Тут LOGIN - логин на сервере, PASSWORD - соответствующий пароль,
    ISP-NAME - что угодно, чтоб было понятно, куда звоним, SERVER -
    IP-адрес или имя сервера провайдера.
 
    Запуск:
 
            user@linux:~$ sudo /usr/sbin/pppd call ISP-NAME
    Если `ifconfig` покажет интерфейс ppp0, значит все гут, можно
    пингануть Яндекс для уверенности. Если нет - смотреть
    /var/log/messages (внимательно)
    Бонус: для того, чтоб с клиента сделать сервер делаем следующее:
 Установка PPTPD
 
    http://www.poptop.org/
    Качаем pptpd-1.1.4-b4.tar.gz с понравившегося зеркала -
    http://sourceforge.net/project/showfiles.php?group_id=44827
 
            user@linux:~$ cd
            user@linux:~$ md5sum ./pptpd-1.1.4-b4.tar.gz
               58603224998f22542e8d7ecb357bc006 ./pptpd-1.1.4-b4.tar.gz
            user@linux:~$ cd /usr/src/
            user@linux:/usr/src$ tar -zxvf ~/pptpd-1.1.4-b4.tar.gz
            user@linux:/usr/src$ cd ./poptop-1.1.4/
            user@linux:/usr/src/poptop-1.1.4$ ./configure --prefix=/usr/local
                 --sysconfdir=/etc --localstatedir=/var
            user@linux:/usr/src/poptop-1.1.4$ make
            user@linux:/usr/src/ppp-2.4.2$ sudo checkinstall
    Файл /etc/pptpd.conf:
 
            debug
    Файл /etc/ppp/options:
 
            require-mschap-v2
            mppe required
    Остальные опции додумаете сами - man pppd (параметр mppe там тоже есть)
 
    Файл /etc/ppp/chap-secrets:
 
            # client server secret IP addresses
            test * test 10.0.0.1
            test1 * test1 10.0.0.2
            test2 * test2 10.0.0.3
    Запуск:
 
            user@linux:/$ sudo /usr/local/sbin/pptpd
    Проверяем запустился, или нет. Если что-то ему не понравится, pptpd об
    этом прямо на консоль и скажет, кстати.
 
            user@linux:/$ ps -A|grep pptpd
            20425 ? 00:00:00 pptpd
    Вот и все, приехали. Тут и сказочке конец, а кто слушал... тот
    быстренько пошел на машину с Windows XP, создал новое VPN-соединение,
    проверил в параметрах, стоит ли галка использовать шифрование,
    используется ли MS-CHAPv2 и соединился с свеже-запущенным сервером.
    Если все прошло хорошо - откройте окно состояния соединения, на
    вкладке "Сведения" должно быть:
            Проверка подлинности: MS CHAP V2
            Шифрование: MPPE 128
            Сжатие: MPPC
            IP-адрес клиента: тот, что вы указали в chap-secrets
 
    Если же ничего не вышло - смотрим /var/log/messages, /var/log/debug,
    запоминаем с какой ошибкой вылетает клиент - и вперед на Google.com...
    (c) Sergey Sikorsky AKA fagot 24.06.2004, час ночи
    mail-to:fagot#kalinovka.net
 
    PS. Сразу предупреждаю, на письма вида "А вот я все сделал как
    написано, но ничего не работает..." отвечать HЕ БУДУ. Есть поисковики,
    есть форум - http://www.linux.org.ru/profile/fagot/view-group.jsp?group=1340,
    там и ищите и обрящите
 
    До встречи !
                   Alex                       Registered Linux user #344184 ---
 ---
  * Origin: Sweet Home (2:5003/34.1)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Hастройка PPTP Linux->Win2k3   Alexey Belyaev   28 Apr 2005 12:48:02 
 Hастройка PPTP Linux->Win2k3   Max Tulyev   28 Apr 2005 11:48:19 
 Hастройка PPTP Linux->Win2k3   Alex Morozov   28 Apr 2005 12:50:03 
 Re: Hастройка PPTP Linux->Win2k3   Yury Lyakh   28 Apr 2005 12:33:45 
Архивное /ru.linux/27144270a3d6.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional