NetworkManager ist ein Dienst, welcher die Netzwerkeinstellungen verwaltet. Standard auf den meisten Workstations.

Die Konfiguration läuft über das Kommandozeilenprogramm nmcli. Die Steuerung des Dienstes läuft über systemctl.

Status anzeigen

systemctl status NetworkManager
nmcli connection show

Konfiguration

Verbindungen unter NetworkManager können über zwei Arten konfiguriert werden. Entweder man schreibt die Konfigurationsdatei name-der-verbindung.nmconnection unter /etc/NetworkManager/system-connections/. Oder bearbeitet eine Verbindung über:

nmcli connection edit name-der-verbindung

Letzteres würde ich empfehlen, da über help und describe die Befehle und Konfigurationsparamter beschrieben werden können. Nach dem Konfigurieren über nmcli wird die Datei auch unter /etc/NetworkManager/system-connections gespeichert und kann dort im Nachhinein auch manuell verändert werden.

Statische IPv4-Adresse

nmcli connection edit "Wired connection 1"

Die folgenden Werte müssen für eine statische IPv4-Adresse gesetzt werden:

nmcli> print ipv4
['ipv4' setting values]
ipv4.method:                            manual
...
ipv4.addresses:                         xx.xx.xx.xx/xx
nmcli> set ipv4.addresses xx.xx.xx.xx/xx
Do you also want to set 'ipv4.method' to 'manual'? [yes]: yes
nmcli> save
Connection 'Wired connection 1' (6ee92dfa-2481-3947-a6b0-8c15f18b442d) successfully updated.
nmcli> quit

Die Konfiguration muss beim Beenden des Konfigurationprogramms gespeichert werden. Anschließend benötigt der NetworkManager-Dienst einen Neustart, um diese Konfiguration anzuwenden.

systemctl restart NetworkManager

OpenVPN

Vorraussetzung

nmcli kann ein .ovpn-Datei als Verbindung importieren.

nmcli connection import type openvpn file /pfad/zur/datei.ovpn

Dazu ist das Plugin networkmanager-openvpn nötig. Durch das Importieren werden viele Grundeinstellungen automatisch konfiguriert, sodass nur kleine Änderungen nötig sind, um den Dienst auf den gewünschten Stand zu bringen.

Konfiguration für Autostart beim Boot

Damit die NetworkManager eine OpenVPN-Verbindung mit Passwortauthentifizierung starten kann, benötigt es folgende zusätzliche Felder unter /etc/NetworkManager/system-connections/name-der-verbindung.ovpn.

cd /etc/NetworkManager/system-connections/
cat name-der-verbindung.ovpn
...
[vpn]
...
password-flags=0
...
username=name-des-users
...
[vpn-secrets]
password=password-des-users
...

Überprüfen mit:

nmcli connection show name-der-vpn
nmcli connection up name-der-vpn

Im Moment muss die Verbindung noch manuell gestartet werden. Die Optionen vpn.persistent, connection.autoconnect und connection.autoconnect-retries bringen jedoch für OpenVPN nichts. Der Sart kann jedoch über die Optionn connection.secondaries der Hauptverbindung angestoßen werden.

cat "/etc/NetworkManager/system-connections/Kabelgebundene Verbindung 1.nmconnection"
...
[connection]
secondaries=uuid-der-ovpn-verbindung
...

Firewall

Falls nftables als verwendet wird muss iifname/oifname statt iif/oif beim matchen des tun0-Interfaces geschrieben werden. Dadurch wird nicht gegen den eigentlichen Index der Netzwerkschnittstelle gesucht, sondern ein einfacher String-Vergleich beim Untersuchen des Paketes. Mit iif/oif muss nftables sicherstellen, dass das Interface auch wirklich existiert. Ansonsten schlägt der Start des Dienstes fehl.