Блог - Linux, программирование, Я!

linux на десктопеПлагин L2TP для NetworkManager

UPD: Сейчас поддержкой и разработкой плагина я не занимаюсь, т.к. перестал сам им пользоваться. Но его разработкой продолжили заниматься тут. Где взять новые DEB пакеты я не знаю, возможно их не существует вообще.

TL;DR: теперь подключаться к L2TP VPN можно через NetworkManager.

Допилил сегодня плагин для Network Manager с поддержкой L2TP. Поддерживает VPN через L2TP и, теоретически, L2TP через IPSec.
Я проверял на "beeline домашний интернет" ( http://help.internet.beeline.ru/internet/install/windows7/l2tp) и в общем-то для этого его и взялся дорабатывать. В принципе, можно даже озаглавить статью типа " Настройка beeline l2tp vpn через NetworkManager".

Установка

Можно установить из PPA:
https://launchpad.net/~seriy-pr/+archive/network-manager-l2tp

              sudo apt-add-repository ppa:seriy-pr/network-manager-l2tp
sudo apt-get update
sudo apt-get install network-manager-l2tp-gnome
            

* Если первая команда не сработает, нужно сперва сделать sudo apt-get install python-software-properties
После установки настоятельно рекомендую выполнить

              sudo service xl2tpd stop
sudo update-rc.d xl2tpd disable
            

После этого можно будет создать новое VPN подключение "Layer 2 Tunnelling Protocol (L2TP)" (см. скриншот).
Напомню как:

  1. Кликаем по иконке NM в трее
  2. Выбираем "Изменить соединения"
  3. Открываем вкладку VPN
  4. Жмем "Добавить"
  5. В выпадающем списке выбираем "Layer 2 Tunnelling Protocol (L2TP)" жмем создать
  6. Дальше уже заполняем окно с настройками для нового соединения

Можно сразу попасть на 5-й пункт если запустить в консоли nm-connection-editor --type=vpn --create

Если что-то не работает

Можете пожаловаться мне. Делать это следует так:
Сперва выполняем команды lsb_release -a и uname -a и отправляем мне что они напечатают.
В идеале прикладывайте еще ссылку на инструкцию вашего провайдера по настройке VPN для Windows.
Дальше в зависимости от того какая возникла проблема:

Не устанавливается пакет

Присылайте вывод команды
apt-cache policy network-manager-l2tp
Ну и какую ошибку пишет при установке.

Не получается Добавить новое VPN подключение

Имеется в виду что пакет установился, но при попытке создать и настроить новое VPN подключение возникают проблемы (нет пункта "Layer 2 Tunnelling Protocol (L2TP)" или программа вылетает или не сохраняются настройки).
В консоли запускаете команду
nm-connection-editor --type=vpn --create
И пробуете добавить и настроить новое подключение. Присылайте что напечатает в консоль и опишите саму проблему конечно же.

При попытке подключения происходят ошибки

Открываете 2 консоли, в одной запускаете

              sudo /usr/lib/NetworkManager/nm-l2tp-service --debug
            

в другой

              tail -f -n 0 /var/log/syslog
            

и пробуете подключиться. После того как случится фейл, присылайте что напечатает за это время в обоих терминалах (в выводе первой команды может засветиться ваш пароль - замените его звездочками!).

На компьютере, куда я хочу установить плагин нет интернета.

Есть скрипт на Python, который умеет выкачивать deb пакеты с плагином и всеми зависимостями.
На компьютере с интернетом окрываете эту ссылку https://gist.github.com/3029495, копируете код в файл, называете его, например, l2tp-downloader.py.
Далее, если компьютер с интернетом на Linux, то просто запускаете этот файл в консоли командой python l2tp-downloader.py и отвечаете на вопросы.
Если компьютер под Windows, нужно скачать и установить Python 2.7 с сайта http://python.org/ и с его помощью запустить скрипт.
После того как скрипт отработает, он создаст .tar архив, в котором будут лежать все зависимости и файл README с инструкцией по установке.

Работает ли плагин на KDE?

Плагин состоит из 2-х частей: независимый от интерфейса "бэкенд" и интерфейс для Gnome. Интерфейса под KDE я не делал. Но независимые разработчики недавно выпустили универсальный интерфейс для KDE панели plasma [ 1][ 2]. Проект новый, так что присутствует пока не во всех дистрибутивах, но в 2014 году должен постепенно появиться (запланирован в Ubuntu 14.04, Fedora 20). Пакет в репозиториях называется plasma-nm. Если plasma-nm у вас установлен, всё равно нужно "доставить" бэкенд-часть, например так:

              sudo apt-add-repository ppa:seriy-pr/network-manager-l2tp
sudo apt-get update
sudo apt-get install network-manager-l2tp
            

Т.е. нужно установить пакет network-manager-l2tp (не network-manager-l2tp-gnome!!!).

Альтернативные GUI программы для подключения к L2TP VPN в Linux

Если этот плагин почему то так у вас и не заработал, можете попробовать одну из следующих GUI-программ (к слову, все эти L2TP-GUI, в т.ч. и мой плагин, "внутри себя" используют одни и те же консольные программы: xl2tpd (для L2TP), pppd (для VPN) и openswan (для IPSec), но генерируют к ним немного разные конфиги и запускают их немного по разному).

vpnpptp

Официальный сайт vpnpptp. Программа написана на Pascal и Bash с использованием Qt. Из плюсов - много настроек, разрабатывается нашими соотечественниками, оптимизирована для подключения к beeline. Из минусов, пожалуй, довольно нестабильная работа, необходимость вводить root-пароль для подключения и не очень удобный интерфейс. (Ну и еще сам код программы жуткий).

L2tp-IPsec-VPN

Сайт, Wiki. Написана на C++ и Qt. Из плюсов - очень хорошая поддержка IPsec, неплохой интерфейс, можно подключаться без root пароля, активно разрабатывается, дружелюбный разработчик =). Из минусов - опять же, недостаточно стабильная работа, поддержку работы БЕЗ IPSec (нужно для работы с beeline) добавили совсем недавно (по моей просьбе), но заставить его работать с beeline так и не получилось.

