LINUX.ORG.RU

systemd-resolved + strongswan

 , ,


0

1

настроил vpn по этой инструкции https://support.nordvpn.com/Connectivity/Linux/1151861242/How-to-connect-to-NordVPN-with-IKEv2-IPSec-on-Linux.htm, на ubuntu 18.04 все хорошо, а на archlinux получаю ошибки

...
installing DNS server 103.86.96.100 via resolvconf
resolvconf: Failed to set DNS configuration: Unit dbus-org.freedesktop.network1.service not found.
removing DNS server 103.86.96.100 via resolvconf
resolvconf: Failed to revert interface configuration: Unit dbus-org.freedesktop.network1.service not found.
...
adding DNS server failed
handling INTERNAL_IP4_DNS attribute failed
...
само подключение работает, но используются дефолтные днс-серверы прописанные на роутере, а не от vpn

в аналогичной теме https://www.linux.org.ru/forum/general/15715221 гражданин intelfx рекомендовал установить resolvconf из от systemd

Соответственно у меня systemd-resolved работает и стоит пакет systemd-resolvconf (вместо дефолтного openresolv)

[root@newpc ~]# resolvectl status
Global
       Protocols: +LLMNR +mDNS -DNSOverTLS DNSSEC=allow-downgrade/supported
resolv.conf mode: stub

Link 2 (enp7s0)
    Current Scopes: DNS LLMNR/IPv4
         Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=allow-downgrade/supported
Current DNS Server: 192.168.1.1
       DNS Servers: 192.168.1.1

 pacman -Qi systemd-resolvconf
Name            : systemd-resolvconf
Version         : 248.3-2
Description     : systemd resolvconf replacement (for use with systemd-resolved)
Architecture    : x86_64
URL             : https://www.github.com/systemd/systemd
Licenses        : LGPL2.1
Groups          : None
Provides        : openresolv  resolvconf
Depends On      : systemd
Optional Deps   : None
Required By     : netctl
Optional For    : dhcpcd  networkmanager  strongswan  vpnc
Conflicts With  : openresolv
Replaces        : None
Installed Size  : 0.00 B
Packager        : Christian Hesse <arch@eworm.de>
Build Date      : Tue 18 May 2021 01:32:40 PM MSK
Install Date    : Sat 10 Jul 2021 11:29:30 AM MSK
Install Reason  : Explicitly installed
Install Script  : No
Validated By    : Signature

но это не помогает, как я понимаю ошибка Failed to revert interface configuration: Unit dbus-org.freedesktop.network1.service not found говорит о том, что пытается использоваться systemd-networkd который у меня выключен т.к. я использую NetworkManager

Как мне донастроить vpn чтобы юзплось его dns?


openvpn-update-resolv-conf-git в аур, мне помогло. Есть еще openvpn-update-systemd-resolved, но я б на твоем месте вообще от системд отказался.

Dog ()
Ответ на: комментарий от Dog

В аурах еще какой-то openvpn-nordvpn есть, но хз что это, написано просто helper script для норда. Глянь, вдруг тебе пригодиться.

Dog ()

systemd-networkd который у меня выключен т.к. я использую NetworkManager

Включи. systemd-resolved без systemd-networkd не работает; при этом тебе необязательно именно его использовать для настройки сети, он просто должен быть включен и запущен.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

запустил systemd-networkd у меня вообще вся сеть отвалилась, как я понимаю с NetworkManager он не работает, либо одно либо другое а systemd-resolved в целом без systemd-networkd как раза работает у меня за исключением strongswan

tm4ig ()
Ответ на: комментарий от tm4ig

запустил systemd-networkd у меня вообще вся сеть отвалилась, как я понимаю с NetworkManager он не работает, либо одно либо другое

Неправда. У меня на основном ноутбуке именно такая конфигурация работает лет пять:

$ nmcli
wlan0: connected to Nexus
        "Intel Wireless-AC 9260"
        <...>

Use "nmcli device show" to get complete information about known devices and
"nmcli connection show" to get an overview on active connection profiles.

Consult nmcli(1) and nmcli-examples(7) manual pages for complete usage details.

$ networkctl       
IDX LINK           TYPE     OPERATIONAL SETUP    
  1 lo             loopback carrier     unmanaged
  2 enp0s31f6      ether    no-carrier  unmanaged
  3 wlan0          wlan     routable    unmanaged
  4 wwp0s20f0u6i12 wwan     off         unmanaged
  5 virbr-nat      bridge   no-carrier  unmanaged

5 links listed.

Смотри, что конкретно где отваливается. Запусти networkctl и проверь, что напротив всех интерфейсов написано unmanaged. Убери все дефолтные конфиги из networkd, если твой дистрибутив их по умолчанию устанавливает.

а systemd-resolved в целом без systemd-networkd как раза работает у меня за исключением strongswan

Разве что в очень ограниченном режиме.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

чудеса, после того как второй раз запустил networkd и после этого рестартонул NetworkManager и resolved сеть работает, впрочем для vpn это не помогло, хотя содержимое ошибки несколько изменилось

