Linux mint ikev2 client

Настройка l2tp linux mint 18

#1 — 10 сентября 2016 в 21:54

Linux Mint Cinnamon 18 x64
Прошу помощи новичку, необходимо настроить vpn l2tp ipsec до рабочей станции (есть адрес сервера, sharedkey и логин, пароль).
После установки дистрибутива минт по умолчанию в networkmanager есть только vpn pptp и OpenVPN. В менеджере пакетов не смог найти что либо подобное networkmanager-l2tp-gnome или l2tp-ipsec-vpn. Смог найти только xl2tpd но как им пользоваться пока не разобрался. Подскажите существует ли плагин l2tp для networkmanager? Или пакеты с помощью которых можно поднять впн. Буду благодарен за любую информацию.

#2 — 11 сентября 2016 в 00:11

#3 — 7 октября 2016 в 12:56

#4 — 7 октября 2016 в 21:09

#5 — 8 ноября 2016 в 11:55

#6 — 8 ноября 2016 в 12:31

#7 — 8 ноября 2016 в 15:09

#8 — 8 ноября 2016 в 16:13

Ужас какой-то, целый день убил на поиск рабочего решения. Словами можно, конечно, передать то, что под конец дня я чувствую, но в рамках данного форума это неприемлимо.
Источник: http://www.cyberforum.ru/ubuntu-linux/thread1774361.html

Скопирую сюда на всякий случай.
1) sudo su
2) apt install intltool libtool network-manager-dev libnm-util-dev libnm-glib-dev libnm-glib-vpn-dev libnm-gtk-dev libnm-dev libnma-dev ppp-dev strongswan libdbus-glib-1-dev libsecret-1-dev libgtk-3-dev libglib2.0-dev xl2tpd&&git clone https://github.com/nm-l2tp/network-manager-l2tp.git&&cd network-manager-l2tp&&autoreconf -fi&&intltoolize&&./configure —disable-static —prefix=/usr —sysconfdir=/etc —libdir=/usr/lib/x86_64-linux-gnu —libexecdir=/usr/lib/NetworkManager —localstatedir=/var —with-pppd-plugin-dir=/usr/lib/pppd/2.4.7&&make&&make install&&apparmor_parser -R /etc/apparmor.d/usr.lib.ipsec.charon&&apparmor_parser -R /etc/apparmor.d/usr.lib.ipsec.stroke&&apt remove xl2tpd&&apt install libpcap0.8-dev&&wget https://github.com/xelerance/xl2tpd/archive/v1.3.6/xl2tpd-1.3.6.tar.gz&&tar xvzf xl2tpd-1.3.6.tar.gz&&cd xl2tpd-1.3.6&&make&&make install&&echo «END. «

20161108231203_9ogm9.png | 57,43 Кб | Скачали: 1600

#9 — 30 декабря 2016 в 19:39

Давайте лучше так оставим для новичков?

Устанавливаем необходимые пакеты

sudo apt install intltool libtool network-manager-dev libnm-util-dev libnm-glib-dev\
libnm-glib-vpn-dev libnm-gtk-dev libnm-dev libnma-dev ppp-dev strongswan\
libdbus-glib-1-dev libsecret-1-dev libgtk-3-dev libglib2.0-dev xl2tpd

Переустанавливаем Network Manager

./configure —disable-static —prefix=/usr —sysconfdir=/etc —libdir=/usr/lib/x86_64-linux-gnu\
—libexecdir=/usr/lib/NetworkManager —localstatedir=/var\
—with-pppd-plugin-dir=/usr/lib/pppd/2.4.7

make
sudo make install

Удаляем настройки AppArmor касающиеся IPSEC

sudo apparmor_parser -R /etc/apparmor.d/usr.lib.ipsec.charon
sudo apparmor_parser -R /etc/apparmor.d/usr.lib.ipsec.stroke

Заменяем x2ltpd на libpcap

sudo apt remove xl2tpd
sudo apt install libpcap0.8-dev

#10 — 7 августа 2017 в 18:38

#11 — 19 февраля 2018 в 01:06

#12 — 11 июня 2018 в 00:17
Владимир измайлов:
какой гемор ппц, минт 18.3 все работает с этой статьи) за 3 минуты, до этого я се сеть упорол канешь. и 4 часа времени убил) https://www.techrepublic.com/article/how-to-add-the-l2tp-vpn-option-to-network-manager-in-linux/

