Настройка openl2tpd в Linux

Материал из campus.mephi.ru

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

Данная статья описывает установку и настройку openl2tpd, рекомендуется также обращаться к официальной документации и сайту разработчиков.

Содержание

Установка

  1. Необходимо ядро не менее 2.6.23. В ядре должна быть включена поддержка ppp-over-l2tp (CONFIG_PPPOL2TP=y|m).
  2. Установите пакет openl2tp или соберите из исходников. Настоятельно рекомендуется использовать последнию версию (на момент написания статьи 1.7).
    1. Сборки для Debian, FC9 а также последний тарбол доступны на sf.net
    2. Пользователи Gentoo могут взять готовый ebuild тут, не забудьте все вспомогательные файлы!

Настройка

Все необходимые настройки содержатся в файле /etc/openl2tpd.conf, а также могут изменяться во время работы программы с помощью RPC посредством утилиты l2tpconfig. Данная утилита предоставляет мощный CLI-интерфейс для полного управления демоном, настоятельно рекомендуется изучить man l2tpconfig для понимания описанных ниже опций.

Рабочий конфиг

Пример работающего конфига для кампуса МИФИ:

system modify \
    deny_remote_tunnel_creates=yes \
    tunnel_establish_timeout=30 \
    session_establish_timeout=0 \
    tunnel_persist_pend_timeout=60 \
    session_persist_pend_timeout=60

ppp profile modify \
    profile_name=default \
    mtu=1460 \
    mru=1460 \
    auth_peer=no \
    auth_pap=no \
    auth_eap=no \
    auth_mschapv1=no \
    lcp_echo_interval=10 \
    lcp_echo_failure_count=3 \
    default_route=yes

tunnel create \
    tunnel_name=campus \
    dest_ipaddr=10.50.0.18 \
    use_udp_checksums=off \
    trace_flags=31 \
    persist=yes

session create \
    tunnel_name=campus \
    session_name=campus \
    use_sequence_numbers=no \
    user_name=your_login

Комментарии к опциям

  • Обязательны опции system modify session_establish_timeout=0, tunnel create use_udp_checksums=off и session create use_sequence_numbers=no. Без них у вас ничего (толком) работать не будет.
  • С данной конфигурацией ppp profile modify auth_* будет использоваться CHAP для аутентификации, можно добавить auth_chap=no для использования MSCHAPv2 (раньше с ним были проблемы, сейчас, вроде бы, работает). Иные изменения в auth_* опции вносить не рекомендуется.
  • Опции lcp_echo_* и persist обеспечивают автоматическое восстановление соединения после разрывов или подвисаний (когда соединение формально есть, а трафик не идёт).
  • Аргументом dest_ipaddr можно указать любой из ip, принадлежащих l2tp.campus.mephi.ru. Указать dns-имя, к сожалению, нельзя.
  • Аргументом user_name укажите ваш логин.
  • Пароль нужно сохранить в /etc/ppp/chap-secrets в стандарном для этого файла формате, например, таким образом:
login * pass *<code>
Проследите, чтоб права доступа chap-secrets были 0600.

Пожалуйста убедитесь, что /etc/ppp/options не содержит конфликтующих опций. Этот файл в любом случае будет читаться и обрабатываться демоном pppd.

Запуск

Для запуска достаточно запустить демон:

openl2tpd

Однако, желательно использовать init-скрипт, установленный на вашей системе, напимер:

/etc/init.d/openl2tpd start

или (для Gentoo):

rc-config start openl2tpd

Обратите внимание, что если ваш логин состоит только из цифр, то из-за ошибки в парсере openl2tpd такой конфиг не может быть загружен. В этом случае нужно запустить openl2tpd без чтения конфига и загрузить конфигурационный файл с помощью l2tpconfig:

openl2tpd -c /dev/null
l2tpconfig config restore file=/etc/openl2tpd.conf

Для пользователей Gentoo данная операция уже реализована в init-скрипте.

Автозагрузка

Для автоматического установления l2tp-соединения необходимо добавить init-скрипт в вашу RC систему:

  • Если у вас установлен chkconfig, выполните <code>chkconfig --add openl2tpd ; пожалуйста, проследите, чтоб openl2tpd запускался после инициализации вашего сетевого интерфейса.
  • Пользователям openrc достаточно выполнить: rc-config add openl2tpd default
  • Если вы используете SysV Init, создайте симлинк на openl2tpd в нужном ранлевеле, либо пропишите нужные операции в rc.local и т.п. инитскрипты финального исполнения.