Zum Inhalt

Konfigurationen für die Unterstützung von Kerberos-Armoring

Achtung!

Damit Kerberos-Armoring verwendet wird, müssen die Administratorkonten in die Gruppe Protected Users aufgenommen werden.
Dadurch wird erzwungen, dass das Authentifizierungsprotokoll Kerberos anstelle von NTLM verwendet wird. Das Edge Gateway muss zuvor für die Unterstützung der Kerberos-Authentifizierung konfiguriert werden.

Das Edge Gateway für die Unterstützung der Kerberos-Authentifizierung mit Konten in Protected Users konfigurieren

Kerberos-Armoring bietet eine zusätzliche Verschlüsselung der ersten Austausche zwischen dem Client und dem KDC (Kerberos Domain Controller) anhand von Informationen, die mit einem Computerkonto verknüpft sind.

CyberElements Bastion läuft vorzugsweise auf Debian-Maschinen, die keiner AD-Domäne angehören, was bedeutet, dass es über keine Computerkontoinformationen im AD verfügt.
Die Konfiguration für die Unterstützung von Kerberos-Armoring besteht aus zwei Schritten:

  • Die Erstellung eines Dienstcomputerkontos im AD
  • Die Konfiguration des Kerberos-Armoring auf dem Edge Gateway anhand des zuvor erstellten Kontos

Ein Dienstcomputerkonto erstellen

Hinweis

Auf dieser Seite wird als Beispiel ein Dienstkonto mit dem Namen svc_cyberelements verwendet. Passen Sie die folgenden Befehle an den Namen Ihres Dienstkontos an.

Achtung!

Wenn Sie PAW-Arbeitsstationen verwenden möchten, legen Sie dieses Dienstkonto in dasselbe Silo wie die Ziel-PAW-Arbeitsstationen.

Erstellen Sie vom Domänencontroller aus zunächst ein Computerkonto mit einem Kennwort, das zur Erzeugung der Kerberos-Tickets verwendet wird.

Um dieses Konto zu erstellen, können Sie von einem Domänencontroller aus den folgenden Powershell-Befehl verwenden (passen Sie den Namen des Dienstkontos, im Beispiel svc_cyberelements, und die gewünschte OU, im Beispiel OU=Service_accounts,DC=domain,DC=local, an, um das Dienstkonto zu erstellen):

1
New-ADComputer -Name svc_cyberelements -SAMAccountName 'svc_cyberelements$' -AccountPassword $Null -Path 'OU=Service_accounts,DC=domain,DC=local'-KerberosEncryptionType AES256 -PasswordNeverExpires $True -Enabled $True

Verwenden Sie den folgenden Befehl, um zu prüfen, ob das Computerkonto erstellt wurde (ersetzen Sie svc_cyberelements durch den Namen des zuvor erstellten Kontos):

1
Get-ADComputer -Identity svc_cyberelements -Properties Enabled

Verwenden Sie anschließend das Windows-Werkzeug ktpass, um eine keytab-Datei zu exportieren, die die Verschlüsselungsschlüssel enthält, mit denen das Gateway das TGT abrufen kann.

Beispiel

Beispiel für die Erstellung einer Datei svc_cyberelements.keytab mit dem Computerkonto:

1
ktpass /princ 'svc_cyberelements$@DOMAIN.LOCAL' /mapuser 'svc_cyberelements$@DOMAIN.LOCAL' +rndPass /out svc_cyberelements.keytab /crypto AES256-SHA1 /ptype KRB5_NT_SRV_HST /mapop set
Denken Sie daran, die Symbole $ am Ende der Kontonamen anzugeben und den Domänennamen in Großbuchstaben zu schreiben (erforderlich).

Bestätigen Sie eventuell erscheinende Rückfragen durch Eingabe von y.

Setzen Sie anschließend den Wert des Attributs UserPrincipalName mit dem folgenden PowerShell-Befehl neu:

1
Set-ADComputer 'svc_cyberelements$' -UserPrincipalName 'svc_cyberelements$@DOMAIN.LOCAL'

Kerberos-Armoring auf dem Edge Gateway konfigurieren

Rufen Sie die zuvor erzeugte Datei keytab ab und kopieren Sie sie auf den Edge-Gateway-Server.
In einem Kontext, in dem mehrere Dateien keytab erzeugt wurden und auf demselben Edge Gateway verwendet werden müssen, fassen Sie die Dateien keytab in einer einzigen Datei zusammen.

Achtung

Die Datei keytab enthält Verschlüsselungsschlüssel. Gelangt ein Angreifer in ihren Besitz, kann er sich als das zugehörige Computerkonto ausgeben und so die Sicherheit der Infrastruktur verringern.
Diese Datei sollte daher an keinem anderen Ort als auf dem Edge Gateway aufbewahrt werden.

Legen Sie die Datei im Verzeichnis /etc/ipdiva/cleanroom/ ab.