Спасибо тебе, добрый человек. Реально, пара минут и все работает.

#13 — 23 сентября 2018 в 18:40

Помогите разобраться уже голову сломал

на 32 битной системе все работает норм на релизе 13 а на 18 64 битной вот что пишет внизу
sudo /usr/lib/NetworkManager/nm-l2tp-service —debug
[sudo] пароль для ux:
nm-l2tp[1915] nm-l2tp-service (version 1.2.8) starting.
nm-l2tp[1915] uses default —bus-name «org.freedesktop.NetworkManager.l2tp»
nm-l2tp[1915] ipsec enable flag: yes
** Message: Check port 1701
** Message: Can’t bind to port 1701
nm-l2tp[1915] L2TP port 1701 is busy, using ephemeral.
connection
id : «121121» (s)
uuid : «472df4a5-d0a4-4bec-bf93-7388c924b85b» (s)
interface-name : NULL (sd)
type : «vpn» (s)
permissions : [«user:ux:»] (s)
autoconnect : FALSE (s)
autoconnect-priority : 0 (sd)
timestamp : 0 (sd)
read-only : FALSE (sd)
zone : NULL (sd)
master : NULL (sd)
slave-type : NULL (sd)
autoconnect-slaves : ((NMSettingConnectionAutoconnectSlaves) NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES_DEFAULT) (sd)
secondaries : [] (s)
gateway-ping-timeout : 0 (sd)
metered : ((NMMetered) NM_METERED_UNKNOWN) (sd)
lldp : -1 (sd)

ipv6
method : «auto» (s)
dns : [] (s)
dns-search : [] (s)
dns-options : NULL (sd)
addresses : ((GPtrArray*) 0x1981b60) (s)
gateway : NULL (sd)
routes : ((GPtrArray*) 0x1981c20) (s)
route-metric : -1 (sd)
ignore-auto-routes : FALSE (sd)
ignore-auto-dns : FALSE (sd)
dhcp-hostname : NULL (sd)
dhcp-send-hostname : TRUE (sd)
never-default : FALSE (sd)
may-fail : TRUE (sd)
dad-timeout : -1 (sd)
dhcp-timeout : 0 (sd)
ip6-privacy : ((NMSettingIP6ConfigPrivacy) NM_SETTING_IP6_CONFIG_PRIVACY_UNKNOWN) (sd)
addr-gen-mode : 1 (sd)

Читайте также:  Password wrong windows 10

ipv4
method : «auto» (s)
dns : [] (s)
dns-search : [] (s)
dns-options : NULL (sd)
addresses : ((GPtrArray*) 0x1981ce0) (s)
gateway : NULL (sd)
routes : ((GPtrArray*) 0x7f67c0001260) (s)
route-metric : -1 (sd)
ignore-auto-routes : FALSE (sd)
ignore-auto-dns : FALSE (sd)
dhcp-hostname : NULL (sd)
dhcp-send-hostname : TRUE (sd)
never-default : FALSE (sd)
may-fail : TRUE (sd)
dad-timeout : -1 (sd)
dhcp-timeout : 0 (sd)
dhcp-client-id : NULL (sd)
dhcp-fqdn : NULL (sd)

vpn
service-type : «org.freedesktop.NetworkManager.l2tp» (s)
user-name : «ux» (s)
persistent : FALSE (sd)
data : ((GHashTable*) 0x1978b60) (s)
secrets : ((GHashTable*) 0x19789e0) (s)
timeout : 0 (sd)

nm-l2tp[1915] starting ipsec
Stopping strongSwan IPsec failed: starter is not running
Starting strongSwan 5.3.5 IPsec [starter].
Loading config setup
Loading conn ‘472df4a5-d0a4-4bec-bf93-7388c924b85b’
found netkey IPsec stack
nm-l2tp[1915] Spawned ipsec up script with PID 1982.
initiating Main Mode IKE_SA 472df4a5-d0a4-4bec-bf93-7388c924b85b[1] to 78.36.18.47
generating ID_PROT request 0 [ SA V V V V ]
sending packet: from 10.0.2.15[500] to 78.36.18.47[500] (224 bytes)
sending retransmit 1 of request message ID 0, seq 1
sending packet: from 10.0.2.15[500] to 78.36.18.47[500] (224 bytes)
nm-l2tp[1915] Timeout trying to establish IPsec connection
nm-l2tp[1915] Terminating ipsec script with PID 1982.
Stopping strongSwan IPsec.
destroying IKE_SA in state CONNECTING without notification
nm-l2tp[1915] Could not establish IPsec tunnel.

