Настройка 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 |
Если мы имеет только одну пару логин/пароль, то в полях 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}} из текста статьи
