Installation des Linux-Agenten¶
Der Linux-Agent wird von CyberElements Bastion verwendet, um die möglichen Netzwerkzugriffe von den SSH-Servern aus zu begrenzen, auf die die Benutzer zugreifen (in den Zugriffsrichtlinien bzw. Zugriffsverträgen definiert).
Voraussetzungen¶
Damit der Agent ordnungsgemäß funktioniert, sind einige Voraussetzungen erforderlich:
- Kompatible Betriebssysteme: Red Hat 9 und Debian 12
- Vorhandensein der Firewall
iptables - Anmeldung mit einem anderen Konto als
root
Hinweis
Der Linux-Agent wirkt nicht auf den Benutzer root, da dieser stets über ausreichende Rechte verfügt, um jede auf ihn angewendete Einschränkung wieder aufzuheben.
Da einige Dienste zudem mit root-Rechten arbeiten, könnten zusätzliche Netzwerkeinschränkungen diese Dienste instabil machen.
Funktionsweise¶
Der Linux-Agent gliedert sich in mehrere Bestandteile:
- Einen systemd-Dienst namens
cleanroom-filter - Ein PAM-Modul namens
pam_clr_filter - Eine SELinux-Richtlinie für Red Hat, die dem SSH-Server die Kommunikation mit dem Dienst
cleanroom-filtererlaubt
Der allgemeine Ablauf ist folgender:
sequenceDiagram
autonumber
participant MED as Mediation Controller
participant GW_SSH as Edge Gateway<br/>SSH-Aufzeichnung
participant SSH as SSH-Ziel<br/>SSH-Server
participant PAM as SSH-Ziel<br/>PAM-Modul pam_clr_filter
participant svc as SSH-Ziel<br/>Dienst cleanroom-filter
MED->>GW_SSH: Anfrage zum Öffnen einer<br/>SSH-Anwendung
GW_SSH->>+MED: Abrufen der Filterinformationen<br/>für die Sitzung
MED->>-GW_SSH: Senden der Netzwerk-<br/>Filterinformationen
GW_SSH->>+SSH: SSH-Verbindung
SSH-->-PAM: Erstellung einer SSH-Sitzung
PAM->>+svc: Senden des Benutzernamens
Note right of svc: Erstellen einer iptables-Kette <br/>für den Benutzer mit dem Namen clr-LOGIN
svc->>-PAM: Senden eines eindeutigen Tokens
Note over PAM: Hinzufügen der Umgebungsvariablen<br/> CLR-ID mit dem eindeutigen Token<br/> zur Sitzung des Benutzers
GW_SSH->>svc: Senden der Liste der zu autorisierenden Netzwerke
Note over svc: Erstellen einer iptables-OUTPUT-Regel,<br/> um den Verkehr des Benutzers in die zuvor<br/> erstellte iptables-Kette umzuleiten
Note over svc: Hinzufügen der Autorisierungen zur<br/> iptables-Kette des Benutzers
break Ende der SSH-Sitzung
SSH->>+GW_SSH: Benachrichtigung über das Sitzungsende
SSH-->svc: Erkennung des Endes der SSH-Sitzung
Note over svc: Löschen der iptables-OUTPUT-<br/>Regel des Benutzers
Note over svc: Löschen der iptables-Kette,<br/> die für den Benutzer erstellt wurde
GW_SSH->>-MED: Benachrichtigung über das Ende<br/> der SSH-Sitzung des Benutzers
end
- Der Server Mediation Controller sendet dem Edge Gateway die Informationen zum Öffnen einer neuen SSH-Sitzung.
- Der SSH-Aufzeichnungsdienst fragt beim Server Mediation Controller die Informationen zur Netzwerkfilterung ab, die auf die SSH-Sitzung anzuwenden sind.
- Der Mediation Controller antwortet mit einer Liste der zugelassenen Netzwerke.
- Der SSH-Aufzeichnungsdienst baut daraufhin die Verbindung zum SSH-Zielserver auf.
- Die Verbindung zum SSH-Server löst die Folge der Sitzungserstellung aus und damit den Durchlauf durch die
sshdzugewiesenen PAM-Module. - Das PAM-Modul
pam_clr_filterdes Linux-Agenten sendet den Benutzernamen an den Dienstcleanroom-filter, der daraufhin eine neue iptables-Kette namensclr-LOGINanlegt, wobei LOGIN durch den empfangenen Benutzernamen ersetzt wird. - Nach dem Anlegen der iptables-Kette erzeugt der Dienst
cleanroom-filterein zufälliges Token und sendet es an das PAM-Modulpam_clr_filter. Dieses fügt das Token der UmgebungsvariablenCLR-IDdes Benutzers hinzu. - Der SSH-Aufzeichnungsdienst sendet über die ausführbare Datei
/usr/local/ipdiva/bin/cleanroom-netfiltersession.pydie Liste der zuzulassenden Netzwerke an den Dienstcleanroom-filter. Dieser legt daraufhin eine iptables-RegelOUTPUTan, um den gesamten Verkehr des über seine UID identifizierten Benutzers in die in Schritt 6 angelegte iptables-Kette umzuleiten. Alle für den Benutzer zuzulassenden Flüsse werden der iptables-Kette hinzugefügt. - Wird das Ende der SSH-Sitzung ausgelöst, wird die Information an den SSH-Aufzeichnungsdienst des Edge Gateway gesendet.
- Der Dienst
cleanroom-filtererkennt das Ende der Benutzersitzung und räumt die hinzugefügten iptables-Regeln auf: Er löscht die DirektiveOUTPUT, die den Verkehr des Benutzers in eine iptables-Kette umleitet, und löscht die Kette selbst. - Sobald das Edge Gateway das Ende der SSH-Sitzung empfangen hat, leitet es diese Information an den Mediation Controller weiter.
Installation¶
Erforderliche root-Rechte
Für die Installation des Agenten sind root-Rechte erforderlich.
Das Paket .deb oder .rpm kann aus der Administrationskonsole heruntergeladen werden:
- Rufen Sie den Arbeitsbereich „Configurations“ über die Schaltfläche oben links auf:

- Öffnen Sie die Kachel „Toolbox“

- Wählen Sie auf der ersten Registerkarte „Integration Tools“ das für das gewünschte Betriebssystem passende Installationsprogramm aus

Übertragen Sie das Paket nach dem Herunterladen in das Verzeichnis /tmp/ des Linux-Servers. Folgen Sie anschließend den Installationsanweisungen für Ihr Betriebssystem:
Führen Sie die folgenden Befehle mit den entsprechenden root-Rechten aus:
1 2 | |
Der zweite Befehl fügt der Datei /etc/pam.d/sshd automatisch zwei Zeilen hinzu; dieser Vorgang kann aber auch manuell durchgeführt werden:
27 28 29 30 31 32 33 34 35 36 37 | |
Führen Sie die folgenden Befehle mit root-Rechten aus:
1 2 | |
Der zweite Befehl fügt der Datei /etc/pam.d/sshd automatisch zwei Zeilen hinzu; dieser Vorgang kann aber auch manuell durchgeführt werden:
11 12 13 14 15 16 17 | |