В данной пошаговой инструкции описан способ реализации защищенного VPN соединения по протоколу L2TP через IPSec. Перед началом настойки удостоверьтесь, что у вас есть рабочее соединение с интернетом по какому-либо другому протоколу для установки требуемых пакетов. Возможность автономной установки пакетов в данной инструкции не рассматривается.
- Часть I. Настройка IPSec
- Часть II. Настройка L2TP на базе xl2tpd
- Часть III. Настройка L2TP на базе openl2tp
Часть I. Настройка IPSec
Протокол IPSec имеет два режима - транспортный и туннельный. Туннельный режим хорошо работает за NAT, но сложнее, чем транспортный. Сервер для туннельного режима доступен по адресу «svpn-ipsectunnel.mephi.ru» (85.143.112.49), и для транспортного, соответственно, «svpn-ipsectransport.mephi.ru» (85.143.112.48).
- Проверьте наличие поддержки IPSec в вашем ядре: Это можно сделать командой: , например, Если некоторые опции не поддерживаются, вам необходимо переконфигурировать ядро ОС.
- Установите пакеты: При установке racoon выберите ручную настройку.
- Откройте в Интернет-браузере ресурс «svpn.mephi.ru», выберите произвольный логин/пароль и сохраните сертификат. Выберите формат tar. Пусть, пользователь имеет логин omg.
- Далее, необходимо извлечь сертификаты стандарта X.509 из архива и переместить их в директорию /etc/racoon/certs:
- Откройте файл /etc/racoon/racoon.conf в текстовом редакторе и заполните его следующим содержимым:
- Откройте файл /etc/*ipsec-tools.conf в текстовом редакторе и заполните его следующим содержимым (случай туннельного режима): или (случай транспортного режима): Далее в тексте по умолчанию приведены примеры конфигурационных файлов и команд для туннельного режима. Для транспортного режима необходимо заменить адрес 85.143.112.49 на 85.143.112.48.
- Создайте сетевой интерфейс с натированием:
- Запустите демон:
Часть II. Настройка L2TP на базе XL2TPd
L2TP соединение в Debian можно реализовать с использованием пакета xl2tpd, либо openl2tp. Рассмотрим эти случаи по очереди.
- Откройте терминал с правами суперпользователя (root). Если в вашей системе это запрещено из соображений безопасности, вам следует выполнять все действия с использованием утилиты sudo.
- Проверьте наличие поддержки PPP в вашем ядре: Это можно сделать командой: Если некоторые опции не поддерживаются, вам необходимо переконфигурировать ядро ОС.
- Проверьте наличие «ppp» устройства. При отсутствии его необходимо создать:
- Установите пакеты:
- Отправьте письмо с просьбой выдать логин/пароль для L2TP подключения на voip@mephi.ru. Пусть, вы получили логин foo и пароль bar (Не путайте с omg / smb !)
- Откройте в текстовом редакторе файл /etc/xl2tpd/xl2tpd.conf и допишите в конец:
- Создайте файл: со следующим содержимым:
- Откройте в текстовом редакторе файл «/etc/ppp/options», найдите строку «auth» и закомментируйте её.
- Допишите в конец файла «/etc/ppp/chap-secrets»:
- Проверьте, загружен ли у вас модуль ядра ppp-generic комaндой lsmod. Если нет, загрузите его
- Далее, необходимо отключить Network Manager. Для этого, проверьте стандартный runlevel в вашей системе. Например, Т.е. в примере стандартным является runlevel 2. Затем, проверьте runlevel вашей системы в рабочем сотоянии: Т.е. в примере система работает в runlevel 3. Обычно, эти значения совпадают, но, как видно из примера, не всегда.
- Внимание! Следующее действие может привести к неработоспособности сети, в случае, если вы перезагрузка машину до окончательной настройки L2TP (или другого подключения)! Следует отключить задгузку Network Manager как в стандартном, так и в рабочем runlevel. Для этого надо переименовать ссылку на Network Manager в директории /etc/rdS, где S - номер runlevel. Для приведённого выше примера:
- Перестройте запуск программ в соответствии с внесёнными изменениями:
- Остановите Network Manager: Если вам потребуется восстановить подключение к сети по старому протоколу, то можно снова запустить Network Manager командой:
- Создайте файл со следующим содержимым:
- Сделайте скрипт исполняемым и выполнте его
- Запустите демон: После этого таблица маршрутизации должна выглядеть примерно так:
- Проверьте доступность удалённого PtP хоста: Если сервер доступен, то настройка соединения прошла успешно.
Часть III. Настройка L2TP на базе OpenL2TP
- Откройте терминал с правами суперпользователя (root). Если в вашей системе это запрещено из соображений безопасности, вам следует выполнять все действия с использованием утилиты sudo.
- Проверьте наличие поддержки PPP over L2TP в вашем ядре: Это можно сделать командой: , например, Если некоторые опции не поддерживаются, вам необходимо переконфигурировать ядро ОС.
- Проверьте наличие «ppp» устройства. При отсутствии его необходимо создать:
- Проверьте последнюю опубликованную версию программы на странице «http://openl2tp.org/downloads». На момент написания инструкции - это «openl2tp-1.8». Далее в тексте будет упоминаться именно эта версия.
- Проверьте версию вашего дистрибутива:
Если в данном файле версия debian указана в численном виде, то можно использовать следующее соответствие чисел и имени:
- 5 - это "lenny"
- 6 - это "squeeze"
- 7 - это "wheezy"
- Внутри ftp://ftp.openl2tp.org/releases/openl2tp-1.8/ находятся директории с пакетами, соответсвующими конкретным дистрибутивам. Например, директория ftp://ftp.openl2tp.org/releases/openl2tp-1.8/debian-squeeze/ содержит пакеты: Скачайте пакет, соответствующий вашему дистрибутиву и релизу вашего ядра. Релиз ядра можно узнать командай uname -r. Например: Также предлагается отдельно собранная версия openl2tp-1.8 под debian wheezy [amd64], пакеты доступны по ссылкам [1] и [2].
- Установите полученный пакет:
- Отправьте письмо с просьбой выдать логин/пароль для L2TP подключения на voip@mephi.ru. Пусть, вы получили логин foo и пароль bar (Не путайте с omg / smb !)
- Далее, необходимо отключить Network Manager. Для этого, проверьте стандартный runlevel в вашей системе. Например, Т.е. в примере стандартным является runlevel 2. Затем, проверьте runlevel вашей системы в рабочем сотоянии: Т.е. в примере система работает в runlevel 3. Обычно, эти значения совпадают, но, как видно из примера, не всегда.
- Внимание! Следующее действие может привести к неработоспособности сети, в случае, если вы перзагрузита машину до окончательной настройки L2TP (или другого подключения)! Следует отключить задгузку Network Manager как в стандартном, так и в рабочем runlevel. Для этого надо переименовать ссылку на Network Manager в директории /etc/rdS, где S - номер runlevel. Для приведённого выше примера:
- Перестройте запуск программ в соответствии с внесёнными изменениями:
- Остановите Network Manager: Если вам потребуется восстановить подключение к сети по старому протоколу, то можно снова запустить Network Manager командой: Однако, для дальнейшей настройки L2TP его следует снова выключить.
- Создайте файл «/etc/ppp/ip-up.d/mephivpn.sh»:
- Сделайте скрипт исполняемым:
- Запустите демон
- Запустите утилиту настройки OpenL2TP: Проверьте состояние соединения: Если в строке state: указано ESTABLISHED, то конфигурирование пакета прошло успешно. Сохраните файл с настройками: После этого таблица маршрутизации должна выглядеть примерно так:
- Проверьте доступность ptp сервера: Если сервер доступен, то настройка соединения прошла успешно.