Руководство

Быстрый запуск

Этот раздел предназначен для того, чтобы обеспечить быструю сводку общих настроек OpenL2TP, чтобы помочь начать новым пользователям.

Возможности OpenL2TP

OpenL2TP - это реализация, под двойной лицензией, с открытым исходным кодом, L2TP для Linux. OpenL2TP идеален для использования в любой из следующих окружений среды:

OpenL2TP — это полная реализация RFC2661 — Протокола Туннелирования Второго Уровня, Версия 2 (Layer Two Tunneling Protocol, Version 2 (L2TP)). Главные особенности упомянуты ниже. Нетерпеливые читатели могут просто пропустить этот раздел.

Драйвер 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-адресов, должен быть установлен. Есть три альтернативы:

  1. Фиксированные IP-адреса, предварительно настроенные для каждого клиента, который подключится к серверу.
  2. Динамические IP-адреса, полученные из пула IP-адресов.
  3. Динамические 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.

RADIUS