Ändern Sie die Eigentümer der Datei keytab auf ipdivacareuser für den Benutzer und carerecord für die Gruppe und ändern Sie anschließend die Berechtigungen der Datei (passen Sie den Namen der Datei keytab an Ihre eigene Datei an):

1
2
chown ipdivacareuser:carerecord /etc/ipdiva/cleanroom/svc_cyberelements.keytab
chmod 640 /etc/ipdiva/cleanroom/svc_cyberelements.keytab

Ändern Sie die Konfigurationsdatei /etc/ipdiva/cleanroom/xrdprecord.ini des Edge Gateway, um über den Parameter keytab= den Pfad zu der zuvor vorbereiteten Datei keytab anzugeben.

Beispiel

2
keytab=/etc/ipdiva/cleanroom/svc_cyberelements.keytab

In diesem Stadium sollte die Verbindung zu privilegierten RDP-Anwendungen im agentenlosen Modus (HTML5 oder nicht) mit Benutzerkonten funktionieren, die zu Protected Users gehören und daher eine starke Kerberos-Authentifizierung erfordern. Die Konfiguration der RDP-Anwendung muss bestimmte Voraussetzungen erfüllen.

Die Kerberos-Konfiguration testen

Debugging

Die folgenden Befehle kinit können nach der Ausführung des folgenden Befehls mehr Protokolle liefern (gültig bis zur Trennung der SSH- oder Konsolensitzung):

1
export KRB5_TRACE=/dev/stdout

Beginnen wir damit, ein Kerberos-Ticket mit einem Befehl ähnlich dem Folgenden abzurufen:

1
kinit -k -t /etc/ipdiva/cleanroom/svc_cyberelements.keytab 'svc_cyberelements$@DOMAIN.LOCAL' -c /tmp/test_kerberos

Achten Sie darauf, den Speicherort der keytab-Datei, den Namen des erstellten Dienstkontos und die zugehörige Domäne zu ersetzen.

Wenn der Abruf des Kerberos-Tickets erfolgreich war, sollte der folgende Befehl das Vorhandensein eines Tickets für das Dienstkonto anzeigen:

1
klist -c /tmp/test_kerberos

Wenn der Abruf erfolgreich ist, muss versucht werden, ein Ticket für einen Benutzer mit einem Befehl ähnlich dem Folgenden abzurufen:

1
kinit -T /tmp/test_kerberos user@DOMAIN.LOCAL

Ersetzen Sie user@DOMAIN.LOCAL durch einen Benutzer, der sich voraussichtlich per RDP und Kerberos-Armoring verbindet. Beachten Sie, dass das Kennwort dieses Benutzers angefordert wird.
Wenn der Abruf des Tickets erfolgreich ist, zeigt der folgende Befehl es an:

1
klist -c

Wenn der Fehler KDC policy rejects request while getting initial credentials angezeigt wird, bedeutet das, dass der KDC die Ticketanforderung abgelehnt hat. Mögliche Ursachen:

  • kinit konnte das Ticket /tmp/test_kerberos nicht verwenden (kann kinit es nicht verwenden, fährt es ohne Fehlermeldung mit einer einfachen Ticketanforderung fort)
  • Das Dienstkonto ist nicht im Silo des getesteten Benutzers vorhanden. Das tritt auf, wenn das AD in Silos aufgeteilt ist, und erfordert, dass das Dienstcomputerkonto in das passende Silo gelegt wird.

Zusätzliche Informationen finden sich in den Ereignisprotokollen Security des verwendeten Domänencontrollers (KDC).

Nach den Tests wird empfohlen, die erzeugten Tickets zu löschen:

1
2
kdestroy
kdestroy -c /tmp/test_kerberos

Mehrere keytab-Dateien in einer einzigen Datei zusammenfassen

Wenn die Architektur CyberElements Bastion auf einem einzigen Edge Gateway beruht, das den Zugriff für mehrere Dritte ermöglicht, müssen alle für die verschiedenen Dienstkonten erzeugten keytab-Dateien in einer einzigen keytab-Datei zusammengeführt werden.

Hinweis

In diesem Abschnitt werden die folgenden keytab-Dateien vorausgesetzt: /root/t0.keytab, /root/t1.keytab und /root/t2.keytab. Diese Dateien müssen zuvor an das Edge Gateway übertragen worden sein.

Um die keytab-Dateien zusammenzuführen, melden Sie sich am Edge Gateway als root an und verwenden Sie anschließend die folgenden Befehle:

1
2
3
4
5
ktutil
rkt /root/t0.keytab
rkt /root/t1.keytab
rkt /root/t2.keytab
wkt /root/unified.keytab

Mit den rkt-Befehlen lassen sich beliebig viele keytab-Dateien laden, und der Befehl wkt erzeugt eine neue keytab-Datei.
Passen Sie die Dateipfade an die Ihnen vorliegenden an.

Drücken Sie die Taste q, um das Werkzeug ktutil zu verlassen.

Rufen Sie die Datei unified.keytab ab und folgen Sie dem Abschnitt Kerberos-Armoring auf dem Edge Gateway konfigurieren.