Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Плагин L2TP-VPN для NetworkManager (beeline etc)  (Прочитано 204482 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн serega3907

  • Активист
  • *
  • Сообщений: 658
    • Просмотр профиля
Re: Плагин L2TP-VPN для NetworkManager (beeline etc)
« Ответ #120 : 21 Июня 2014, 20:29:48 »
попробовал - не получилось  :-[

Оффлайн jershell

  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: Плагин L2TP-VPN для NetworkManager (beeline etc)
« Ответ #121 : 14 Августа 2014, 20:54:33 »
Даже не знаю с чего начать, наверное начну с того, что пытался найти нормальный l2tp\ipsec gui плагин под ubuntu\linux, но не вышло. Поэтому, начал с самого начала, а именно ipsec клиента. Тут выбор довольно большой, самый распространенный openswan, затем stronswan, vpnc(cisco), libreswan(fork openswan`a), совсем старый freeSwan, и racoon(ipsec-tools), каждый из этих реализаций ipsec имеет свои плюсы и минусы, но я обратил внимание, что последний(racoon) используется в android, freeBSD, macOSX и iOS, и имеет схожую конфигурацию, но разные способы хранения конфиг. файлов. Чаще всего это были XML.

Итак из всего этого стало понятно, надо использовать в качестве клиента ipsec -  racoon, но тут не все так просто. Дело в том, что ipsec туннель для своей работы использует очень строгий порядок установки соединения. В конфигурации необходимо явно указать, какой режим шифрования необходимо устанавливать, или туннельный(для шифрования всего ип пакета) или транспортный, для шифрования только его содержимого. Если есть NAT, то тут возможно использовать только транспортный режим, поскольку туннельный режим обеспечивает шифрование пакета в целом, что не дает нату полноценно подменять порт и айпи заголовок.  Далее идет двух фазовая установка соединения. И тут самое сложное, поскольку необходимо точно знать алгоритмы шифрования на каждом этапе:
1.encryption_algorithm
2.hash_algorithm
3.Diffie Hellman group
4. Время жизни фазы
5. authentication_algorithm
В этом плане пришлось задать интересный вопрос, как mac os и прочие выставляют эти параметры, если они еще ничего не знают о шифровании на сервере? Как показал анализ конфиг. файлов, то у них почти у всех есть предустановленная конфигурация. Причем её поменять просто так не получится, по крайней мере в android я не смог даже найти, где хранятся конфиги туннелей, пришлось устанавливать утилиту для импорта настроек. И последнее, необходимо определить какие пакеты будут шифроваться, а какие нет. Для этого используется утилита из состава ipsec-tools, setkey.

Если рассматривать настройку туннеля с помощью публичного ключа, а не сертификатов, хотя тут разницы никакой, то все сводится к следующему:

Система Ubuntu 14.04 x86_64.
Устанавливаем пакеты racoon и xl2tpd

1. Настраиваем ipsec соединение

/etc/racoon/racoon.conf
path pre_shared_key "/etc/racoon/psk.txt";

 remote IP_СЕРВЕРА {
my_identifier user_fqdn "user@example.com";
# exchange_mode aggressive,main,aggressive;
exchange_mode main;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group modp1024;
}
passive off;
generate_policy off;
nat_traversal force;
}

sainfo  anonymous address IP_СЕРВЕРА any {
pfs_group modp768;
encryption_algorithm 3des;
authentication_algorithm hmac_md5;
compression_algorithm deflate;
}

Далее как видно из конфигурационного файла идем править файл с публичным ключём
/etc/racoon/psk.txt
IP_СЕРВЕРА ПУБЛИЧНЫЙ_КЛЮЧ

И последний конфиг файл политики шифрования:
/etc/ipsec-tools.conf
#!/usr/sbin/setkey -f

spdadd Локальный_IP IP_СЕРВЕРА any -P out ipsec
   esp/transport//require;
                     
spdadd IP_СЕРВЕРА Локальный_IP any -P in ipsec
   esp/transport//require;


После чего необходимо перезапустить службы:
# service setkey restart
# service racoon restart


Логи можно посмотреть в
/var/log/syslog
Если все хорошо, то в логах будет что-то подобное:
Aug 14 15:12:05 jershell-Macmini racoon: INFO: IPsec-SA established: ESP/Transport 192.168.20.39[4500]->IP_СЕРВЕРА[4500] spi=21510777(0x1483a79)
Aug 14 15:12:05 jershell-Macmini racoon: INFO: IPsec-SA established: ESP/Transport 192.168.20.39[4500]->IP_СЕРВЕРА[4500] spi=1959044158(0x74c4a43e)

Но одно важное замечание, соединение не будет устанавливаться, если не обратиться к IP_СЕРВЕРА, например его можно пингануть или попытаться подключиться по ssh. Или явно написать racoonctl vpn-connect IP_СЕРВЕРА_ИЗ_racoon.conf
Состояние туннеля можно посмотреть так:

racoonctl show-sa esp

Вот и все, с ipsec вроде как закончили. Далее необходимо поверх нашего ipsec туннеля поднять l2tp соединение. Поскольку в политике шифрования мы указали как нам шифровать и передавать ip пакеты(/etc/ipsec-tools.conf), то тут получается самое обычное l2tp соединение. То есть в конфиг файле написано что шифровать все пакеты от локального хоста до хоста с l2tp соединением. Вот собственно и все.

Я сравнил логи с l2tp/ipsec сервера при подключении window 7, android и настроенного racoon клиента, все идентично,  что должно внушать веру, в то, что к большинству L2tp/ipsec серверов можно будет подключиться через этот плагин. Даже если просто установить ipsec-tools, настроить ipsec и затем поднять l2tp с помощью плагина. А теперь самое главное к чему я все это

1. Как помочь автору плагина внедрить все это в текущий плагин?
2. Я вижу вы выложили исходники, если я соберу из исходников плагин, будет ли он работать без openswan? На сколько я понимаю, openswan сейчас выступает в качестве зависимости?

Используемые материалы:
« Последнее редактирование: 14 Августа 2014, 22:01:38 от jershell »

Оффлайн P.S.

  • Автор темы
  • Любитель
  • *
  • Сообщений: 93
    • Просмотр профиля
Re: Плагин L2TP-VPN для NetworkManager (beeline etc)
« Ответ #122 : 15 Августа 2014, 17:35:43 »
...
1. Как помочь автору плагина внедрить все это в текущий плагин?
2. Я вижу вы выложили исходники, если я соберу из исходников плагин, будет ли он работать без openswan? На сколько я понимаю, openswan сейчас выступает в качестве зависимости?
Спасибо за обзор!

1. Самым лучшим способом было бы прислать готовый diff / патч.
2. Зависимость от openswan задаётся только при сборке пакетов. При сборке из исходников наличие openswan не требуется.

deb пакеты вам не обязательно уметь собирать - пришлёте патч а я уже всё соберу и людям, которые .rpm собирают тоже напишу.

Как сделать патч?
Ну, самый простой вариант, пожалуй:

git clone https://github.com/seriyps/NetworkManager-l2tp
cd NetworkManager-l2tp
отредактировать исходники
git diff > ~/nm-l2tp.diff

и этот .diff прислать

Оффлайн jershell

  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: Плагин L2TP-VPN для NetworkManager (beeline etc)
« Ответ #123 : 19 Августа 2014, 12:10:02 »
1. Самым лучшим способом было бы прислать готовый diff / патч.
Хорошо. с кодом познакомился, вчера начал делать. Постараюсь не растягивать на недели-месяцы, буду пилить.

Оффлайн Malamut

  • Ubuntu Member
  • Администратор
  • Старожил
  • *
  • Сообщений: 3337
  • Я добрый, честно!
    • Просмотр профиля
    • Моя страница на Launchpad
Re: Плагин L2TP-VPN для NetworkManager (beeline etc)
« Ответ #124 : 26 Августа 2014, 14:59:10 »
Поставил плагин, прописал настройки своего VPN, пытаюсь подключиться - NM во всплывающем сообщении пишет "не удалось найти подходящий ключ для VPN" Что бы это значило?
"Носителем суверенитета и единственным источником власти в Российской Федерации является ее многонациональный народ" Конституция РФ

Оффлайн Malamut

  • Ubuntu Member
  • Администратор
  • Старожил
  • *
  • Сообщений: 3337
  • Я добрый, честно!
    • Просмотр профиля
    • Моя страница на Launchpad
Re: Плагин L2TP-VPN для NetworkManager (beeline etc)
« Ответ #125 : 26 Августа 2014, 15:05:40 »
<error> [1409051022.661829] [nm-vpn-connection.c:1324] plugin_need_secrets_cb(): (bla-bla) plugin NeedSecrets request #1 failed: dbus-glib-error-quark Rejected send message, 1 matched rules; type="method_call", sender=":1.7" (uid=0 pid=1079 comm="NetworkManager ") interface="org.freedesktop.NetworkManager.VPN.Plugin" member="NeedSecrets" error name="(unset)" requested_reply="0" destination="org.freedesktop.NetworkManager.l2tp" (uid=0 pid=8583 comm="/usr/lib/NetworkManager/nm-l2tp-service --debug ")

Ubuntu 14.04.1 LTS
"Носителем суверенитета и единственным источником власти в Российской Федерации является ее многонациональный народ" Конституция РФ

Оффлайн P.S.

  • Автор темы
  • Любитель
  • *
  • Сообщений: 93
    • Просмотр профиля
Re: Плагин L2TP-VPN для NetworkManager (beeline etc)
« Ответ #126 : 28 Августа 2014, 07:46:04 »
<error> [1409051022.661829] [nm-vpn-connection.c:1324] plugin_need_secrets_cb(): (bla-bla) plugin NeedSecrets request #1 failed: dbus-glib-error-quark Rejected send message, 1 matched rules; type="method_call", sender=":1.7" (uid=0 pid=1079 comm="NetworkManager ") interface="org.freedesktop.NetworkManager.VPN.Plugin" member="NeedSecrets" error name="(unset)" requested_reply="0" destination="org.freedesktop.NetworkManager.l2tp" (uid=0 pid=8583 comm="/usr/lib/NetworkManager/nm-l2tp-service --debug ")

Ubuntu 14.04.1 LTS
Обычно после перезагрузки эта ошибка пропадает. Встречался с такой, но причина не ясна.

Оффлайн Malamut

  • Ubuntu Member
  • Администратор
  • Старожил
  • *
  • Сообщений: 3337
  • Я добрый, честно!
    • Просмотр профиля
    • Моя страница на Launchpad
Re: Плагин L2TP-VPN для NetworkManager (beeline etc)
« Ответ #127 : 28 Августа 2014, 20:45:40 »
Да, всё ок, хоть это и ужасно (прям Windows какая-то), но перезагрузка помогла. Это какой-то баг в NM, я тоже не смог раскопать корни его.

Правда, так и не удалось настроить соединение. Нужен ipsec, но про него известно только, что ключ 12345678. Что такое Group и прочее - вообще не знаю. В других конфигурялках есть в настройках IPSec одно такое поле - этот самый ключ, и всё. А дальше только настройки PPP.

Ща попробую покопать, если что - подключаюсь к PureVPN. Работает PPTP и SSTP, L2TP пока работает только через какой-то извращённый конфигуратор vpnpptp

Есть вот такая хрень, не проверял пока что правда её работоспособность:

http://phpstack-271-1035-2577.cloudwaysapps.com/config/l2tp_ip_ubuntu.php
« Последнее редактирование: 28 Августа 2014, 20:48:21 от Malamut »
"Носителем суверенитета и единственным источником власти в Российской Федерации является ее многонациональный народ" Конституция РФ

Оффлайн Malamut

  • Ubuntu Member
  • Администратор
  • Старожил
  • *
  • Сообщений: 3337
  • Я добрый, честно!
    • Просмотр профиля
    • Моя страница на Launchpad
Re: Плагин L2TP-VPN для NetworkManager (beeline etc)
« Ответ #128 : 28 Августа 2014, 20:57:18 »
Нет, почему-то не работает, но не суть. Смысл в том, что нужно куда-то ввести эти 12345678
"Носителем суверенитета и единственным источником власти в Российской Федерации является ее многонациональный народ" Конституция РФ

Оффлайн P.S.

  • Автор темы
  • Любитель
  • *
  • Сообщений: 93
    • Просмотр профиля
Re: Плагин L2TP-VPN для NetworkManager (beeline etc)
« Ответ #129 : 29 Августа 2014, 02:37:00 »
Нет, почему-то не работает, но не суть. Смысл в том, что нужно куда-то ввести эти 12345678
Перезагрузка нужна потому, что, по неизвестной мне причине, не происходит обновление настроек DBus.
IPSec у плагина добавили очень давно и он очень примитивно сделан, причем ещё до того, как я подхватил развитие плагина. Я лично ipsec не использую, так что интереса в нем ковыряться у меня нет.
Пароль ipsec, по идее, можно ввести в поле PSK.

Оффлайн CoolAller

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Re: Плагин L2TP-VPN для NetworkManager (beeline etc)
« Ответ #130 : 09 Октября 2014, 18:26:19 »
P.S., Приветствую!

Интересно узнать, вы поддерживаете еще разработку плагина L2TP для NM? Или сейчас он работает только в Ubuntu?
Я взял ваш плагин с github и пытался собрать его для Debian. В настоящий момент собрать плагин без ошибок невозможно, из-за изменений внесенных в automake, а именно старой переменной INCLUDES, которая сейчас переименована в AM_CPPFLAGS/_CPPFLAGS:
Цитировать
INCLUDES
 This does the same job as AM_CPPFLAGS (or any per-target _CPPFLAGS variable if it is used). It is an older name for the same functionality. This variable is deprecated; we suggest using AM_CPPFLAGS and per-target _CPPFLAGS instead.

При выполнении ./autogen.sh выдает следующее сообщение:
(Нажмите, чтобы показать/скрыть)
Подозреваю, что старая переменная автоматически не заменяется automake на новую и просто выводится сообщение об ошибке.

Команда ./configure отрабатывает без ошибок. (Насколько я понял в файле README.ubuntu содержатся замечания только для Ubuntu, для Debian ./configure запускается без дополнительных аргументов?) На всякий случай напишу, что в настоящий момент, пакет openswan уже выпилен из многих дистрибутивов, а IPSec все еще нужен, ваш плагин совместим с racoon?

При попытке выполнить make выводятся следующие ошибки:
(Нажмите, чтобы показать/скрыть)
Подозреваю, что проблема с make связана с пакетом libgnome-keyring-dev (в данный момент актуальная версия libgnome-keyring-dev 3.12.0-1), который был установлен для удовлетворения зависимости при компиляции - требовался gnome-keyring-1.
Писал об этом в вашем блоге, но вы видимо были заняты, да и там получится нечитаемо. Поэтому здесь описал более развернуто. Плагин очень нужный, в том числе и для Debian, так как там вообще без альтернатив. Думаю многие были бы очень благодарны, если бы вы собирали deb-пакеты не только для Ubuntu, но и для Debian. Очень жаль, что плагин до сих пор не включают в NM по умолчанию, так как это абсолютный mast have для любой OS! Кстати с чем это связано и как можно повлиять на ситуацию?

PS. Еще неплохо было бы добавить список требуемх пакетов для успешной компиляции в файл Readme. Вот то, что удалось выяснить самому:

intltool
ppp-dev
libgtk-3-dev
libgail-3-dev
libglib2.0-dev
libgnome-keyring-dev
____________________________________________
Большая просьба к модераторам не удалять мой пост, хотя бы до понимания того, что теперь делать с L2TP - пилить скрипт самому или, если автор заинтересован в дальнейшей разработке данного плагина, как-то собрать его для NM. И потом, некоторая информация, написанная здесь, может быть интересна и Ubuntu пользователям.
« Последнее редактирование: 10 Октября 2014, 14:26:12 от CoolAller »

Оффлайн CSRedRat

  • Активист
  • *
  • Сообщений: 268
  • Decker
    • Просмотр профиля
    • Метин2Вики
Re: Плагин L2TP-VPN для NetworkManager (beeline etc)
« Ответ #131 : 10 Октября 2014, 09:01:26 »
2CoolAller: Автор вроде активный и периодически отписывается по сообщениям, для новый версий Ubuntu адаптирует. Попробуйте создать Issue на GitHub, либо найти личные контакты автора и связаться с ним. Здесь, в блоге и на гитхабе он точно отвечал.

2jershell: Растянулось на месяцы :P

Оффлайн CoolAller

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Re: Плагин L2TP-VPN для NetworkManager (beeline etc)
« Ответ #132 : 10 Октября 2014, 17:46:22 »
CSRedRat, сейчас посмотрел, есть там на GitHub похожий рапорт от 5 июня о том, что плагин не собирается, только там на Arch Linux, но по сути это все равно, так как и либы и ошибки одни и те же.
« Последнее редактирование: 10 Октября 2014, 20:55:06 от CoolAller »

Оффлайн CSRedRat

  • Активист
  • *
  • Сообщений: 268
  • Decker
    • Просмотр профиля
    • Метин2Вики
Re: Плагин L2TP-VPN для NetworkManager (beeline etc)
« Ответ #133 : 13 Октября 2014, 08:10:05 »
CSRedRat, сейчас посмотрел, есть там на GitHub похожий рапорт от 5 июня о том, что плагин не собирается, только там на Arch Linux, но по сути это все равно, так как и либы и ошибки одни и те же.
Можете его дополнить, заодно апнется.

Оффлайн dj--alex

  • Старожил
  • *
  • Сообщений: 3237
  • Понимаешь, я какбы беру в руки лопату и говорю...
    • Просмотр профиля
    • все мои творения и занятия
Re: Плагин L2TP-VPN для NetworkManager (beeline etc)
« Ответ #134 : 10 Ноября 2014, 02:21:46 »
в Linux Mint 17 плагин не работает как оказалось. ещё в планах в Ubuntu 14.10 проверитб
Ubuntu 18.04 MATE x64, 19.3 x64 Mate, MX-Linux 19 Mate Mate Mate Mate. PC:B450\Ryzen3200G\16Gb\6TB\1060gtx\512Gb-Netac
https://forum.ubuntu.ru/index.php?topic=199897.0

 

Страница сгенерирована за 0.021 секунд. Запросов: 19.