Быстрый запуск
Этот раздел предназначен для того, чтобы обеспечить быструю сводку общих настроек OpenL2TP, чтобы помочь начать новым пользователям.
Возможности OpenL2TP
OpenL2TP - это реализация, под двойной лицензией, с открытым исходным кодом, L2TP для Linux. OpenL2TP идеален для использования в любой из следующих окружений среды:
- как служба VPN — L2TP, для развёртывания на серверах на рабочем месте, предоставляя доступ по VPN типа L2TP для работы из дома.
- как компонент в коммерческих системах с встроенным Linux, таких как домашние шлюзы или даже большие телекоммуникационные свичи.
- как клиент L2TP для пользователей с системой Desktop.
OpenL2TP — это полная реализация RFC2661 — Протокола Туннелирования Второго Уровня, Версия 2 (Layer Two Tunneling Protocol, Version 2 (L2TP)). Главные особенности упомянуты ниже. Нетерпеливые читатели могут просто пропустить этот раздел.
- Работа с LAC и LNS simultanesously поддерживается. Один сервер может быть LAC для некоторых туннелей и LNS для других.
- Поддерживаются входящие и исходящие тоннели и сеансы.
- Одновременно поддерживается множество тоннелей и множество сеансов в этих тоннелях. Максимальное количество тоннелей и сеансов ограничено только доступной системной памятью (максимум 65535 тоннелей и 65535 сеансов на тоннель) или системой, с указанными пользователем в настройке пределами.
- Поддерживаются все четыре типа сеанса, то есть Входящие/Исходящие вызовы LAC/LNS.
- Поддерживается множество тоннелей между одними и теми же двумя хостами L2TP.
- Тоннель, сеанс и параметры PPP могут быть заданы в именованных профилях, упрощая интерфейс управления и позволяя определённые значения параметров использовать для определённых входящих тоннелей (создаваемых удалённым запросом по сети).
- В состоянии проанализировать и записать все стандартные AVP L2TP, определённые в RFC2661. Анализ проверяет, что все необходимые AVP присутствуют в каждом сообщении, и генерирует сообщение об ошибке в журнала сообщений, если замечены неожиданные AVP.
- Управляющие сообщения обрабатываются демоном в пространстве пользователя, openl2tpd. Все пакеты данных L2TP обрабатываются ядром.
- Запись сообщений трассировки, используя syslog, по вашему выбору можно включать/отключать в системе, туннеле и сеансовых уровнях. Таким образом, для отладки проблем на занятой системе, трассировка может быть безопасно включена только для указанных объектов, без флуда системы сообщениями от других неинтересных объектов.
- Интерфейс управления использует RPC Sun, создавая OpenL2TP, особенно подходящей программой для встроенных сред шасси, таких как телекоммуникационные системы.
- Связан с интуитивным управлением приложения командной строки, которое использует завершение синтаксиса TAB, историю команд и контекстно-зависимую справку.
- Использует архитектуру плагинов для того, чтобы позволить третьей стороне легко расширять или интегрировать OpenL2TP с другим программным обеспечением, например, PPP, RADIUS, B-RAS, и т.д., и т.д. Включает плагин для взаимодействия с pppd, другие реализации PPP могут использоваться при желании через плагин.
- Поддерживает автоматическое присвоение IP-адреса из пулов локальных адресов, если другие механизмы распределения адресов (например, RADIUS) не настроены. Используйте ippoold.
- Локально создаваемые туннели могут по выбору называться постоянными, заставить их попытаться пересоздаться должен тоннельный сбой по некоторым причинам. Любые локально создаваемые сеансы в постоянных туннелях также автоматически восстановливаются если/когда тоннель непосредственно переподключился. Это полезно, если openl2tpd используется в качестве клиента L2TP.
- Взаимодействует с Cisco IOS 12.2, Microsoft, W2K/XP, Apple OSX, Draytek и другими.
Драйвер PPP-over-L2TP ядра Linux, pppol2tp, был разработан проектом OpenL2TP. Он был интегрирован в официальное ядро версии 2.6.23. Некоторые дистрибутивы Linux теперь поставляются с драйвером. Для более ранних ядер должен быть установлен пакет pppol2tp-kmod. Бинарники, в виде пакетов RPM, доступны для некоторых ядер, или драйвер может быть собран из исходника. Имейте в виду, что OpenL2TP версии 1.0 совместим только с pppol2tp-kmod-0.17.
Клиент L2TP
После запуска, сервер OpenL2TP, openl2tpd, считывает настройки из файла /etc/openl2tpd.conf по-умолчанию, или из файла, указанного дополнительным параметром-ключём -c из командной строки. Следующий файл настроек, в качестве примера, создаст тоннель L2TP для хоста 42.1.1.1, вход под пользователем bert, с паролем ernie. Заметьте, что используется две абсолютно различных команды для создания VPN — сначала создаётся L2TP-тоннель, и затем в этом L2TP-тоннеле создаётся сеанс.
/etc/openl2tpd.conf:
ppp profile modify profile_name=default \ auth_eap=no auth_mschapv1=no auth_mschapv2=no tunnel create tunnel_name=katalix dest_ipaddr=42.1.1.1 \ persist=yes session create tunnel_name=katalix \ session_name=katalix \ user_name=bert \ user_password=ernie
Использование persist=yes, в упомянутой выше конфигурации, сообщает программе OpenL2TP повторять установку тоннеля с отключённым сервером. OpenL2TP периодически будет отправлять запросы на установку тоннеля до тех пор, пока тоннель не будет создан, и попытается пересоздать тоннель в случае, если позже отключится тоннель.
Так как OpenL2TP по-умолчанию работает и как клиент L2TP и как сервер L2TP, то некоторым пользователям VPN может пригодится отключение функциональности возможностей сервера. Для того, чтобы это сделать, включите следующую команду в упомянутый выше файл конфигурации:
system modify deny_remote_tunnel_creates=yes
Утилита командной строки l2tpconfig может использоваться для того, чтобы в интерактивном режиме просмотреть или изменить настройки и состояние OpenL2TP. Утилита интуитивно понятна; для того, чтобы её использовать - у неё имеется вкладка для команды редактирования и команды завершения. Далее показан пример сессии — как отобразить информацию о состоянии L2TP-тоннеля, созданного выше.
[bert@ernie.net]# l2tpconfig l2tp> system show status L2TP service status:- tunnels: 1, sessions: 1 l2tp> user list TunId SesId User Create Time 17767 9158 bert Mon Feb 4 13:45:10 2008 l2tp> session show tunnel_id=17767 session_id=9158 Session 9158 on tunnel 17767:- type: LAC Incoming Call, state: ESTABLISHED created at: Feb 4 16:22:18 2008 created by admin: YES, peer session id: 17432 ppp user name: bert ppp interface name: ppp0 data sequencing required: OFF use data sequence numbers: OFF trace flags: NONE framing types: SYNC ASYNC bearer types: DIGITAL ANALOG connect speed: 1000000 use ppp proxy: NO Peer configuration data:- data sequencing required: OFF framing types: SYNC bearer types: ANALOG connect speed: 54000000 data rx packets: 593, rx bytes: 608676, rx errors: 1 data tx packets: 135, tx bytes: 40145, tx errors: 0
If a secure VPN is required, the L2TP tunnel can be secured by IPSec. This configuration is supported by commercial environments such as Windows XP. See the IPSec section below for information on creating L2TP/IPSec VPNs.
Если требуется безопасное VPN-соединение, то в таком случае L2TP-тоннель может быть защищён при помощи IPSec. Эта настройка поддерживается коммерческими окружающими средами, такими как Windows XP. Для информации о создании VPN-соединений при помощи L2TP/IPSec - смотрите раздел IPSec ниже.
Сервер L2TP
Читатели, которые не ставят OpenL2TP как сервер для других удалённых клиентов L2TP, могут спокойно пропустить этот раздел.
Большинство усилий, требующихся для того, чтобы установить OpenL2TP как сервер L2TP, требуется приложить к установке пользовательской авторизации и к присвоению IP-адреса. Когда сервер RADIUS используется и для пользовательской аутентификации и для присвоения IP-адреса, то требуемая настройка OpenL2TP сводится к минимуму. Параметры, доступные для пользовательской аутентификации и присвоения IP-адреса, описаны ниже.
Присвоение IP-адреса
Почти все клиенты L2TP ожидают того факта, что IP-адреса PPP-сеанса будут присвоены сервером. Поэтому, при настройке сервера OpenL2TP, механизм для присвоения IP-адресов, должен быть установлен. Есть три альтернативы:
- Фиксированные IP-адреса, предварительно настроенные для каждого клиента, который подключится к серверу.
- Динамические IP-адреса, полученные из пула IP-адресов.
- Динамические IP-адреса, полученные через поиск в RADIUS.
Для начального тестирования сервера, или если IP-адреса клиентов, которые будут подключаться, известны, фиксированные адреса могут быть настроены в OpenL2TP на клиент L2TP. Для того, чтобы это сделать, через клиент L2TP (peer) создаётся профиль соединения, который вызывает уникальный ppp-профиль, который в свою очередь поочерёдно задаёт IP-адреса, которые будут использоваться. OpenL2TP наследует параметры настройки от предварительно настроенных профилей. Если вам требуется задать определённые параметры, которые будут установлены для определённых соединений, то укажите настройки в туннеле, сессии или ppp-профилях, и ссылайтесь на эти профили в профилях соединений.
Когда получен запрос установки L2TP-тоннеля, OpenL2TP попытается найти профиль соединения, который соответствует IP-адресу отправителя (L2TP-клиента) (или L2TP имени, если предоставляется). Если было ничего не найдено, то тогда используется профиль соединения по-умолчанию. Каждый профиль соединения указывает на уникальный ppp-профиль. Это показано в следующем примере, где двум peer — 80.70.60.50 и 42.1.2.3 присвоены IP-адреса — 10.5.1.2 и 10.5.1.4 соответственно, когда они подсоединяются.
/etc/openl2tpd.conf:
ppp profile create profile_name=peer1 \ local_ipaddr=10.5.1.1 \ remote_ipaddr=10.5.1.2 ppp profile create profile_name=peer2 \ local_ipaddr=10.5.1.3 \ remote_ipaddr=10.5.1.4 peer profile create profile_name=peer1 \ peer_ipaddr=80.70.60.50 \ ppp_profile_name=peer1 peer profile create profile_name=peer2 \ peer_ipaddr=42.1.2.3 \ ppp_profile_name=peer2
Но использовать отдельный ppp-профиль утомляет, когда имеется много клиентов. Также невозможно использовать отдельные ppp-профили, когда IP-адрес (или имя L2TP-хоста) неизвестен. Для того, чтобы разрешить эту ситуацию, OpenL2TP поддерживает ippoold, который является отдельным сервером, поддерживающим пулы IP-адресов. Сервер ippool доступен для скачивания со странички загрузки проекта OpenL2TP.
Настройка ippoold проста. Пулы IP-адресов могут быть созданы в интерактивном режиме, используя утилиту ippoolconfig. Или в файле настроек может быть указано создание пулов IP-адресов. Следующий пример показывает простую настройку с одним единственным пулом IP-адресов, содержащим 100 IP-адресов.
/etc/ippool.conf:
pool create pool_name=default first_addr=10.5.1.1 num_addrs=100
Настройка OpenL2TP проста в том случае, когда все PPP-клиенты должны использовать один и тот же пул IP-адресов. Следующая настройка - это всё, что необходимо!
/etc/openl2tpd.conf:
ppp profile modify profile_name=default \ ip_pool_name=default
Упомянутая выше настройка позволит любому L2TP-клиенту соединяться, а также автоматически присваивать IP-адреса, в т.ч. и освобождённые от предыдущих L2TP-клиентов, поскольку L2TP-клиенты приходят и уходят. PPP-аутентификация для каждого разрешённого пользователя должна быть установлена как задокументировано в pppd, например, /etc/ppp/chap-secrets.