Gå till innehållet

Konfigurationer för stöd för Kerberos shielding

Varning!

För att Kerberos shielding ska användas måste administratörskontona placeras i gruppen Protected Users.
Detta tvingar användningen av autentiseringsprotokollet Kerberos i stället för NTLM. Edge Gateway måste först konfigureras för att stödja Kerberos-autentisering.

Konfigurera Edge Gateway för stöd för Kerberos-autentisering med konton placerade i Protected Users

Kerberos shielding ger en ytterligare kryptering av de inledande utbytena mellan klienten och KDC:n (Kerberos Domain Controller) med hjälp av information som är kopplad till ett datorkonto.

CyberElements Bastion körs helst på Debian-maskiner som inte är anslutna till en AD-domän, vilket innebär att de inte har någon information om datorkonto i AD.
Konfigurationen för stöd för Kerberos shielding består av två steg:

  • Skapa ett tjänstdatorkonto i AD
  • Konfigurera Kerberos shielding på Edge Gateway utifrån det tidigare skapade kontot

Skapa ett tjänstdatorkonto

Information

På denna sida används ett tjänstkonto med namnet svc_cyberelements som exempel. Anpassa följande kommandon efter namnet på ditt tjänstkonto.

Varning!

Om du vill använda PAW-arbetsstationer placerar du detta tjänstkonto i samma silo som de PAW-arbetsstationer som avses.

Börja från domänkontrollanten med att skapa ett datorkonto med ett lösenord som används för att generera Kerberos-biljetter.

För att skapa detta konto kan du använda följande Powershell-kommando från en domänkontrollant (anpassa namnet på tjänstkontot, i exemplet svc_cyberelements, och den önskade OU:n, i exemplet OU=Service_accounts,DC=domain,DC=local, för att skapa tjänstkontot):

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

Använd följande kommando för att kontrollera att datorkontot har skapats (ersätt svc_cyberelements med namnet på det konto som skapades tidigare):

1
Get-ADComputer -Identity svc_cyberelements -Properties Enabled

Använd sedan Windows-verktyget ktpass för att exportera en keytab-fil som innehåller de krypteringsnycklar som gör det möjligt för gatewayen att hämta TGT:n.

Exempel

Exempel på hur en fil svc_cyberelements.keytab skapas med datorkontot:

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
Kom ihåg att ange symbolerna $ i slutet av kontonamnen och att skriva domännamnet med versaler (krävs).

Bekräfta eventuella bekräftelsefrågor som visas genom att ange y.

Sätt sedan om värdet för attributet UserPrincipalName med följande PowerShell-kommando:

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

Konfigurera Kerberos shielding på Edge Gateway

Hämta den tidigare genererade filen keytab och kopiera den till Edge Gateway-servern.
I ett sammanhang där flera filer keytab har genererats och måste användas på samma Edge Gateway, sammanfoga filerna keytab till en enda fil.

Varning

Filen keytab innehåller krypteringsnycklar. Om en angripare kommer över den kan denne utge sig för att vara det tillhörande datorkontot och därigenom minska infrastrukturens säkerhet.
Denna fil bör därför inte lagras någon annanstans än på Edge Gateway.

Placera filen i katalogen /etc/ipdiva/cleanroom/.

Ändra ägarna till filen keytab till ipdivacareuser för användaren och carerecord för gruppen, och ändra sedan filens behörigheter (anpassa filen keytab efter namnet på din egen fil):

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

Ändra Edge Gateways konfigurationsfil /etc/ipdiva/cleanroom/xrdprecord.ini för att via parametern keytab= ange sökvägen till den fil keytab som förberetts tidigare.

Exempel

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

I detta skede bör anslutningen till privilegierade RDP-applikationer i agentlöst läge (HTML5 eller inte) fungera med användarkonton som tillhör Protected Users och därför kräver stark Kerberos-autentisering. Konfigurationen av RDP-applikationen måste uppfylla vissa förutsättningar.

Testa Kerberos-konfigurationen

Felsökning

Följande kommandon kinit kan ge fler loggar efter att följande kommando har körts (gäller till dess att SSH- eller konsolsessionen kopplas ner):

1
export KRB5_TRACE=/dev/stdout

Vi börjar med att hämta en Kerberos-biljett med ett kommando liknande följande:

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

Se till att ersätta platsen för keytab-filen, namnet på det tjänstkonto som skapades och dess tillhörande domän.

Om hämtningen av Kerberos-biljetten lyckades bör följande kommando visa att det finns en biljett för tjänstkontot:

1
klist -c /tmp/test_kerberos

Om hämtningen lyckas måste du försöka hämta en biljett för en användare med ett kommando liknande följande:

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

Ersätt user@DOMAIN.LOCAL med en användare som sannolikt kommer att ansluta via RDP och Kerberos armoring. Observera att denna användares lösenord efterfrågas.
Om hämtningen av biljetten lyckas visar följande kommando den:

1
klist -c

Om felet KDC policy rejects request while getting initial credentials visas betyder det att KDC:n har nekat biljettbegäran. Möjliga orsaker:

  • kinit kunde inte använda biljetten /tmp/test_kerberos (om kinit inte kan använda den fortsätter den utan felmeddelande med en enkel biljettbegäran)
  • Tjänstkontot finns inte i den testade användarens silo. Detta inträffar när AD är uppdelat i silor och kräver att tjänstdatorkontot placeras i lämpligt silo.

Ytterligare information finns i händelseloggarna Security för den domänkontrollant (KDC) som används.

Efter testerna rekommenderas att de genererade biljetterna tas bort:

1
2
kdestroy
kdestroy -c /tmp/test_kerberos

Sammanfoga flera keytab-filer till en enda fil

Om arkitekturen i CyberElements Bastion bygger på en enda Edge Gateway som ska ge åtkomst för flera tredje parter måste alla keytab-filer som genererats för de olika tjänstekontona slås samman till en enda keytab-fil.

Obs

I detta avsnitt förutsätts följande keytab-filer: /root/t0.keytab, /root/t1.keytab och /root/t2.keytab. Dessa filer måste ha skickats till Edge Gateway.

För att sammanfoga filerna keytab, logga in på Edge Gateway som root och använd sedan följande kommandon:

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

Med kommandona rkt kan du läsa in så många keytab-filer som behövs, och kommandot wkt genererar en ny keytab-fil.
Anpassa filsökvägarna efter dem du har tillgång till.

Tryck på tangenten q för att lämna verktyget ktutil.

Hämta filen unified.keytab och följ avsnittet Konfigurera Kerberos shielding på Edge Gateway.