Ga naar inhoud

Configuraties voor de ondersteuning van Kerberos armoring

Waarschuwing!

Om Kerberos armoring te gebruiken, moeten de beheerdersaccounts in de groep Protected Users worden geplaatst.
Daardoor wordt het authenticatieprotocol Kerberos gebruikt in plaats van NTLM. De Edge Gateway moet eerst worden geconfigureerd voor de ondersteuning van Kerberos-authenticatie.

De Edge Gateway configureren voor de ondersteuning van Kerberos-authenticatie met accounts die in Protected Users zijn geplaatst

Kerberos armoring biedt een aanvullende versleuteling van de eerste uitwisselingen tussen de client en de KDC (Kerberos Domain Controller), op basis van informatie die aan een computeraccount is gekoppeld.

CyberElements werkt bij voorkeur op Debian-machines die niet met een AD-domein zijn verbonden, wat betekent dat zij over geen enkele informatie over een computeraccount in de AD beschikken.
De configuratie voor de ondersteuning van Kerberos armoring bestaat uit twee stappen:

  • Het aanmaken van een computeraccount voor de service in de AD
  • Het configureren van Kerberos armoring op de Edge Gateway op basis van het eerder aangemaakte account

Een computeraccount voor de service aanmaken

Informatie

Op deze pagina wordt als voorbeeld een serviceaccount met de naam svc_cyberelements gebruikt. Pas de volgende opdrachten aan de naam van uw serviceaccount aan.

Waarschuwing!

Als u PAW-werkstations wilt gebruiken, plaats dit serviceaccount dan in hetzelfde silo als de PAW-doelwerkstations.

Maak vanaf de domeincontroller eerst een computeraccount aan met een wachtwoord dat wordt gebruikt om de Kerberos-tickets te genereren.

Om dit account aan te maken, kunt u vanaf een domeincontroller de volgende Powershell-opdracht gebruiken (pas de naam van het serviceaccount, in het voorbeeld svc_cyberelements, en de gewenste OU, in het voorbeeld OU=Service_accounts,DC=domain,DC=local, aan om het serviceaccount aan te maken):

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

Gebruik de volgende opdracht om te controleren of het computeraccount is aangemaakt (vervang svc_cyberelements door de naam van het eerder aangemaakte account):

1
Get-ADComputer -Identity svc_cyberelements -Properties Enabled

Gebruik daarna het Windows-hulpmiddel ktpass om een keytab-bestand te exporteren dat de versleutelingssleutels bevat waarmee de gateway het TGT kan ophalen.

Voorbeeld

Voorbeeld van het aanmaken van een bestand svc_cyberelements.keytab met het computeraccount:

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
Vergeet niet de symbolen $ aan het einde van de accountnamen op te nemen en de domeinnaam in hoofdletters te schrijven (verplicht).

Accepteer de eventuele bevestigingsverzoeken door y in te voeren.

Stel daarna de waarde van het attribuut UserPrincipalName opnieuw in met de volgende PowerShell-opdracht:

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

Kerberos armoring op de Edge Gateway configureren

Haal het eerder gegenereerde bestand keytab op en kopieer het naar de Edge Gateway-server.
In een context waarin meerdere bestanden keytab zijn gegenereerd en op dezelfde Edge Gateway moeten worden gebruikt, voegt u de bestanden keytab samen in één enkel bestand.

Waarschuwing

Het bestand keytab bevat versleutelingssleutels. Als een aanvaller het in handen krijgt, kan hij zich voordoen als het bijbehorende computeraccount en zo de veiligheid van de infrastructuur verminderen.
Dit bestand mag daarom nergens anders worden bewaard dan op de Edge Gateway.

Plaats het bestand in de map /etc/ipdiva/cleanroom/.

Wijzig de eigenaren van het bestand keytab naar ipdivacareuser voor de gebruiker en carerecord voor de groep, en wijzig daarna de rechten van het bestand (pas de naam van het bestand keytab aan uw eigen bestand aan):

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

