Keywords: pptp vpn linux mandrake
From: Алексей Козлов (Scorpio) 
Subject: Настройка PPTP клиента в Linux Mandrake-9.2 (отредактировано под местные условия)

Оригинал: http://linuxshop.ru/unix4all/?id=432


   С появлением домашних сетей растет и уровень админов, которые следят
   за их работоспособностью. Вот и о безопасности сетей можно говорить не
   по наслышке. Время идет... И все больше стала встречаться ситуция,
   когда пользователи стали выходить в интернет через VPN. И как быть,
   когда уже вот сколько времени стоит любимая система, а побродить по
   просторам "глобальной паутины" по старинке уже не получается? Обложив
   себя словарями, закупив пиво и вспомнив барона Мюнхаузена, сел я за
   свою "консоль" и...

   Эта статья преследует цель кратко описать шаги по настройке
   PPTP-клиента на Linux Mandrake-9.2. Все тестировалось и настраивалось
   на Linux Mandrake-9.2 (Download Edition) и смею вас уверить, что у
   меня все заработало, иначе никто не увидел бы этой самой статьи. В
   других дистрибутивах похоже все, но есть свои тонкости.

   Что необходимо иметь:
     * установочные диски дистрибутива Linux Mandrake-9.2 (Download Edition)
     * рабочую систему на вашем компьютере (как это сделать смотрите на CD#1)
     * в дистрибутив Linux Mandrake-9.2 уже входит пакет PPP, установите его
     * с CD#2 дистрибутива Linux Mandrake-9.2 установите пакет
       pptp-linux-1.3.x.
     * адреса DNS-серверов (217.107.11.33 217.107.11.35)
     * IP адрес PPTP сервера (10.10.10.10)
     * PPTP логин (username) и пароль
     * свой IP адрес (10.12.13.55, к примеру)
     * адрес маршрутизатора вне сервера PPTP ()

   Заметка: надеюсь читатель знаком, как настроить сеть под линуксом и
   как устанавливать программы. Иначе, обращайтесь к соответствующему
   руководству.


настройка PPTP коммандным скриптом
----------------------------------

   PPTP-скрипт позволяет сделать следующее:
     * настроить необходимые файлы для работы в сети
     * выбрать VPN туннель
     * соедениться с VPN туннелем
     * отсоединиться от VPN туннеля
     * восстановить ваши файлы сетевых настроек (например, resolv.conf) в
       начальное состояние
     * выбрать VPN туннель по умолчанию
     * запускать PPTP комманды в консоли

   Далее по пунктам будет расписаны необходимые действия. 

   1. Запустите pptp скрипт (из под root):
    
        [yoursys]# /etc/init.d/pptp

   После выполнения отобразится лист меню. Выбираете пункт 3:

      1.) start
      2.) stop
      3.) setup
      4.) quit
      What task would you like to do?: 3

   2. Далее выбираем пункт 2:

      1.) List CHAP secrets
      2.) Add a New CHAP secret
      3.) Delete a CHAP secret
      4.) List PPTP Tunnels
      5.) Add a NEW PPTP Tunnel
      6.) Delete a PPTP Tunnel
      7.) Configure resolv.conf
      8.) Select a default tunnel
      9.) Quit
      ?: 2

   3. Далее выводится информация о вводе вашего имени (только PPTP логин):

      Add a NEW CHAP secret.
      NOTE: Any backslashes () must be doubled (\).
      Local Name:
      This is the 'local' identifier for CHAP authentication.
      NOTE: If the server is a Windows NT machine, the local name
      should be your Windows NT username including domain.
      For example:
       domain\username

      Local Name: username

   4. Далее оставляем как есть:

    Remote Name:

      This is the 'remote' identifier for CHAP authentication.
      In most cases, this can be left as the default. If must be
      set if you have multiple CHAP secrets with the same local name
      and different passwords. Just press ENTER to keep the default.
       Remote Name [PPTP]:

   5. Просто пароль.

    Password:
      This is the password or CHAP secret for the account specified. The
      password will not be echoed.
       Password: your_password
      Adding secret username PPTP *****

   6. Далее отображается снова меню для выбора. Выбираем пункт 5:

      1.) List CHAP secrets
      2.) Add a New CHAP secret
      3.) Delete a CHAP secret
      4.) List PPTP Tunnels
      5.) Add a NEW PPTP Tunnel
      6.) Delete a PPTP Tunnel
      7.) Configure resolv.conf
      8.) Select a default tunnel
      9.) Quit
      ?: 5

   7. Далее отображается либо список уже существующих туннелей и ввода
   нового, либо только ожидание выбора ввода нового туннеля.

      Add a NEW PPTP Tunnel.
      1.) Other Which configuration would you like to use?: 1
      Tunnel Name: my_tunnel
      Server IP: 10.10.10.10
      What route(s) would you like to add when the tunnel comes up?
      This is usually a route to your internal network behind the PPTP server.
      You can use TUNNEL_DEV and DEF_GW as in /etc/pptp.d/ config file
      TUNNEL_DEV is replaced by the device of the tunnel interface.
      DEF_GW is replaced by the existing default gateway.
      The syntax to use is the same as the route(8) command.
      Enter a blank line to stop.
      route: add -host 10.10.10.10 gw DEF_GW
      route: add -net 10.0.0.0/8 TUNNEL_DEV
      route:

   Снова возвращаемся в главное меню и выбираем пункт 7 для правки resolv.conf:

      Local Name and Remote Name should match a configured CHAP secret.
      Local Name is probably your NT domainusername.
      NOTE: Any backslashes () must be doubled (\).
      Local Name: username
      Remote Name [PPTP]:
      Adding my_tunnel - 10.10.10.10 - username - PPTP
      Added tunnel my_tunnel
      1.) List CHAP secrets
      2.) Add a New CHAP secret
      3.) Delete a CHAP secret
      4.) List PPTP Tunnels
      5.) Add a NEW PPTP Tunnel
      6.) Delete a PPTP Tunnel
      7.) Configure resolv.conf
      8.) Select a default tunnel
      9.) Quit
      ?: 7


   9. Скрипт спрашивает о файле resolv.conf; оставим все по умолчанию.

   Если имеется уже настроенный файл, который используется, то не
   выбираем "Other" (тогда отобразится существующий файл) и переходим к
   шагу 10.

   Если по каким-то причинам вы не хотите использовать существующие
   настройки, тогда пункт "Other", который запросит дополнительную
   информацию (не имеет смысла использовать мои настройки, у вас все
   должно бытьь по своему, конкретно ваш частный случай!!!):

    Use a PPTP-specific resolv.conf during tunnel connections? [Y/n]:
      1.) Other
      Which configuration do you want to use?: 1
      What domain names do you want to search for partially
      specified names?
      Enter all of them on one line, seperated by spaces.
      Domain Names: ul.ru
      Enter the IP addresses of your nameservers
      Enter a blank IP address to stop.
      Nameserver IP Address: 217.107.11.33
      Nameserver IP Address: 217.107.11.35
      Nameserver IP Address:

   10. Скрипт отобразит информацию из resolv.conf и снова отобразит лист
   меню. Выберите туннель по умолчанию в пункте 8, а затем выберите пункт
   9 для выхода из процедуры настройки:

      Copying /etc/resolv.conf to /etc/resolv.conf.real...
      Creating link from /etc/resolv.conf.real to /etc/resolv.conf
      1.) List CHAP secrets
      2.) Add a New CHAP secret
      3.) Delete a CHAP secret
      4.) List PPTP Tunnels
      5.) Add a NEW PPTP Tunnel
      6.) Delete a PPTP Tunnel
      7.) Configure resolv.conf
      8.) Select a default tunnel
      9.) Quit
      ?: 8

      1.) my_tunnel
      2.) cancel
      Which tunnel do you want to be the default?: 1

      1.) List CHAP secrets
      2.) Add a New CHAP secret
      3.) Delete a CHAP secret
      4.) List PPTP Tunnels
      5.) Add a NEW PPTP Tunnel
      6.) Delete a PPTP Tunnel
      7.) Configure resolv.conf
      8.) Select a default tunnel
      9.) Quit
      ?: 9

   11. Вот и снова вернулись в родную до боли консоль


