Gå til indholdet

Konfigurationer til understøttelse af Kerberos-armoring

Advarsel!

For at Kerberos-armoring kan bruges, skal administratorkontiene placeres i gruppen Protected Users.
Det tvinger Kerberos-autentificeringsprotokollen til at blive brugt i stedet for NTLM. Den pågældende Edge Gateway skal først konfigureres til at understøtte Kerberos-autentificering.

Konfiguration af Edge Gateway til understøttelse af Kerberos-autentificering med konti placeret i Protected Users

Kerberos-armoring giver en yderligere kryptering af de indledende udvekslinger mellem klienten og KDC'en (Kerberos Domain Controller) ved hjælp af oplysninger, der er knyttet til en computerkonto.

CyberElements Bastion kører helst på Debian-maskiner, der ikke er tilknyttet et AD-domæne, hvilket betyder, at de ikke har oplysninger om en computerkonto i AD.
Konfigurationen til understøttelse af Kerberos-armoring består af to trin:

  • Oprettelse af en tjenestecomputerkonto i AD'et
  • Konfiguration af Kerberos-armoring på den pågældende Edge Gateway ud fra den tidligere oprettede konto

Oprettelse af en tjenestecomputerkonto

Information

På denne side bruges en tjenestekonto med navnet svc_cyberelements som eksempel. Tilpas følgende kommandoer efter navnet på din egen tjenestekonto.

Advarsel!

Hvis du vil bruge PAW-arbejdsstationer, skal du placere denne tjenestekonto i samme silo som de tilsigtede PAW-arbejdsstationer.

Begynd med fra domænecontrolleren at oprette en computerkonto med en adgangskode, der bruges til at generere Kerberos-tickets.

For at oprette denne konto kan du bruge følgende Powershell-kommando fra en domænecontroller (tilpas navnet på tjenestekontoen, i eksemplet svc_cyberelements, og den ønskede OU, i eksemplet OU=Service_accounts,DC=domain,DC=local, for at oprette tjenestekontoen):

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

Brug følgende kommando for at kontrollere, at computerkontoen er oprettet (erstat svc_cyberelements med navnet på den tidligere oprettede konto):

1
Get-ADComputer -Identity svc_cyberelements -Properties Enabled

Brug derefter Windows-værktøjet ktpass til at eksportere en keytab-fil, der indeholder de krypteringsnøgler, som gør det muligt for gatewayen at hente TGT'en.

Eksempel

Eksempel på oprettelse af en fil svc_cyberelements.keytab med computerkontoen:

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
Husk at angive symbolerne $ i slutningen af kontonavnene og at skrive domænenavnet med store bogstaver (påkrævet).

Bekræft eventuelle bekræftelsesforespørgsler, der måtte blive vist, ved at indtaste y.

Sæt derefter værdien af attributten UserPrincipalName på plads igen med følgende PowerShell-kommando:

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

Konfiguration af Kerberos-armoring på Edge Gateway

Hent den tidligere genererede fil keytab, og kopier den til Edge Gateway-serveren.
I en sammenhæng, hvor flere keytab-filer er genereret og skal bruges på samme Edge Gateway, skal du samle keytab-filerne i en enkelt fil.

Advarsel

Filen keytab indeholder krypteringsnøgler. Hvis en angriber får fat i den, kan angriberen udgive sig for den tilknyttede computerkonto og dermed forringe infrastrukturens sikkerhed.
Denne fil bør derfor ikke opbevares andre steder end på den pågældende Edge Gateway.

Placer filen i mappen /etc/ipdiva/cleanroom/.

Ændr ejerne af filen keytab til ipdivacareuser for brugeren og carerecord for gruppen, og ændr derefter filens tilladelser (tilpas keytab efter navnet på din egen fil):

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

Ændr konfigurationsfilen /etc/ipdiva/cleanroom/xrdprecord.ini på den pågældende Edge Gateway for via parameteren keytab= at angive stien til den tidligere forberedte fil keytab.

Eksempel

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

På dette stadie bør forbindelsen til privilegerede RDP-applikationer i tilstanden uden agent (HTML5 eller ikke) fungere med brugerkonti, der hører til Protected Users og derfor kræver stærk Kerberos-autentificering. Konfigurationen af RDP-applikationen skal opfylde visse forudsætninger.

Test af Kerberos-konfigurationen

Fejlsøgning

Følgende kinit-kommandoer kan give flere logs, når følgende kommando er kørt (gælder indtil SSH- eller konsolsessionen afbrydes):

1
export KRB5_TRACE=/dev/stdout

Lad os begynde med at hente et Kerberos-ticket med en kommando svarende til følgende:

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

Husk at erstatte placeringen af keytab-filen, navnet på den oprettede tjenestekonto og det tilknyttede domæne.

Hvis hentningen af Kerberos-ticketet lykkedes, bør følgende kommando vise, at der findes et ticket for tjenestekontoen:

1
klist -c /tmp/test_kerberos

Hvis hentningen lykkes, skal du derefter forsøge at hente et ticket for en bruger med en kommando svarende til følgende:

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

Erstat user@DOMAIN.LOCAL med en bruger, der forventes at forbinde via RDP og Kerberos-armoring. Bemærk, at denne brugers adgangskode bliver efterspurgt.
Hvis hentningen af ticketet lykkes, viser følgende kommando det:

1
klist -c

Hvis fejlen KDC policy rejects request while getting initial credentials vises, betyder det, at KDC'en har afvist ticketanmodningen. Mulige årsager:

  • kinit kunne ikke bruge ticketet /tmp/test_kerberos (hvis kinit ikke kan bruge det, fortsætter kommandoen uden fejlmeddelelse med en simpel ticketanmodning)
  • Tjenestekontoen findes ikke i siloen for den testede bruger. Det sker, når AD'et er opdelt i siloer, og kræver, at tjenestecomputerkontoen placeres i den rette silo.

Yderligere oplysninger findes i hændelsesloggene Security på den anvendte domænecontroller (KDC).

Efter testene anbefales det at slette de genererede tickets:

1
2
kdestroy
kdestroy -c /tmp/test_kerberos

Saml flere keytab-filer i en enkelt fil

Hvis arkitekturen i CyberElements Bastion bygger på en enkelt Edge Gateway, der skal give adgang for flere tredjeparter, er det nødvendigt at samle alle de keytab-filer, der er genereret til de forskellige tjenestekonti, i én enkelt keytab-fil.

Bemærk

I dette afsnit antages følgende keytab-filer: /root/t0.keytab, /root/t1.keytab og /root/t2.keytab. Disse filer skal på forhånd være sendt til den pågældende Edge Gateway.

For at flette keytab-filerne sammen skal du logge på den pågældende Edge Gateway som root og derefter bruge følgende kommandoer:

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

Med rkt-kommandoerne kan du indlæse så mange keytab-filer som nødvendigt, og kommandoen wkt genererer en ny keytab-fil.
Tilpas filstierne til dem, du selv råder over.

Tryk på tasten q for at forlade værktøjet ktutil.

Hent filen unified.keytab, og følg afsnittet Konfiguration af Kerberos-armoring på Edge Gateway.