Wijzig het configuratiebestand /etc/ipdiva/cleanroom/xrdprecord.ini van de Edge Gateway om via de parameter keytab= het pad naar het eerder voorbereide bestand keytab op te geven.

Voorbeeld

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

In dit stadium zou de verbinding met geprivilegieerde RDP-applicaties in de modus zonder agent (HTML5 of niet) moeten werken met gebruikersaccounts die tot Protected Users behoren en die daardoor een sterke Kerberos-authenticatie vereisen. De configuratie van de RDP-applicatie moet aan bepaalde voorwaarden voldoen.

De Kerberos-configuratie testen

Foutopsporing

De volgende opdrachten kinit kunnen meer logs opleveren nadat de volgende opdracht is uitgevoerd (geldig totdat de SSH- of consolesessie wordt verbroken):

1
export KRB5_TRACE=/dev/stdout

Begin met het ophalen van een Kerberos-ticket met een opdracht die vergelijkbaar is met de volgende:

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

Vergeet niet de locatie van het keytab-bestand, de naam van het aangemaakte serviceaccount en het bijbehorende domein te vervangen.

Als het ophalen van het Kerberos-ticket is gelukt, zou de volgende opdracht het bestaan van een ticket voor het serviceaccount moeten aangeven:

1
klist -c /tmp/test_kerberos

Als het ophalen lukt, moet worden geprobeerd een ticket voor een gebruiker op te halen met een opdracht die vergelijkbaar is met de volgende:

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

Vervang user@DOMAIN.LOCAL door een gebruiker die zich waarschijnlijk via RDP en Kerberos armoring verbindt. Let erop dat het wachtwoord van deze gebruiker wordt gevraagd.
Als het ophalen van het ticket lukt, geeft de volgende opdracht het weer:

1
klist -c

Als de fout KDC policy rejects request while getting initial credentials wordt weergegeven, betekent dit dat de KDC de ticketaanvraag heeft geweigerd. Mogelijke oorzaken:

  • kinit kon het ticket /tmp/test_kerberos niet gebruiken (als kinit het niet kan gebruiken, gaat het zonder foutmelding verder met een eenvoudige ticketaanvraag)
  • Het serviceaccount is niet aanwezig in het silo van de geteste gebruiker. Dat komt voor wanneer de AD in silo's is opgedeeld, en vereist dat het computeraccount voor de service in het juiste silo wordt geplaatst.

Aanvullende informatie is te vinden in de gebeurtenislogs Security van de gebruikte domeincontroller (KDC).

Na de tests wordt aanbevolen de gegenereerde tickets te verwijderen:

1
2
kdestroy
kdestroy -c /tmp/test_kerberos

Meerdere keytab-bestanden in één enkel bestand samenvoegen

Als de CyberElements-architectuur is gebaseerd op één enkele Edge Gateway die toegang tot meerdere derde partijen geeft, moeten alle bestanden keytab die voor de verschillende serviceaccounts zijn gegenereerd, in één enkel bestand keytab worden samengevoegd.

Opmerking

In deze sectie wordt uitgegaan van de volgende keytab-bestanden: /root/t0.keytab, /root/t1.keytab en /root/t2.keytab. Deze bestanden moeten naar de Edge Gateway zijn verzonden.

Om de bestanden keytab samen te voegen, meldt u zich als root aan bij de Edge Gateway en gebruikt u daarna de volgende opdrachten:

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

Met de opdrachten rkt kunt u zoveel bestanden keytab laden als nodig is, en de opdracht wkt genereert een nieuw bestand keytab.
Pas de paden van de bestanden aan die van uzelf aan.

Druk op de toets q om het hulpmiddel ktutil te verlaten.

Haal het bestand unified.keytab op en volg de sectie Kerberos armoring op de Edge Gateway configureren.