W moim ostatnim artykule opisywałem FreeIPA, które jest sprawnie działającym narzędziem służącym do zarządzania tożsamościami w systemach Linux. W tym tekście przedstawię Active Directory, czyli rozwiązanie powszechnie stosowane w firmowych sieciach Windows. Pozwala na scentralizowane zarządzanie hostami oraz użytkownikami. Wiele różnych usług może zostać zintegrowanych z bazą Active Directory, co umożliwi logowanie domenowe do takich systemów.
Active Directory może zostać zainstalowane na systemach Windows Server od wersji 2000. Instalacja nie wymaga dostępu do Internetu, a całość przeprowadza się z poziomu Server Manager. Kontroler domeny powinien mieć przypisany statyczny adres IP. Poza obsługą AD odpowiada on również za domenowy serwer DNS — w sytuacji otrzymania innego adresu IP z serwera DHCP będzie to powodować problemy z logowaniem i dostępem do lokalnych zasobów.
Do domeny mogą zostać dołączone systemy desktopowe w wersji Pro. W przypadku Windows Server każda edycja pozwoli na dołączenie do domeny.
Umiejętność zarządzania Active Directory znajdzie zastosowanie w pracy administratora IT. Nie oznacza to jednak, że ten temat jest ograniczony do konkretnej roli. Specjaliści security również powinny posiadać kompetencje związane z podobnymi rozwiązaniami. Doświadczenie najlepiej zdobywać w pracy, a oferty pracy można znaleźć m.in. w serwisie theprotocol.it.
Instalacja Active Directory
Konfigurację sieci można przeprowadzić poprzez Control Panel -> Network and Internet -> Network and Sharing Center -> Change adapter settings, gdzie wybieramy Properties dla danej karty i dalej Internet Protocol Version 4 (TCP/IPv4).
Warto również ustawić jakkolwiek sensowny hostname dla maszyny pełniącej rolę kontrolera domeny. Można do tego użyć sysdm.cpl, a sama zmiana wymaga restartu systemu.
Potrzebujemy zainstalować rolę Active Directory Domain Services poprzez Add roles and features w narzędziu Server Manager. W karcie Server Roles należy wybrać tę właśnie rolę. Dalsze kroki polegają już na przeklikaniu Next, a ostatecznie Install i Close.
Oprócz tego serwer należy wypromowować do roli kontrolera domeny. Wystarczy kliknąć ikonę flagi w Server Manager i zobaczymy odpowiednie działanie do wykonania.
Maszyna będzie pełniła rolę pierwszego kontrolera, nie mamy też żadnej domeny, dlatego w oknie Active Directory Domain Services Configuration Wizard wybieramy Add a new forest i określamy nazwę nowej domeny. Najczęściej składa się ona z nazwy danego przedsiębiorstwa wraz z członem .local, .lan, itp.
Pozostałe opcje w dalszych krokach można pozostawić bez zmian. Należy tylko ustawić hasła dla trybu DSRM i konta Administrator Active Directory. Po zakończeniu tego procesu system zostanie uruchomiony ponownie.
Od teraz „domyślnym” kontem logowania będzie konto domenowe Administrator.
W zakładce Tools w Server Manager pojawią się przystawki służące do zarządzania poszczególnymi składnikami Active Directory. Na początek dodamy użytkowników do naszej domeny, więc uruchamiamy przystawkę Active Directory Users and Computers (dsa.msc).
Ogólnie dobrym pomysłem jest przechowywanie danych użytkowników (w praktyce pewnie pracowników) w konkretnej jednostce organizacyjnej. W domyślnym katalogu Users zawsze znajdują się dwa konta (Administrator i Guest) oraz kilka security groups. Dodanie użytkowników w tym miejscu nie poprawi czytelności. Jednostkę dodamy poprzez kliknięcie prawym przyciskiem myszy na nazwę domeny (lista rozwijana) i wybranie New -> Organizational Unit.
Dodawanie użytkowników nie jest szczególnie trudne. Wystarczy kliknąć prawym przyciskiem myszy na nazwę utworzonej jednostki na liście rozwijanej lub w jej polu. Wymagane do uzupełnienia jest pole Full Name oraz User logon name, natomiast najlepiej wypełnić jeszcze First name i Last name. Wtedy podczas logowania użytkownik zobaczy swoje imię i nazwisko, a nie tylko nazwę konta.
W kolejnym kroku ustawiamy hasło użytkownika. Zaznaczona będzie opcja User must change password at next logon, co jest właściwym wyborem kiedy przekazujemy hasło użytkownikowi. Przy pierwszym logowaniu będzie mógł ustawić własne.
Dodani użytkownicy są przypisani do grupy Domain Users. W celu dodania użytkownika do innej grupy wystarczy kliknąć jego nazwę prawym przyciskiem myszy i wybrać opcję Add to a group… W otwartym oknie można zwyczajnie wpisać część nazwy grupy, po czym kliknąć Check Names. Nazwa powinna zostać uzupełniona. W tym przykładzie dodaję swojego użytkownika do grupy Domain Admins.
Jak wspomniałem, Active Directory działa w połączeniu z serwerem DNS. Po dodaniu hosta do domeny jego nazwa jest automatycznie dodawana do rekordów DNS. Nic nie stoi jednak na przeszkodzie, aby dodać własne rekordy, wskazujące przykładowo na usługi hostowane na serwerach Linux. Zarządzanie DNS odbywa się poprzez przystawkę DNS Manager (dnsmgmt.msc). Rekordy należy dodać w Forward Lookup Zones -> domena. Do wyboru będzie kilka rodzajów rekordów. Dla przykładu dodałem dwa rekordy web i gitlab, a w widocznym po prawej stronie oknie dodaję rekord CNAME dla gitlab.avlab.local.
Jedną z najbardziej kluczowych przystawek jest Group Policy Management (gpmc.msc). Z jej poziomu dodajemy polityki stosowane w domenie, które będą obejmować dodane hosty (niekoniecznie wszystkie, można określić grupę, co też wykonamy). Polityki najlepiej przechowywać w osobnych Group Policy Objects, żeby w razie potrzeby szybko wycofać określone zasady.
Domyślnie będą dodane dwie polityki — Default Domain Controllers Policy i Default Domain Policy (zobaczymy je po rozwinięciu Group Policy Objects). Raczej nie powinny być edytowane; zmiany wprowadzamy w nowych politykach. Zaczynamy od wyboru podświetlonej opcji widocznej poniżej.
Wpisujemy nazwę, a po utworzeniu wybieramy ją prawym przyciskiem myszy i przechodzimy do Edit… Otworzy się wtedy Group Policy Management Editor, w którym wprowadzamy nasze ustawienia.
Jako pierwszą dodamy politykę służącą do wyświetlania ukrytych plików oraz rozszerzeń. W edytorze przechodzimy kolejno do User Configuration -> Preferences -> Control Panel Settings. Następnie prawym przyciskiem myszy klikamy Folder Options, a dalej New -> Folder Options (zapewne dla nowszych systemów, więc At least Windows Vista).
Pewnie niektórzy zauważyli, że „szata graficzna” tej opcji pochodzi z Windows XP. System ten posiadał kilka różnych motywów, z którymi zresztą związana jest ciekawa historia. Inne interesujące fakty z branży IT można znaleźć na blog.theprotocol.it.
Zaznaczamy teraz opcję Show hidden files and folders oraz odznaczmy znajdującą się poniżej — Hide extensions for known file types.
Kolejne dwie reguły będą dotyczyć BitLocker. Odblokujemy możliwość zaszyfrowania dysku w sytuacji, gdy płyta główna nie jest wyposażona w moduł TPM w wersji 1.2 i nowszej. W praktyce globalnie (bo na poziomie domeny) aktywujemy opcję Require additional authentication on startup, o której pisałem w artykule dotyczącym szyfrowania dysków w różnych systemach operacyjnych.
Tworzymy więc nową politykę i przechodzimy do Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> BitLocker Drive Encryption -> Operating System Drivers. Znajdziemy tam wymienioną wyżej opcję, którą musimy po prostu uaktywnić.
Dodatkowo dodamy politykę umożliwiającą przechowywanie kluczy odzyskiwania w Active Directory. Nie będzie wtedy konieczne ich drukowanie (aczkolwiek BitLocker i tak będzie tego wymagał, natomiast najszybszym obejściem jest wydruk do pliku — Microsoft Print to PDF). Analogicznie jak poprzednio przechodzimy do BitLocker Drive Encryption i aktywujemy opcję Store BitLocker recovery information in Active Directory Domain Services (Windows Server 2008 and Windows Vista). Następnie w Operating System Drivers wybieramy Choose how BitLocker-protected operating system drivers can be recovered. Aktywujemy tę opcję i zaznaczamy jeszcze zakreślony na poniższym zrzucie ekranu parametr.
Polityka jest gotowa, niestety nie działa ad hoc, musimy doinstalować funkcję do systemu. Najszybciej będzie wykonać w PowerShell:
Install-WindowsFeature RSAT-Feature-Tools-BitLocker-BdeAducExt
Reguły odświeżają się co 90-120 minut, natomiast można wymusić ich natychmiastową aktualizację poleceniem gpupdate /force.
Dołączanie do domeny
Proces dołączenia hosta do domeny zakłada ustawienie domeny, co oznacza, że host musi tę domenę rozpoznać. Należy więc podać adres IP kontrolera domeny jako serwer DNS. Adres IP maszyny nie koniecznie musi być statyczny. Warto też od razu ustawić jednoznaczny hostname. Jeśli dany komputer będzie wykorzystywany przez określonego pracownika, to sprawdzi się zawarcie np. jego loginu w tej nazwie.
W celu dołączenia do domeny wystarczy wpisać nazwę domeny w sysdm.cpl i podać poświadczenia dowolnego użytkownika z uprawnieniami Domain Admin.
Po poprawnym dołączeniu zobaczymy komunikat powitania, a system będzie musiał zostać oczywiście zrestartowany.
Pojawi się możliwość zalogowania użytkownikami domenowymi. Tak jak wspomniałem, domyślne ustawienie powoduje konieczność ustawienia nowego hasła, o ile nie odznaczyliśmy tej opcji.
Można też potwierdzić, że uprzednio dodane GPO zostały zastosowane — widoczne są rozszerzenia plików oraz ukryte foldery, jak również klucz odzyskiwania do BitLocker.
GPO nie muszą być stosowane do wszystkich komputerów. Przykładowym rozwiązaniem jest utworzenie dedykowanej grupy, do której przypisuje się wybrane hosty, a następnie wskazuje się tę grupę w Security Filtering. Kroki opisano poniżej.
- Tworzymy politykę, w tym przypadku wyłączenie automatycznych aktualizacji Windows.
- Usuwamy wpis Authenticated Users z sekcji Security Filtering.
- Tworzymy nową grupę w dsa.msc w obiekcie Computers.
- Dodajemy wybrany komputer do utworzonej grupy.
- W Security Filtering podajemy tę grupę.
- Opcjonalnie wymuszamy aktualizację polityk poleceniem gpupdate /force.
Zdalne połączenie z domeną
W przypadku pracy zdalnej, gdzie sprzęt jest wydawany pracownikowi i pracuje on z domu, w celu umożliwienia połączenia z domeną musimy skonfigurować serwer VPN. Najczęściej spotykanym rozwiązaniem jest OpenVPN, natomiast system Windows niestety nie oferuje możliwości połączenia OpenVPN przed zalogowaniem. Nie jest to duże utrudnienie, wystarczy dodać tymczasowe konto techniczne, które umożliwi pracownikowi zestawienie połączenia VPN i zalogowanie się do systemu swoimi poświadczeniami domenowymi.
Praca zdalna nie jest już standardem podanym w każdej ofercie pracy, natomiast wiedza o formach zewnętrznego dostępu do lokalnych systemów zawsze pozostanie istotna. Początek roku zwykle oznacza większą ilość rekrutacji, więc polecam sprawdzać nowe oferty w serwisie theprotocol.it.
Możemy nawet zintegrować serwer OpenVPN z bazą LDAP Active Directory, aby użytkownicy mogli łączyć się do sieci VPN z wykorzystaniem logowania domenowego. W pliku konfiguracyjnym /etc/openvpn/server.conf usuwamy bądź komentujemy linie:
user nobody
group nogroup
A dodatkowo dopisujemy:
username-as-common-name
plugin /usr/lib/openvpn/openvpn-auth-ldap.so /etc/openvpn/ad.conf
Widoczny plugin trzeba doinstalować, jest to pakiet openvpn-auth-ldap.
Serwer VPN powinien mieć też ustawiony DNS na adres kontrolera domeny. Zapis wygląda w ten sposób:
push “dhcp-option DNS 10.0.0.10”
Następnie kopiujemy plik /usr/share/doc/openvpn-auth-ldap/examples/auth-ldap.conf do wskazanego wcześniej pliku /etc/openvpn/ad.conf, gdzie zgodnie z gotowym przykładem wpisujemy dane zgodne z naszą domeną.
Pliki OVPN z konfiguracją dla klientów powinny zawierać opcję auth-user-pass.
Hosta standardowo dołączamy do domeny kiedy jest połączony z siecią lokalną. Potrzebujemy zainstalować klienta OpenVPN i tutaj zamiast OpenVPN Connect (co jest pierwszym wynikiem w Google po wpisaniu „openvpn client”) sugeruję zainstalować klienta ze strony https://openvpn.net/community-downloads/.
Wygenerowany dla użytkownika plik OVPN umieszczamy w folderze C:\Program Files\OpenVPN\config. Mocno polecam też (przynajmniej w przypadku pracowników związanych ze stanowiskami technicznymi) ustawić użytkownikowi danego sprzętu prawa lokalnego administratora. Użytkownik nie musi się nawet wcześniej logować. Można użyć polecenia net user w takiej postaci:
net localgroup Administratorzy AVLAB\dev /add
Dodamy teraz konto techniczne służące do pierwszego zalogowania w celu połączenia z VPN. W opcji EXPIRES ustawiamy dowolną datę z przyszłości, np. dzień onboardingu pracownika, aby po tym czasie logowanie z użyciem tego konta nie było możliwe.
md c:\Users\konto_techniczne
net user konto_techniczne zaq1@WSX /add
net user konto_techniczne /PROFILEPATH:C:\Users\konto_techniczne /HOMEDIR:C:\Users\konto_techniczne /EXPIRES:08.01.2024
Przywracamy też ustawienia sieci, aby system pobierał adres IP oraz adresy serwerów DNS serwera DHCP.
Dobrą praktyką jest szyfrowanie dysków komputerów, które nie pozostają w biurze. Zgodnie z dodaną wcześniej polityką klucz odzyskiwania został zapisany na kontrolerze domeny.
Po otrzymaniu komputera pracownik zaloguje się najpierw na konto_techniczne, z którego poziomu połączy się z siecią VPN, korzystając z poświadczeń domenowych.
Następnie przełączy konto (skrót Win+L) i będzie mógł zalogować się na swojego użytkownika ze zdalnej lokalizacji.
Podsumowanie
Active Directory to rozbudowane rozwiązanie, które stało się standardem zarządzania w środowiskach z systemami Windows. Umożliwia scentralizowane wprowadzanie własnych polityk i administrację kontami użytkowników. Po stronie użytkownika nie wymaga żadnych dodatkowych czynności do wykonania, a zdecydowanie ułatwia codzienną pracę — integracja z innymi usługami umożliwi korzystanie z logowania domenowego, dzięki czemu nie trzeba zapamiętywać wielu haseł, a wyłącznie jedno.
Czy ten artykuł był pomocny?
Oceniono: 4 razy