(nm-l2tp-service:1915): GLib-GIO-CRITICAL **: g_dbus_method_invocation_take_error: assertion ‘error != NULL’ faile

#14 — 29 марта 2020 в 12:27

Guys you need to google this , huge news for Corona -> «COVID20CB»

Источник

Как настроить IKEv2 VPN в Linux

Поддержка протокола IKEv2 в Linux обеспечивается пакетом strongSwan, доступным в большинстве дистрибутивов Linux. Для этого достаточно установить соответствующий плагин для NetworkManager.

Далее мы покажем, как настроить соединение VPN IKEv2 в Linux Ubuntu 18.04 LTS. В других версиях Linux процесс настройки может незначительно отличаться.

Настроить соединение:

  • Hазвание — название создаваемого подключения, например SecureVPN
  • Address — адрес VPN-сервера. Нажмите для получения списка серверов
  • Authentication — EAP
  • Username — username
  • Password — password

В разделе Options отметить пункты Request an inner IP address и Enforce UDP encapsulation.

Отметить пункт Enable custom proposals и в строке IKE указать aes256-sha256-modp1024.

Источник

VPN везде и всюду: IPsec без L2TP со strongSwan


достаточно сильный лебедь

Если вы когда-либо искали VPN, который будет работать на десктопах, мобильных устройствах и роутерах без установки дополнительного ПО и перепрошивки роутера, вы, вероятно, выбирали между PPTP и L2TP+IPsec. У протокола PPTP имеются проблемы с безопасностью и прохождением через брандмауеры и NAT, так что в 2015 году его уже использовать не стоит, а использование L2TP излишне, т.к. L2 VPN, по моему мнению, для обычного удаленного доступа не нужен практически никогда.

Удивительно, что в интернете не так-то просто можно найти информацию о настройке чего-то помимо L2TP+IPsec в транспортном режиме, учитывая, что это обширный стек протоколов, который можно конфигурировать буквально как душе угодно, поэтому я попытаюсь устранить такое несовершенство мира.

Небольшое введение в мир IPsec

Вообще говоря, не совсем правильно называть IPsec VPN. IPsec не предназначен для построения «виртуальных частных сетей», а создан для шифрования или защиты от подмены передаваемых по IP данных. Это специальный слой поверх IP, который, в зависимости от режима и настроек, работает по-разному. В отличие от привычного VPN, который создает новый интерфейс в системе, на который вы, как это чаще всего бывает, назначаете IP-подсеть из диапазона частных адресов (т.е. создаете новый сетевой сегмент), и через который маршрутизируется трафик в зашифрованном виде, IPsec просто шифрует трафик магическим образом между «внешними» интерфейсами сервера и клиента.

В современном IPsec используются:

  • Authentication Header (AH) — протокол, обеспечивающий аутентификацию отправителя и целостность данных. Подписывает не только данные пакета, но и все заголовки, кроме изменяемых полей (ToS, TTL, чексумма).
  • Encapsulating Security Payload (ESP) — протокол, обеспечивающий аутентификацию, целостность и конфиденциальность
  • Security Association (SA) — параметр с настройками шифрования канала
  • Internet Key Exchange (IKE и IKEv2) — протокол обмена параметрами, настройками и согласования SA
Читайте также:  Гаснет экран монитора компьютер продолжает работать windows

AH и ESP — транспортные протоколы, инкапсулируемые прямо в IP, имеющие собственные значение для поля Protocol в IP-заголовке. В современном мире, где NAT стоит за NAT у NAT с NAT’ом, следует использовать что-то более привычное, поэтому сейчас повсеместно используется инкапсуляция ESP-пакетов в UDP. AH не поддерживает работу через NAT.

Сам IPsec поддерживает работу в двух режимах:

  • Транспортный режим. Подписывает заголовки и данные (если AH) или подписывает и шифрует данные (если ESP) пакета. Не скрывает IP-адрес получателя пакета, если он маршрутизируется. Этот режим используется для связки L2TP+IPsec.
  • Туннельный режим. Подписывает (если AH) и еще шифрует (если ESP) весь пакет.

