Настройка VPN-соединения

Материал из Gentoo Linux Wiki

Перейти к: навигация, поиск

Содержание

[править] VPN HOWTO

[править] Введение

Для справки. VPN - (с англ. Virtual Private Network) Виртуальная Частная Сеть. Один из методов соединения компьютера или нескольких с сервером, предоставляющим доступ в интернет или другую сеть. Само соединение с помощью VPN может реализовываться с использованием различных средств сетевой безопасности (например, IPSec) и/или использования других протоколов (таких как IPX) и как правило с использованием средств сжатия данных (например, MS(ТМ) MPPE-MPPC для совместимости с клиентами использующих ОС Windows(TM)).

На практике чаще всего встречается ситуация, когда пользователь имеет доступ в локальную сеть, но для выхода в интернет ему необходимо воспользоваться VPN-соединением, использующим PPTP-протокол. Следовательно для установления данного соединения нам необходимо установить на нашу систему пакеты ppp и pptpclient:

# USE="mppe-mppc dhcp" emerge ppp pptpclient

Внимание mppe-mppc нужен только для старых ядер 2.6.15< в более новых это шифрование уже входит в ядро. Так же прежде чем устанавливать ppp надо проверить, а в друг он уже стоит?

Самим подключением управляет демон pppd, настроить который можно с помощью как минимум двух конфигурационных файлов.

[править] Конфигурация основных файлов

Вся настройка соединения заключается в редактировании следующих файлов /etc/ppp/chap-secrets, /etc/ppp/options.pptp, /etc/ppp/peers/MY_PEER. О каждом из них подробно будет описано ниже. Также в пакет программы pptpclient входит утилита pptp-command, с помощью которой также можно настроить основной файл /etc/ppp/peers/MY_PEER. О том как ею пользоваться вы можете прочитать далее.

[править] /etc/ppp/chap-secrets

В данном файле нам необходимо указать логин, пароль, а иногда и IP-адрес сервера, к которому мы подключаемся.Формат записи данных в этот файл следующий:

Файл: /etc/ppp/chap-secrets

#Client Server Password IP addresses
Логин №1 * пароль №1 IP-сервера №1
Логин №2 * пароль №2 IP-сервера №2

Если мы имеет только одну пару логин/пароль, то в полях Server и IP addresses прописываем "*" (без кавычек естественно). В противном случае достаточно прописать IP-адреса серверов с соответствующей им парой логин/пароль.

[править] /etc/ppp/options.pptp

Данный файл является необязательным, когда подключение ведется без использования утилиты pptp-command. И поэтому все, что написано в этом файле, может быть удалено из него или сам этот файл вообще может игнорироваться демоном pppd. Итак, по умолчанию в нем прописаны следующие строки:

Файл /etc/ppp/options.pptp

lock

  • Обычно этот пункт необходим

noauth

  • Обычно этот пункт необходим

nobsdcomp

  • Выключаем протокол передачи данных (сжатия) bsdcomp, можно и включить его (убрать частицу "no")

nodeflate

  • Еще один протокол передачи данных (сжатия), можно и включить его (убрать частицу "no")

require-mppe

  • Включаем требование использования mppe-mppc (начиная с версии ядра 2.6.13 и выше, данную опцию обычно можно закомментировать в случае, когда не требуется поддержка mppe-mppc)

mtu 1000

  • Устанавливаем значение MTU (может лежать в пределах от 128 до 16384)

mru 1000

  • Устанавливаем значение MRU (может лежать в пределах от 128 до 16384)

lcp-echo-failure 10

  • Эта опция передает pppd сигнал на отключение, если после 10 LCP эхо-запросов не было ни одного верного LCP эхо-ответа.

lcp-echo-interval 10

  • Эта опция заставляет pppd посылать фреймы LCP эхо-запросов каждые 10 секунд.


Дополнительные опции:

nomppe

  • Отключаем MPPE (Microsoft Point to Point Encryption)

nomppc

  • Отключаем MPPC (Microsoft Point to Point Compression)

persist

  • После разрыва соединения попытаться заново подключиться.

require-chap или refuse-chap

  • Использовать или не использовать аутентификацию с помощью CHAP.

require-mschap или refuse-mschap

  • Использовать или не использовать аутентификацию с помощью MS-CHAP.

require-mschap-v2 или refuse-mschap-v2

  • Использовать или не использовать аутентификацию с помощью MS-CHAPv2. Обычно необходимо включить данную опцию, если сервер работает под ОС Windows(TM).

require-pap или refuse-pap

  • Использовать или не использовать аутентификацию с помощью PAP (Password Authentication Protocol). Уточните у вашего провайдера (администратора сети), какой метод аутентификации используется на вашем сервере (Обычно CHAP(MS-CHAPv2), но иногда может быть и PAP).

xonxoff

  • Используем програмный контроль (XON/XOFF) приемо-передачи данных. Встречается крайне редко, когда необходимо активировать данную функцию.

cdtrcts

  • Используем нестандартный аппаратный контроль (DTR/CTS) приемо-передачи данных. Встречается крайне редко, когда необходимо активировать данную функцию.

passive

  • Данная опция включает "пассивный" режим слежения за соединением, иными словами, если в течении длительного времени не приходит корректный LCP-ответ от сервера, то все равно ожидаем, когда он придет. Если данная опция не задана, произойдет разъединение после указанных значений в опциях lcp-echo-failure N и lcp-echo-interval N.

crtscts или noctrcts

  • Включаем или выключаем режим приема-передачи данных RTS/CTS.

