NetBird SSH-Server unter Oracle Linux
NetBird bringt einen integrierten SSH-Server für den Zugriff über das private NetBird-Netz mit. Diese Anleitung setzt voraus, dass NetBird auf Server und Client installiert ist und beide Peers verbunden sind. Verwende für die hier beschriebene Zugriffskontrolle NetBird ab Version 0.61.0 und einen kompatiblen Management-Server.
Oracle Linux und SELinux
Oracle Linux verwendet standardmässig SELinux im Modus enforcing. Je nach Installation und Sicherheitskontext kann SELinux den NetBird-SSH-Prozess oder einzelne Aktionen einer Sitzung blockieren. Ein fehlgeschlagener SSH-Login allein belegt diese Ursache noch nicht.
Prüfe den Modus und suche direkt nach einem fehlgeschlagenen Verbindungsversuch nach passenden AVC-Meldungen:
1 2 | |
Ordne die Meldungen anhand von Zeitpunkt, Prozess und betroffenem Pfad dem Verbindungsversuch zu. Falls ausearch fehlt, gehört es unter Oracle Linux zum Paket audit.
Schritt 1: SELinux dauerhaft konfigurieren
Für den beschriebenen Workaround stelle SELinux auf permissive: Es bleibt aktiv und protokolliert Regelverletzungen, verhindert die betreffenden Aktionen aber nicht mehr.
Gilt für das gesamte System
permissive setzt die Durchsetzung aller SELinux-Regeln aus, nicht nur für NetBird. Für einen dauerhaft abgesicherten Betrieb ist eine gezielte Korrektur der betroffenen SELinux-Kontexte bzw. Policy mit anschliessender Rückkehr zu enforcing vorzuziehen.
-
Öffne die Konfigurationsdatei:
1sudo nano /etc/selinux/configFalls
nanofehlt, verwendesudo vi /etc/selinux/config. -
Suche die Zeile
SELINUX=enforcingund ändere sie auf:1SELINUX=permissiveLasse
SELINUXTYPEunverändert. Speichere in Nano mit Ctrl+O, bestätige mit Enter und beende den Editor mit Ctrl+X. -
Übernimm den Modus auch für das laufende System:
1 2
sudo setenforce 0 getenforceErwartete Ausgabe:
Permissive. Die Datei legt den Modus nach einem Neustart fest;setenforcewirkt sofort, allein aber nur bis zum nächsten Neustart. -
Prüfe nach dem nächsten geplanten Neustart erneut mit
getenforce, obPermissiveaktiv ist.
Falls SELinux bereits deaktiviert ist
Bei der Ausgabe Disabled funktioniert setenforce nicht. Die erneute Aktivierung benötigt einen Neustart und gegebenenfalls eine Dateisystem-Neukennzeichnung; dieser Fall ist nicht der hier beschriebene Wechsel von enforcing zu permissive.
Details zu den Modi: Oracle Linux – SELinux verwalten.
Schritt 2: NetBird SSH aktivieren und Zugriff erlauben
Aktiviere auf dem Oracle-Linux-Server den integrierten SSH-Server:
1 | |
Aktiviere SSH zusätzlich für den Ziel-Peer im NetBird-Dashboard. Erstelle unter Access Control eine Richtlinie mit dem Protokoll NetBird SSH, den gewünschten Quellen und dem Server als Ziel. Ordne unter Limited Access die berechtigten Benutzergruppen einem vorhandenen lokalen Konto zu, beispielsweise opc. Prüfe zuvor auf dem Server:
1 | |
Lasse die standardmässige JWT-Authentifizierung aktiviert. Die Konfiguration betrifft den eingebauten NetBird-SSH-Server; Änderungen an /etc/ssh/sshd_config konfigurieren dagegen OpenSSH.
Schritt 3: Verbindung testen
Führe auf dem Client Folgendes aus und ersetze die Beispieladresse durch die NetBird-IP des Servers sowie opc durch das erlaubte lokale Konto:
1 | |
Schliesse die angeforderte Anmeldung beim Identity Provider ab. Die Einrichtung und Zugriffskontrolle sind in der NetBird-Dokumentation zu SSH beschrieben.
Fehler eingrenzen
Prüfe auf dem Server Dienst und Protokoll:
1 2 | |
Wenn die Verbindung auch unter permissive scheitert, prüfe zusätzlich Peer-Verbindung, SSH-Freigabe im Dashboard, Richtlinie und lokales Benutzerkonto. SELinux ist dann nicht als alleinige Ursache bestätigt.
Zurück zu SELinux enforcing
Nach Behebung der konkreten SELinux-Ursache ändere in /etc/selinux/config die Zeile wieder auf SELINUX=enforcing. Aktiviere die Durchsetzung sofort:
1 2 | |
Erwartet wird Enforcing. Teste anschliessend eine neue NetBird-SSH-Verbindung und prüfe erneut die AVC-Meldungen.