Протокол IKE позволяет проводить аутентификацию клиента с использованием X.509-сертификатов, Pre-Shared Key и Extensible Authentication Protocol (EAP). Поддерживается двухэтапная аутентификация.

Все современные десктопные ОС (Windows Vista/7/8/8.1, OS X, Linux), мобильные устройства (Android, iOS, Windows Phone, Blackberry) и некоторые роутеры поддерживают VPN с использованием IPsec ESP в туннельном режиме и его настройкой через протокол Internet Key Exchange (IKE) версии 1 или 2, а значит IPsec мы именно так и будем настраивать.

Кстати, писать правильно IPsec, но Cisco IPSec.

IPsec в Linux

В OpenVZ есть поддержка IPsec, и она вполне себе годна для запуска L2TP+IPsec, но там что-то явно не так с маршрутизацией на не-локальные интерфейсы. Вероятно, это можно починить добавлением пары правил на хостовую машину, но это довольно проблематично, если у вас нет доступа к ней, как бывает во подавляющем большинстве случаев. Поэтому для OpenVZ необходимо использовать userspace IPsec, который можно собрать параметром —enable-kernel-libipsec

Жизнь со swanctl:

Жизнь без swanctl:

Нам могут потребоваться некоторые модули, которых может не быть в стандартной поставке:

  • xauth-noauth — поддельный аутентификатор, позволяет вводить любой логин и пароль. Нужен для iPhone и iPad при аутентификации только по ключам, т.к. там нет возможности отключить аутентификацию по логину и паролю.
  • vici — интерфейс для swanctl.
  • libipsec — для userspace IPsec (для OpenVZ и, возможно, других контейнеров).

Если вас не смущает необходимость вводить логин и пароль на iPhone, вам не нужен swanctl и вы не собираетесь запускать это все в OpenVZ-контейнере, то и пересобирать ничего не нужно.
К большому сожалению, мейнтейнеры strongSwan в Debian не запаковали ничего из этого (на февраль 2015), поэтому я сделал патчик, который вы можете использовать.

Переходим к настройке

Будем настраивать подключение через IKEv2 (Windows, Linux, Blackberry), IKEv1+XAUTH (iOS, OS X, Android) и IKEv2+EAP-TLS (Windows Phone). Используем ключи, никаких PSK!
Разработчики strongSwan предлагают нам использовать команду «ipsec pki» для генерации ключей, но она настолько же неудобная, насколько и обычный openssl, поэтому я адаптировал Easy-RSA v3 из OpenVPN для генерации как OpenVPN, так и IPsec-совместимых ключей. С ним вы можете использовать одну связку ключей для двух протоколов!
github.com/ValdikSS/easy-rsa-ipsec
Easy-RSA чрезвычайно простой, поддерживать PKI-инфраструктуру с ним одно удовольствие!

Итак, инициализируем PKI и создаем CA, серверный и клиентский ключи. Важно, чтобы название серверного ключа совпадало с FQDN (доменом, проще говоря) вашего сервера!

Ключи сгенерированы. Я добавлял параметр nopass на каждом шагу, чтобы ключи не были защищены паролем (его можно установить позже в любое время).

Теперь нам необходимо скопировать их в нужные директории внутри /etc/ipsec.d/ , чтобы strongSwan нашел их:

Переходим к настройке strongSwan!
Первым делом, указываем наш приватный ключ в /etc/ipsec.secrets
Редактируем конфигурационный файл /etc/ipsec.conf

