meltinsands
Goto Top

Systemctl enable openvpn-client status failed

Hallo,

eine kleine Odyssee mit OpenVPN geht in die nächste Runde.

Der Client ist mit RaspberryPi OS bullseye64 und einem OpenVPN 2.5.1 als einzig zusätzlich installiertem Paket neu aufgesetzt.

Auf dem Server läuft RaspberryPi OS buster32 mit einem OpenVPN 2.4.

Der Client läuft mit
systemctl start openvpn-client@PiClient
als active (running) und das System reagiert normal auf Eingaben.

Sobald ich den Client jedoch direkt beim Systemstart losschicke mit
systemctl enable openvpn-client@PiClient
, so reagiert das System auf keine Eingaben mehr, was systemd betrifft. Der Login über SSH dauert gefühlt bereits Minuten:

systemd-analyze time
Startup finished in 2.082s (kernel) + 13min 10.030s (userspace) = 13min 12.112s 

Beispiel:
systemctl stop openvpn-client@PiClient
Failed to get unit file state for openvpn-client@PiClient.service: Connection timed out
Oder:
sudo systemctl list-units
Failed to list units: Transport endpoint is not connected

OpenVPN scheint ein Problem mit einer Passworteingabe beim Systemstart zu haben:
systemd-analyze blame
11min 22.468s systemd-ask-password-wall.service


Das VPN Passwort liegt mit absolutem Pfad in der Datei auth.data im Ordner /client.


Einen Fehler, den ich zeitweise erhalten habe, war dieser:
Password entry required for 'Enter Private Key Password:' (PID 1876).  
Please enter password with the systemd-tty-ask-password-agent tool.

Nach einiger Zeit kann man mit etwas Glück wieder wieder auf den Pi zugreifen und sich den Status von openvpn ansehen:
systemctl status openvpn-client@PiClient
● openvpn-client@PiClient.service - OpenVPN tunnel for PiClient
     Loaded: loaded (/lib/systemd/system/openvpn-client@.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Wed 2023-09-27 00:10:41 CEST; 8h ago
       Docs: man:openvpn(8)
             https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
             https://community.openvpn.net/openvpn/wiki/HOWTO
    Process: 530 ExecStart=/usr/sbin/openvpn --suppress-timestamps --nobind --config PiClient.conf (code=exited, status=1/FAILURE)
   Main PID: 530 (code=exited, status=1/FAILURE)
     Status: "Pre-connection initialization successful"  
        CPU: 132ms

Sep 27 00:09:06 raspberrypi openvpn[530]: OpenVPN 2.5.1 aarch64-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Ma>
Sep 27 00:09:06 raspberrypi openvpn[530]: library versions: OpenSSL 1.1.1n  15 Mar 2022, LZO 2.10
Sep 27 00:09:06 raspberrypi systemd[1]: Started OpenVPN tunnel for PiClient.
Sep 27 00:09:06 raspberrypi openvpn[530]: RESOLVE: Cannot resolve host address: XXXXX.de:1194 (Temporary failure in name resolution)
Sep 27 00:09:06 raspberrypi openvpn[530]: RESOLVE: Cannot resolve host address: XXXXX.de:1194 (Temporary failure in name resolution)
Sep 27 00:09:06 raspberrypi openvpn[530]: Could not determine IPv4/IPv6 protocol
Sep 27 00:09:06 raspberrypi openvpn[530]: SIGUSR1[soft,init_instance] received, process restarting
Sep 27 00:10:45 raspberrypi openvpn[717]: Failed to query password: Timer expired
Sep 27 00:10:45 raspberrypi openvpn[530]: ERROR: Failed retrieving username or password
Sep 27 00:10:45 raspberrypi openvpn[530]: Exiting due to fatal error

Content-ID: 2845247954

Url: https://administrator.de/contentid/2845247954

Ausgedruckt am: 19.12.2024 um 12:12 Uhr

tagol01
tagol01 27.09.2023 um 09:28:07 Uhr
Goto Top
Hallo @meltinsands,

dein VPN Tunnel ändert die DNS Einstellung?

Zitat von @meltinsands:
Sep 27 00:09:06 raspberrypi openvpn[530]: RESOLVE: Cannot resolve host address: XXXXX.de:1194 (Temporary failure in name resolution)

Das wäre der Grund, warum der Login per SSH länger dauert.

Ansonsten brauche ich mehr info!
meltinsands
meltinsands 27.09.2023 aktualisiert um 10:10:25 Uhr
Goto Top
Hallo @tagol01, als DNS ist über die f!b für IPv4 Pihole hinterlegt. Ich verstehe noch nicht, warum openvpn über "start" läuft, aber über "enable" nach einem reboot Probleme hat.

Welche Infos kann ich dir geben?
bitnarrator
bitnarrator 27.09.2023 um 14:45:42 Uhr
Goto Top
Eventuell startet openvpn zu früh und es ist noch kein Netzwerk etc. verfügbar.

In welchem target läuft der Dienst denn? Vielleicht mal auf "network-online" stellen.
https://systemd.io/NETWORK_ONLINE/
meltinsands
meltinsands 27.09.2023, aktualisiert am 28.09.2023 um 10:17:13 Uhr
Goto Top
Hallo @bitnarrator,

Danke für den Link. Die Basiskonfiguration sieht im Grunde korrekt aus und ich nutze systemd-networkd nicht - kann also die wait-Befehle nicht nutzen:

sudo systemctl cat openvpn.service
# /lib/systemd/system/openvpn.service
# This service is actually a systemd target,
# but we are using a service since targets cannot be reloaded.

[Unit]
Description=OpenVPN service
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/true
WorkingDirectory=/etc/openvpn

[Install]
WantedBy=multi-user.target

sudo systemctl cat openvpn-client@PiClient.service
# /lib/systemd/system/openvpn-client@.service
[Unit]
Description=OpenVPN tunnel for %I
After=network-online.target
Wants=network-online.target
Documentation=man:openvpn(8)
Documentation=https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
Documentation=https://community.openvpn.net/openvpn/wiki/HOWTO

[Service]
Type=notify
PrivateTmp=true
WorkingDirectory=/etc/openvpn/client
ExecStart=/usr/sbin/openvpn --suppress-timestamps --nobind --config %i.conf
CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_DAC_>
LimitNPROC=10
DeviceAllow=/dev/null rw
DeviceAllow=/dev/net/tun rw
ProtectSystem=true
ProtectHome=true
KillMode=process

[Install]
WantedBy=multi-user.target


Aus der Not lasse ich den OpenVPN gerade testweise zeitversetzt starten:
# /etc/systemd/system/openvpn-client@.service.d/waitfor.conf
[Service]
ExecStartPre=/bin/sleep 60

Das ist nicht gerade elegant, aber funktioniert.

Wäre es ratsam nach After und Wants auch Requires=network-online.target zu nutzen?

Den Client mit After nach dhcpcd.service zu starten, funktioniert leider auch nicht.
meltinsands
Lösung meltinsands 29.09.2023 um 12:31:18 Uhr
Goto Top
Ich habe nun RaspberryPi OS Lite installiert und das Problem scheint gelöst.