Best Practice: OpenVPN Client/Server-Konfigurationen auf Ubuntu installieren & automatisch starten

English Deutsch

Dieser Beitrag beschreibt mein systemd-basiertes Setup zum Installieren und Aktivieren von OpenVPN-Client- oder Server-Konfigurationen auf Ubuntu. Es könnte auch für andere Linux-Distributionen funktionieren, die auf systemd basieren.

Platzieren Sie zuerst die OpenVPN-Konfiguration (normalerweise eine .ovpn-Datei, aber es kann auch eine .conf-Datei sein) in /etc/openvpn. Sie müssen die Dateinamenserweiterung zu .conf ändern – .ovpn funktioniert nicht. Stellen Sie außerdem sicher, dass sich keine Leerzeichen im Dateinamen befinden.

In diesem Beispiel wird unsere ursprüngliche OpenVPN-Konfiguration techoverflow.ovpn genannt, sie muss also nach /etc/openvpn/techoverflow.conf kopiert werden!

Nun können wir die Konfiguration aktivieren (d.h. Autostart beim Booten – aber nicht sofort starten) mit

enable_openvpn.sh
sudo systemctl enable openvpn@techoverflow

Für techoverflow.conf müssen Sie systemctl enable openvpn@techoverflow ausführen, während für eine hypothetische foo.conf Sie systemctl enable openvpn@foo ausführen müssten.

Nun können wir die VPN-Konfiguration starten – d.h. sofort ausführen mit

start_openvpn.sh
sudo systemctl start openvpn@techoverflow

Nun läuft Ihr VPN-Client oder -Server – oder? Wir sollten die Logs überprüfen mit

openvpn_journal.sh
journalctl -xfu openvpn@techoverflow

Um den VPN-Client oder -Server manuell neu zu starten, verwenden Sie

restart_openvpn.sh
sudo systemctl restart openvpn@techoverflow

und führen Sie ähnlich dies aus, um den VPN-Client oder -Server zu stoppen:

stop_openvpn.sh
sudo systemctl stop openvpn@techoverflow

Um anzuzeigen, ob die Instanz läuft – d.h. ihren Status anzeigen, verwenden Sie

openvpn_status.sh
sudo systemctl status openvpn@techoverflow

Beispielausgabe für einen OpenVPN-Client:

openvpn_example_output.txt
[email protected] - OpenVPN connection to techoverflow
     Loaded: loaded (/lib/systemd/system/[email protected]; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-11-29 03:37:52 CET; 953ms ago
       Docs: man:openvpn(8)
             https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
             https://community.openvpn.net/openvpn/wiki/HOWTO
   Main PID: 4123809 (openvpn)
     Status: "Pre-connection initialization successful"
      Tasks: 1 (limit: 18689)
     Memory: 1.3M
     CGroup: /system.slice/system-openvpn.slice/[email protected]
             └─4123809 /usr/sbin/openvpn --daemon ovpn-techoverflow --status /run/openvpn/techoverflow.status 10 --cd /etc/openvpn --script-security 2 --config /etc/ope>

Nov 29 03:37:52 localgrid systemd[1]: Starting OpenVPN connection to techoverflow...
Nov 29 03:37:52 localgrid ovpn-techoverflow[4123809]: OpenVPN 2.4.7 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Sep >
Nov 29 03:37:52 localgrid ovpn-techoverflow[4123809]: library versions: OpenSSL 1.1.1f  31 Mar 2020, LZO 2.10
Nov 29 03:37:52 localgrid systemd[1]: Started OpenVPN connection to techoverflow.
Nov 29 03:37:52 localgrid ovpn-techoverflow[4123809]: TCP/UDP: Preserving recently used remote address: [AF_INET]83.135.163.227:19011
Nov 29 03:37:52 localgrid ovpn-techoverflow[4123809]: UDPv4 link local (bound): [AF_INET][undef]:1194
Nov 29 03:37:52 localgrid ovpn-techoverflow[4123809]: UDPv4 link remote: [AF_INET]83.135.163.22:19011
Nov 29 03:37:53 localgrid ovpn-techoverflow[4123809]: [nas-vpn.haar.techoverflow.net] Peer Connection Initiated with [AF_INET]83.135.163.227:19011

Check out similar posts by category: Linux, VPN