Konfiguracje dla obsługi mechanizmu Kerberos shielding¶
Ostrzeżenie!
Aby mechanizm Kerberos shielding był używany, konta administratorów muszą zostać umieszczone w grupie Protected Users.
Wymusza to użycie protokołu uwierzytelniania Kerberos zamiast NTLM. Edge Gateway musi zostać wcześniej skonfigurowany do obsługi uwierzytelniania Kerberos.
Mechanizm Kerberos shielding zapewnia dodatkowe szyfrowanie pierwszych wymian między klientem a KDC (Kerberos Domain Controller) na podstawie informacji powiązanych z kontem komputera.
CyberElements Bastion działa najlepiej na maszynach Debian, które nie należą do domeny AD, co oznacza, że nie ma on w AD żadnych informacji o koncie komputera.
Konfiguracja obsługi mechanizmu Kerberos shielding składa się z dwóch etapów:
- Utworzenie konta komputera usługi w AD
- Konfiguracja mechanizmu Kerberos shielding na Edge Gateway na podstawie wcześniej utworzonego konta
Tworzenie konta komputera usługi¶
Informacja
Na tej stronie jako przykład zostanie użyte konto usługi o nazwie svc_cyberelements. Dostosuj poniższe polecenia do nazwy własnego konta usługi.
Ostrzeżenie!
Jeśli chcesz używać stacji roboczych PAW, umieść to konto usługi w tym samym silosie co docelowe stacje robocze PAW.
Na kontrolerze domeny zacznij od utworzenia konta komputera z hasłem używanym do generowania biletów Kerberos.
Aby utworzyć to konto, możesz użyć na kontrolerze domeny następującego polecenia Powershell (dostosuj nazwę konta usługi, w przykładzie svc_cyberelements, oraz wybraną jednostkę OU, w przykładzie OU=Service_accounts,DC=domain,DC=local, aby utworzyć konto usługi):
1 | |
Użyj następującego polecenia, aby sprawdzić, czy konto komputera zostało utworzone (zastąp svc_cyberelements nazwą wcześniej utworzonego konta):
1 | |
Następnie użyj narzędzia ktpass systemu Windows, aby wyeksportować plik keytab, który będzie zawierał klucze szyfrujące pozwalające gateway pobrać bilet TGT.
Przykład
Przykład tworzenia pliku svc_cyberelements.keytab z kontem komputera:
1 | |
$ na końcu nazw kont oraz zapisać nazwę domeny wielkimi literami (wymagane).
Zatwierdź ewentualne pytania potwierdzające, wpisując y.
Następnie ustaw ponownie wartość atrybutu UserPrincipalName za pomocą następującego polecenia PowerShell:
1 | |
Konfigurowanie mechanizmu Kerberos shielding na Edge Gateway¶
Pobierz wcześniej wygenerowany plik keytab i skopiuj go na serwer Edge Gateway.
W kontekście, w którym wygenerowano kilka plików keytab i muszą one być używane na tym samym Edge Gateway, połącz pliki keytab w jeden plik.
Uwaga
Plik keytab zawiera klucze szyfrujące. Jeśli atakujący wejdzie w jego posiadanie, może podać się za powiązane konto komputera i tym samym obniżyć bezpieczeństwo infrastruktury.
Dlatego tego pliku nie należy przechowywać w żadnym innym miejscu niż na Edge Gateway.
Umieść plik w katalogu /etc/ipdiva/cleanroom/.
Zmień właścicieli pliku keytab na ipdivacareuser dla użytkownika i carerecord dla grupy, a następnie zmień uprawnienia do pliku (dostosuj nazwę pliku keytab do nazwy własnego pliku):
1 2 | |
Zmodyfikuj plik konfiguracyjny /etc/ipdiva/cleanroom/xrdprecord.ini Edge Gateway, aby za pomocą parametru keytab= podać ścieżkę do wcześniej przygotowanego pliku keytab.
Przykład
2 | |
Na tym etapie połączenie z uprzywilejowanymi aplikacjami RDP w trybie bezagentowym (HTML5 lub innym) powinno działać dla kont użytkowników należących do Protected Users, a więc wymagających silnego uwierzytelniania Kerberos. Konfiguracja aplikacji RDP musi spełniać określone wymagania wstępne.
Testowanie konfiguracji Kerberos¶
Debugowanie
Następujące polecenia kinit mogą dostarczyć więcej logów po wykonaniu poniższego polecenia (obowiązuje do rozłączenia sesji SSH lub konsolowej):
1 | |
Zacznijmy od pobrania biletu Kerberos poleceniem podobnym do następującego:
1 | |
Pamiętaj o zastąpieniu lokalizacji pliku keytab, nazwy utworzonego konta usługi oraz powiązanej z nim domeny.
Jeśli pobranie biletu Kerberos zakończyło się powodzeniem, następujące polecenie powinno wskazać istnienie biletu dla konta usługi:
1 | |
Jeśli pobranie się udaje, trzeba następnie spróbować pobrać bilet dla użytkownika poleceniem podobnym do następującego:
1 | |
Zastąp user@DOMAIN.LOCAL użytkownikiem, który prawdopodobnie będzie się łączył przez RDP i Kerberos shielding. Zwróć uwagę, że hasło tego użytkownika zostanie zażądane.
Jeśli pobranie biletu zakończy się powodzeniem, następujące polecenie go wyświetli:
1 | |
Jeśli wyświetla się błąd KDC policy rejects request while getting initial credentials, oznacza to, że KDC odrzucił żądanie biletu. Możliwe przyczyny:
kinitnie mógł użyć biletu/tmp/test_kerberos(jeślikinitnie może go użyć, kontynuuje bez komunikatu o błędzie, wysyłając podstawowe żądanie biletu)- Konta usługi nie ma w silosie testowanego użytkownika. Zdarza się to, gdy AD jest podzielone na silosy, i wymaga umieszczenia konta komputera usługi w odpowiednim silosie.
Dodatkowe informacje można znaleźć w logach zdarzeń Security używanego kontrolera domeny (KDC).
Po zakończeniu testów zaleca się usunięcie wygenerowanych biletów:
1 2 | |
Łączenie wielu plików keytab w jeden plik¶
Jeśli architektura CyberElements Bastion opiera się na jednym Edge Gateway, który ma umożliwiać dostęp wielu podmiotom trzecim, trzeba scalić wszystkie pliki keytab wygenerowane dla poszczególnych kont usług w jeden plik keytab.
Uwaga
W tej sekcji przyjmiemy następujące pliki keytab: /root/t0.keytab, /root/t1.keytab i /root/t2.keytab.
Pliki te muszą zostać wcześniej przesłane na Edge Gateway.
Aby scalić pliki keytab, zaloguj się na Edge Gateway jako root, a następnie użyj następujących poleceń:
1 2 3 4 5 | |
Polecenia rkt pozwalają wczytać dowolną liczbę plików keytab, a polecenie wkt generuje nowy plik keytab.
Dostosuj ścieżki plików do tych, którymi dysponujesz.
Naciśnij klawisz q, aby wyjść z narzędzia ktutil.
Pobierz plik unified.keytab i przejdź do sekcji Konfigurowanie mechanizmu Kerberos shielding na Edge Gateway.