запуск PPTP при помощи pptp-скрипта
-----------------------------------

   1. Запустите pptp скрипт (из под root):
     [yoursys]# /etc/init.d/pptp

   После выполнения отобразится лист меню. Выбираете пункт 1:
      1.) start
      2.) stop
      3.) setup
      4.) quit
      What task would you like to do?: 1

   Затем из списка меню выбираем наш туннель и жмем гашетку...


остановка PPTP коммандой pptp
-----------------------------

    [yoursys]# /etc/init.d/pptp stop

куда обращаться, если что...

   Ко мне... смотри ниже...

небольшое дополнение

   Если вдруг не работает, а в логах нечто похожее:
    log[pptp_dispatch_ctrl_packet:pptp_ctrl.c:580]: Client connection established.
    log[pptp_dispatch_ctrl_packet:pptp_ctrl.c:708]: Outgoing call established (call ID 0, peer's call ID 0).
    log[decaps_gre:pptp_gre.c:215]: short read (4294967295): Protocol not available
    log[callmgr_main:pptp_callmgr.c:245]: Closing connection
    log[pptp_conn_close:pptp_ctrl.c:307]: Closing PPTP connection
    log[call_callback:pptp_callmgr.c:88]: Closing connection

   Выявляется непрохождением ICMP пакетов. Причина как правило
   заключается в некорректной работе GRE-sockets. Это чаще всего
   встречается, когда VPN сеть находится в том же адресном диапазоне, что
   и локальная. Личится загрузкой GRE-module

    # modprobe ip_gre

   Для пущей удобности в настройке клиента можно достать и установить
   pptp-php-gtk GUI клиента (http://quozl.netrek.org/pptp/php-gtk/)


   Ну вот и все, пожалуй...