Preskočiť na obsah

Konfigurácie na podporu mechanizmu Kerberos armoring

Upozornenie!

Aby bolo možné použiť mechanizmus Kerberos armoring, účty správcov musia byť umiestnené do skupiny Protected Users.
Tým sa vynúti použitie protokolu overovania Kerberos namiesto NTLM. Komponent Edge Gateway musí byť najprv nakonfigurovaný na podporu overovania Kerberos.

Konfigurácia komponentu Edge Gateway na podporu overovania Kerberos s účtami umiestnenými v Protected Users

Mechanizmus Kerberos armoring poskytuje dodatočné šifrovanie počiatočných výmen medzi klientom a KDC (Kerberos Domain Controller) pomocou informácií prepojených s účtom počítača.

CyberElements Bastion beží prednostne na počítačoch so systémom Debian, ktoré nie sú pripojené k doméne AD, čo znamená, že v AD nemajú žiadne informácie o účte počítača.
Konfigurácia na podporu mechanizmu Kerberos armoring pozostáva z dvoch krokov:

  • Vytvorenie účtu počítača služby v AD
  • Konfigurácia mechanizmu Kerberos armoring na komponente Edge Gateway na základe predtým vytvoreného účtu

Vytvorenie účtu počítača služby

Informácie

Na tejto stránke sa ako príklad použije účet služby s názvom svc_cyberelements. Nasledujúce príkazy prispôsobte názvu svojho účtu služby.

Upozornenie!

Ak chcete používať pracovné stanice PAW, umiestnite tento účet služby do rovnakého sila ako cieľové pracovné stanice PAW.

Na radiči domény začnite vytvorením účtu počítača s heslom, ktoré sa používa na generovanie lístkov Kerberos.

Na vytvorenie tohto účtu môžete na radiči domény použiť nasledujúci príkaz prostredia Powershell (na vytvorenie účtu služby prispôsobte názov účtu služby, v príklade svc_cyberelements, a požadovanú OU, v príklade OU=Service_accounts,DC=domain,DC=local):

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

Pomocou nasledujúceho príkazu overte, že účet počítača bol vytvorený (nahraďte svc_cyberelements názvom predtým vytvoreného účtu):

1
Get-ADComputer -Identity svc_cyberelements -Properties Enabled

Potom pomocou nástroja ktpass systému Windows exportujte súbor keytab, ktorý bude obsahovať šifrovacie kľúče, ktoré bráne umožnia získať TGT.

Príklad

Príklad vytvorenia súboru svc_cyberelements.keytab s účtom počítača:

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
Nezabudnite uviesť symboly $ na konci názvov účtov a napísať názov domény veľkými písmenami (povinné).

Prípadné výzvy na potvrdenie prijmite zadaním y.

Potom pomocou nasledujúceho príkazu prostredia PowerShell znova nastavte hodnotu atribútu UserPrincipalName:

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

Konfigurácia mechanizmu Kerberos armoring na komponente Edge Gateway

Získajte predtým vygenerovaný súbor keytab a skopírujte ho na server Edge Gateway.
Ak bolo vygenerovaných niekoľko súborov keytab, ktoré sa musia použiť na tom istom komponente Edge Gateway, zlúčte súbory keytab do jedného súboru.

Upozornenie

Súbor keytab obsahuje šifrovacie kľúče. Ak ho získa útočník, môže sa vydávať za príslušný účet počítača, a tým znížiť zabezpečenie infraštruktúry.
Tento súbor by sa preto nemal ukladať nikde inde než na komponente Edge Gateway.

Umiestnite súbor do adresára /etc/ipdiva/cleanroom/.

Zmeňte vlastníkov súboru keytab na ipdivacareuser pre používateľa a carerecord pre skupinu a potom upravte povolenia súboru (súbor keytab upravte podľa názvu vlastného súboru):

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

Upravte konfiguračný súbor /etc/ipdiva/cleanroom/xrdprecord.ini komponentu Edge Gateway tak, aby ste pomocou parametra keytab= zadali cestu k predtým pripravenému súboru keytab.

Príklad

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

V tejto fáze by malo pripojenie k privilegovaným aplikáciám RDP v režime bez agenta (HTML5 alebo inom) fungovať s používateľskými účtami, ktoré patria do Protected Users, a preto vyžadujú silné overovanie Kerberos. Konfigurácia aplikácie RDP musí spĺňať určité predpoklady.

Testovanie konfigurácie Kerberos

Ladenie

Nasledujúce príkazy kinit môžu poskytnúť viac logov po spustení nasledujúceho príkazu (platí, kým sa relácia SSH alebo relácia konzoly neodpojí):

1
export KRB5_TRACE=/dev/stdout

Začnime získaním lístka Kerberos príkazom podobným nasledujúcemu:

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

Nezabudnite nahradiť umiestnenie súboru keytab, názov vytvoreného účtu služby a jeho priradenú doménu.

Ak sa lístok Kerberos podarilo získať, nasledujúci príkaz by mal uviesť existenciu lístka pre účet služby:

1
klist -c /tmp/test_kerberos

Ak je získanie úspešné, je potrebné pokúsiť sa získať lístok pre používateľa príkazom podobným nasledujúcemu:

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

Nahraďte user@DOMAIN.LOCAL používateľom, ktorý sa pravdepodobne bude pripájať cez RDP a Kerberos armoring. Všimnite si, že sa bude vyžadovať heslo tohto používateľa.
Ak sa lístok podarí získať, nasledujúci príkaz ho zobrazí:

1
klist -c

Ak sa zobrazí chyba KDC policy rejects request while getting initial credentials, znamená to, že služba KDC zamietla požiadavku na lístok. Možné príčiny:

  • kinit nemohol použiť lístok /tmp/test_kerberos (ak ho kinit nemôže použiť, pokračuje bez chybového hlásenia so základnou požiadavkou na lístok)
  • Účet služby sa nenachádza v sile testovaného používateľa. K tomu dochádza, keď je AD rozdelené do síl, a vyžaduje sa umiestnenie účtu počítača služby do príslušného sila.

Ďalšie informácie možno nájsť v logoch udalostí Security použitého radiča domény (KDC).

Po testovaní sa odporúča odstrániť vygenerované lístky:

1
2
kdestroy
kdestroy -c /tmp/test_kerberos

Zlúčenie viacerých súborov keytab do jedného súboru

Ak je architektúra CyberElements Bastion založená na jedinom serveri Edge Gateway, ktorý umožní prístup k viacerým vrstvám, treba všetky súbory keytab vygenerované pre jednotlivé účty služieb zlúčiť do jediného súboru keytab.

Poznámka

V tejto časti budeme predpokladať tieto súbory keytab: /root/t0.keytab, /root/t1.keytab a /root/t2.keytab. Tieto súbory musia byť odoslané na komponent Edge Gateway.

Ak chcete zlúčiť súbory keytab, prihláste sa na komponent Edge Gateway ako root a potom použite nasledujúce príkazy:

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

Príkazy rkt umožňujú načítať toľko súborov keytab, koľko je potrebné, a príkaz wkt vygeneruje nový súbor keytab.
Upravte cesty k súborom podľa tých, ktoré máte k dispozícii.

Stlačením klávesu q ukončíte nástroj ktutil.

Získajte súbor unified.keytab a postupujte podľa časti Configuring Kerberos shielding on the Edge Gateway.