Эпилог

Разработку веду на Github https://github.com/seriyps/NetworkManager-l2tp.
Пожелания, багрепорты, комментарии, благодарности приветствуются.

Тикеты с просьбой добавить поддержку L2TP в NM появились на Launchpad и Gnome в сентябре 2008г. Изначально плагин разработал Alexey Torkhov, но затем прекратил его поддержку.

  1. niko
    2015-04-23 09:18:29 | #

    можете выложить сюда плагин. не имею понятия как скачать его. интернет точко на винде

    • Jerry
      2015-04-26 13:50:22 | #

      На странице https://launchpad.net/~seriy-pr/+archive/ubuntu/network-manager-l2tp/+packages внизу раскрываете список пакетов для вашей версии Ubuntu и скачиваете. Не забудьте проверить, что установлены xl2tpd и openswan. Если их нет — возьмите с любого зеркала Ubuntu. Все пакеты устанавливаются через
      sudo dpkg -i

  2. niko
    2015-05-01 14:51:51 | #

    очнь много зависимостей с пакета networkmanager ,есть пакет со всеми зависимостями и одной установкой?

  3. Алексей
    2016-10-07 14:14:30 | #

    Пытаюсь LINUX MINT 18 подружить с билайновским L2TP

    user-N150P-N210P-N220P user # lsb_release -a
    No LSB modules are available.
    Distributor ID: LinuxMint
    Description: Linux Mint 18 Sarah
    Release: 18
    Codename: sarah
    user-N150P-N210P-N220P user # uname -a
    Linux user-N150P-N210P-N220P 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
    user-N150P-N210P-N220P user #

    Беда с первой строки ритуала

    user@user-N150P-N210P-N220P ~ $ sudo apt-add-repository ppa:seriy-pr/network-manager-l2tp
    ‘\xd0\x94\xd0\xb0\xd0\xbd\xd0\xbd\xd1\x8b\xd0\xb9 PPA \xd0\xbd\xd0\xb5 \xd0\xbf\xd0\xbe\xd0\xb4\xd0\xb4\xd0\xb5\xd1\x80\xd0\xb6\xd0\xb8\xd0\xb2\xd0\xb0\xd0\xb5\xd1\x82 xenial’
    Не удаётся добавить PPA: «’\xd0\x94\xd0\xb0\xd0\xbd\xd0\xbd\xd1\x8b\xd0\xb9 PPA \xd0\xbd\xd0\xb5 \xd0\xbf\xd0\xbe\xd0\xb4\xd0\xb4\xd0\xb5\xd1\x80\xd0\xb6\xd0\xb8\xd0\xb2\xd0\xb0\xd0\xb5\xd1\x82 xenial’».

    Команда sudo apt-get install python-software-properties выполнилась без нареканий, но и после этого ничего не изменилось

  4. master
    2017-02-05 05:27:23 | #

    Calculate GNU/Linux установил net-misc/networkmanager-l2tp ,но в меню networkmanager он не появляется.
    nm-connection-editor —type=vpn —create
    пишет :
    ** Message: vpn: (l2tp,/etc/NetworkManager/VPN/nm-l2tp-service.name) cannot load legacy-only plugin

  5. петр
    2023-06-28 19:42:44 | #

    Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
    gpg: no valid OpenPGP data found.
    Exception in thread Thread-1: