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.