installing DNS server 103.86.96.100 via resolvconf
resolvconf: Failed to set DNS configuration: Link lo is loopback device.
removing DNS server 103.86.96.100 via resolvconf
resolvconf: Failed to revert interface configuration: Link lo is loopback device.
adding DNS server failed
installing DNS server 103.86.96.100 via resolvconf
resolvconf: Failed to set DNS configuration: Link lo is loopback device.
removing DNS server 103.86.96.100 via resolvconf
resolvconf: Failed to revert interface configuration: Link lo is loopback device.
adding DNS server failed
handling INTERNAL_IP4_DNS attribute failed
installing DNS server 103.86.99.100 via resolvconf
resolvconf: Failed to set DNS configuration: Link lo is loopback device.
removing DNS server 103.86.99.100 via resolvconf
resolvconf: Failed to revert interface configuration: Link lo is loopback device.
adding DNS server failed
handling INTERNAL_IP4_DNS attribute failed

tm4ig ()
Ответ на: комментарий от tm4ig

Интересно. Добавление DNS-серверов для loopback видимо не поддерживается (что в целом разумно — какая у этого действия семантика, не понятно).

Попробуй задать другой interface name prefix в конфигурации strongswan (ман):

charon.plugins.resolve.resolv_conf.iface_prefix

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

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

Но вообще да, тут сложновато. Я когда давал тот совет (в треде, на который ты сослался), не подумал, что IPsec не создаёт отдельного интерфейса и поэтому вся эта система плохо ложится на семантику systemd-resolved.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

заменить его на имя твоего основного интерфейса

То есть если делать по аналогии с дефолтом (lo.inet.ipsec.), то будет что-то в духе enp7s0.inet.ipsec..

intelfx ★★★★★ ()
Ответ на: комментарий от intelfx

поправил в /etc/strongswan.d/charon/resolve.conf с # iface_prefix = lo.inet.ipsec на iface_prefix = enp7s0.inet.ipsec - заработало причем без включенного networkd


installing DNS server 103.86.96.100 via resolvconf
installing DNS server 103.86.99.100 via resolvconf
handling INTERNAL_IP4_NETMASK attribute failed
installing new virtual IP 10.6.0.11
selected proposal: ESP:AES_CBC_128/HMAC_SHA2_256_128/NO_EXT_SEQ
CHILD_SA NordVPN{1} established with SPIs c6a2868d_i c5d1e651_o and TS 10.6.0.11/32 === 0.0.0.0/0
peer supports MOBIKE
connection 'NordVPN' established successfully


[root@newpc ~]# resolvectl status
Global
       Protocols: +LLMNR +mDNS -DNSOverTLS DNSSEC=allow-downgrade/supported
resolv.conf mode: stub

Link 2 (enp7s0)
    Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
         Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=allow-downgrade/supported
Current DNS Server: 103.86.99.100
       DNS Servers: 103.86.99.100
[root@newpc ~]# ^C

tm4ig ()
Последнее исправление: tm4ig (всего исправлений: 1)
Ответ на: комментарий от tm4ig

заработало

Отлично.

без включенного networkd

Без включенного или без запущенного? Посмотри ему в статус, возможно он сам запустился без твоего участия.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

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

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

[root@newpc ~]# resolvectl status
Global
       Protocols: +LLMNR +mDNS -DNSOverTLS DNSSEC=allow-downgrade/supported
resolv.conf mode: stub

Link 2 (enp7s0)
Current Scopes: LLMNR/IPv4 LLMNR/IPv6
     Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=allow-downgrade/supported

tm4ig ()
Ответ на: комментарий от tm4ig

Гм. Возможно баг в strongswan, возможно (скорее всего) недоработка в systemd-resolvconf. Надо смотреть, как именно вызывается resolvconf. Скорее всего сделать на месте с этим ничего нельзя, придётся обкостылить (например, повесить какой-нибудь хук и перезапускать основное подключение при остановке VPN).

intelfx ★★★★★ ()

Systemd стараюсь избегать любым путем после того как прочитал один тред (советую выкинуть и поставить init)

Dumppper001 ()

А resolved и networkd обязательны в твоём случае для работы vpn?

mxfm ★★ ()

У strongswan’а есть свой плугин для NetworkManager’а, который корректно управляет DNS’ом, и в инструкции несовместимых настроек я не увидел. Может, лучше игнорировать инструкцию и добавить соединение через nm-connection-editor по аналогии? Да, constraints придется отключать руками, как и раньше.

AEP ★★★★★ ()
Ответ на: комментарий от AEP

В принципе офф приложение nordvpn работает отлично как по openvpn так и по wireguard. Но я хотел максимально подготовиться к блокировке nordvpn ркн и заранее настраить все доступные варианты. Короче когда блочить начнут там видно будет

tm4ig ()
Ответ на: комментарий от tm4ig

В моем понимании, «заранее подготовиться» - это купить иностранную симку с приемлемым тарифом в роуминге, и поддерживать там достаточный баланс.

AEP ★★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.