Как видите, конфигурационный файл состоит из нескольких секций. В секции config setup два закомментированных параметра: strictcrlpolicy = yes будет требовать неистекший лист отзывов для проведения аутентификации клиента, а uniqueids = no позволяет подключаться нескольким клиентам с одним сертификатом одновременно.
Далее идут секции с описаниями подключений. Секция с названием %default описывает подключение по умолчанию, от которого будут наследоваться другие подключения. Здесь устанавливаются следующие параметры:

  • dpdaction=clear включает механизм Dead Peer Detection (DPD) и указывает, что нужно забывать о клиенте, если он не отзывался дольше таймаута
  • dpddelay=35s — задержка до включения DPD
  • dpdtimeout=300s — таймаут для DPD
  • fragmentation=yes — включение внутренней фрагментации пакетов. Позволяет использовать IPsec с провайдерами, у которых сломана IP-фрагментация пакетов (привет, мобильный МТС!)
  • rekey=no — выключение инициации смены ключей со стороны сервера. Windows это не любит.
  • ike — перечень ciphersuites для использования с IKE (т.е. во время установки шифрованного соединения для передачи конфигурационных параметров, в том числе и ключей для установки SA)
  • esp — перечень ciphersuites для шифрования трафика
  • left и right — случаем все интерфейсы и принимаем всех клиентов
  • leftid — указываем наш FQDN. Нужно для сломанного IKEv2 в OS X El Capitan
  • leftauth/rightauth=pubkey — используем аутентификацию по ключам
  • leftsubnet — подсети, которые мы отправляем клиенту для маршрутизации (весь IPv4 и IPv6-интернет). Уберите IPv6, если не используете его.
  • rightsourceip — пул IP-адресов, из которого выдаем адрес клиенту. Уберите IPv6, если не используете его.
  • rightdns — IP-адреса DNS-серверов
Читайте также:  Deploying flask on windows

Давайте разберемся с ciphersuites в ike и esp. Здесь перечислены методы шифрования в порядке убывания приоритета, и их так много из-за того, что некоторые из них могут быть недоступны на каких-то устройствах, например, мобильных. Первым делом идут так называемые AEAD-алгоритмы, т.е. такие шифры, которые не требуют отдельного алгоритма для аутентификации, с убывающей группой Диффи-Хеллмана для реализации Perfect Forward Secrecy (PFS). Это самые быстрые шифры, которые доступны в IPsec. Хоть это и AEAD-режим, в ike должны быть алгоритмы хеширования для процесса хендшейка. Затем идет привычный AES-CBC с группами Диффи-Хеллмана. Клиентам, которые не поддерживают PFS, мы не позволим подключиться.

Если у вас нет модуля xauth-noauth для соединения ikev1-fakexauth , то вы можете заменить его просто на xauth и создать пользователя в /etc/ipsec.secrets , например, с логином и паролем client1:

Теперь у нас есть три подключения: ikev2-pubkey для IKEv2, ikev1-fakexauth для IKEv1 с фейковой проверкой логина и пароля и ikev2-eap-tls — IKEv2+EAP-TLS для Windows Phone. Перезапускаем strongSwan.

Если все верно, вы увидите следующий вывод команды swanctl -L

Проблемы MTU

Из-за особенностей и ошибок в реализации разных IPsec-клиентов, MTU внутри туннеля нельзя угадать заранее, а на Android вообще устанавливается MTU 1500, из-за чего большие пакеты не передаются и вообще ничего не работает. Чтобы нивелировать этот недостаток, достаточно изменять параметр TCP MSS в момент установки TCP-соединения на стороне сервера. Будем использовать значение 1360 для IPv4 и 1340 для IPv6, чтобы размер пакета не превышал 1400 байт внутри туннеля:

На этом настройка сервера закончена. Не забудьте настроить NAT, если вам он нужен!

Настройка клиентов

Алгоритм настройки клиентов в общих чертах заключается в импорте сертификатов из файла *.p12, создании нового подключения с типом IPsec PKI, IPsec XAUTH RSA или IKEv2 (в зависимости от устройства), указания клиентского сертификата и адреса сервера.
Внимание! Нужно вводить именно тот адрес сервера, который вы вводили при создании серверного ключа. Подключиться по другому домену или просто по IP-адресу, если сертификат был сгенерирован на домен, не получится!

Windows

OS X и iOS

Android

Вы можете использовать как IPsec-клиент Android и подключаться по протоколу IKE, так и клиент strongSwan и использовать IKEv2. Клиент strongSwan работает стабильнее и надежно переподключает в случае потери соединения.

Импортируйте сертификат либо через файловый менеджер, либо используя пункт «Установка с SD-карты» в разделе «Безопасность». Перейдите в настройки VPN, создайте новое подключение с типом «IPSec Xauth RSA», в поле «Адрес сервера» впишите, собственно, адрес сервера, в поле «Сертификат пользователя IPSec» и «Сертификат ЦС IPSec» укажите сертификат «client1». Нажмите на соединение, введите любые логин и пароль и попробуйте подключиться.

Источник

Оцените статью