[править] /etc/ppp/peers/MY_PEER

Это основной файл для pppd. В него можно вписать все строки, которые прописаны в файле /etc/ppp/options.pptp. Однако не стоит этого делать по той причине, что возможно вам будет удобнее в дальнейшем использовать утилиту pptp-command. Само название файла MY_PEER можете поменять на любое другое, желательно написанное буквами латинского алфавита. Итак, приступим.

Файл /etc/ppp/peers/MY_PEER

remotename <имя>

  • Укажите <имя> удалённой системы для прохождения процедуры аутентификации. Соотносится с параметром "server" в файле /etc/ppp/chap-secrets.

linkname <имя>

  • Укажите "логическое" <имя> соединения.

ipparam MY_PEER

  • Это дополнительный параметр, используемый в скриптах ip-up, ip-pre-up и ip-down. Если этот он указан, то его место становится шестым в списке передаваемых параметров этим скриптам.

pty "/usr/sbin/pptp 192.168.0.1 --nolaunchpppd"

  • Строка, которая передается демону pppd. Вместо 192.168.0.1 укажите IP-адрес своего сервера.

name login

  • Просто логин. Соотносится с параметром "client" в файле /etc/ppp/chap-secrets.

updetach

  • При использовании этого параметра pppd "отсоединит" вывод от текущего терминала как только ppp-соединение успешно установится.

logfd 1

  • Выдает log-сообщения на экран (опция 1) иначе на последовательный порт

idle 3600

  • Время ожидания (в секундах), после которого произойдет рассоединение, если за этот промежуток времени не было ни одного запроса/ответа на/от сервера.

debug

  • Тут вроде все понятно.

dump

  • Выводит на экран все опции, которые передаются демону pppd, а также указывается из каких файлов эти опции даны.

defaultroute

  • Указывает pppd, что данное соединение должно использоватся по умолчанию в таблице роутинга ядра. Работает в том случае, если изначально в таблице роутинга ядра не задан роут для destination "default". В противном случае выводится строка о невозможности изменения имеющегося роутинга для "default".

file /etc/ppp/options.pptp

  • Указываем путь к дополнительному файлу,в котором указаны дополнителные опции для демона pppd.

[править] Запуск и остановка соединения

Запуск производится следующим образом (все делать под пользователем root)

 $ su
 # pon MY_PEER

Далее обычно необходимо указать ядру куда направлять запросы:

 # route add default dev ppp0

Выключение делаем так

 # poff

Иногда соединение может таким образом не отключится, для этого используем опцию "-a"

 # poff -a

[править] Использование pptp-command

Эта мощная утилита сделана для облегчения редактирования файла /etc/ppp/peers/MY_PEER. Обратите внимание, что созданный вами файл /etc/ppp/peers/MY_PEER программа pptp-command не распознает !!! Это программа создает файл в своем формате, однако пункты описываемые в нем полностью индеитичны тем, которые прописываются в файле MY_PEER. Итак начнем,

 # pptp-command

Далее выбираем пункт "setup"(3), (т.е набираем цифру 3 и жмем на клавишу Enter(Return)). Далее, если вы не редактировали файл /etc/ppp/chap-secrets, то сейчас у вас есть такая возможность (Пункт в программе "Manage CHAP secrets"(1)). Внимание. На первый вопрос вы должны ввести логин, на второй(отмечен как [PPTP]) -- соотносится с пунктом "Server" в файле /etc/ppp/chap-secrets. Третий вопрос -- пароль.

Теперь добавим соединение, т.е "Add a NEW PPTP Tunnel" (4) -> "Other" (1).

  • Tunnel Name -- название файла в папке /etc/ppp/peers/
  • Server IP -- IP-адрес сервера, к которому подключаемся
  • route -- вводим "del default", потом просто Enter(Return). Далее "add default dev ppp0". Либо оставляем пустым, в случае использовании опции defaultroute (см. выше). Возможно несколько способов правильного задания данной опции.
  • Local Name -- логин, он должен соотносится с логином в файле /etc/ppp/chap-secrets.
  • Remote Name [PPTP] -- поле Server" в файле /etc/ppp/chap-secrets.

Примечание. Последние два пункта сделаны для того случая, когда пользователь подключается дома и на работе, например, с помощью одного логина, но дома и на работе IP-адреса различны и/или пароли различаются.


Внимание! Если Server IP к которому мы коннектимся и IP который будет назначен интерфейсу ppp0 из разных подсетей, то нужно будет еще прописать дополнительный роутинг чтобы пакеты к Server IP шли через eth0 а не ppp0. Например, IP на eth0 у нас 10.10.10.5, default gateway 10.10.10.1, VPN Server IP 10.10.10.250, а IP ppp0 интерфейса получился 123.231.213.121, тогда прописываем такой route:

 # route add 10.10.10.250 gw 10.10.10.1


Далее с помощью данной утилиты можно подправить файл /etc/resolv.conf ("Setup"(3) -> "Configure resolv.conf" (6)).

Также можно включить использование какого-нибудь соединения по умолчанию ("Setup"(3) -> "Select a default tunnel" (7)). Тогда запускать подключение совсем просто:

 # pptp-command start

Отключение можно произвести как через опции программы ("Stop" (2)) или так:

 # pptp-command stop

[править] Источники

Основной источник MAN по pppd.

 $ man pppd

Дополнительно:

 $ man resolv.conf


Пожалуйста приведите эту статью в соответствиe с wiki разметкой, и затем удалите {{Wikify}} из текста статьи


Личные инструменты