jborean93.win_laps
Rola Ansible win_laps
Instaluje i konfiguruje Rozwiązanie dla lokalnych haseł administratora na hoście z systemem Windows.
Można to wykorzystać do następujących działań:
- Zainstalowanie komponentów serwerowych oraz dodanie wymaganych obiektów schematu i uprawnień w Active Directory
- Utworzenie GPO w celu automatycznego przesyłania konfiguracji LAPS do klientów
- Zainstalowanie komponentów po stronie klienta
Ta rola jest głównie dowodem konceptu i ma na celu ułatwienie ustawienia testowej domeny z zintegrowanym LAPS. Nie ma powodu, dla którego nie można by jej używać w prawdziwym środowisku, ale ze względu na skomplikowane zmiany, które LAPS wymaga w AD, prosimy o przetestowanie tego przed modyfikacją środowiska produkcyjnego.
Wymagania
- Windows Server 2012 R2+
Uwaga: Ta rola została przetestowana na Windows Server 2016, inne wersje powinny działać, ale nie ma gwarancji
Wymagania dla komponentów serwerowych
Kiedy używasz tej roli do instalacji komponentów serwerowych, musisz:
- Zalogować się jako użytkownik, który jest członkiem grupy domenowej
Schema Admin
- Lub określić użytkownika, który jest członkiem grupy domenowej
Schema Admin
poprzez zmienneopt_laps_domain_username
lubopt_laps_domain_password
- Upewnić się, że jesteś połączony z kontrolerem domeny jako administrator
Wymagania dotyczące konfiguracji GPO
Kiedy używasz tej roli do konfigurowania polityki GPO, musisz upewnić się, że jesteś zalogowany jako użytkownik, który ma uprawnienia do tworzenia nowych GPO i łączenia ich z docelowymi jednostkami organizacyjnymi.
Wymagania dla komponentów klienckich
Jedynym wymaganiem do zainstalowania komponentów klienckich jest bycie administratorem na hoście.
Zmienne
Zmienne obowiązkowe
Kiedy opt_laps_install_server
lub opt_laps_configure_gpo
jest True
, poniższe zmienne są obowiązkowe;
man_laps_ou_containers
: Lista jednostek organizacyjnych do skonfigurowania podczas instalacji LAPS. Wymusi to odpowiednie uprawnienia w AD oraz połączy nowo utworzone GPO LAPS, jeśli to konieczne.
Wartości dla man_laps_ou_containers
powinny być pełną nazwą wyróżniającą
OU, np. OU=Workstations,DC=domain,DC=local
.
Zmienne opcjonalne
Poniższe zmienne są opcjonalne;
opt_laps_admin_account
: Zmiana nazwy konta administratora zarządzanego z LAPS, domyślnie to kontoBUILTIN\Administrator
opt_laps_configure_gpo
: Gdy ustawione naTrue
iopt_laps_install_server
jestTrue
, utworzy GPO, aby wymusić konfigurację LAPS i połączy ją zman_laps_out_containers
(domyślnie:False
)opt_laps_install_client
: Gdy ustawione naTrue
, zainstaluje komponenty klienckie (domyślnie:False
)opt_laps_install_powershell
: Gdy ustawione naTrue
, zainstaluje moduł PowerShell LAPSAdmPwd.PS
(domyślnie:False
)opt_laps_install_server
: Gdy ustawione naTrue
, zainstaluje i skonfiguruje komponenty serwerowe oraz konfiguracje Active Directory (domyślnie:False
)opt_laps_install_ui
: Gdy ustawione naTrue
, zainstaluje aplikację UI LAPS (domyślnie:False
)opt_laps_install_source
: Ścieżka lub URL do instalacji LAPS msi, domyślnie to adres pobierania Microsoftuopt_laps_product_id
: Określenie unikalnego ID produktu instalatora LAPS, używanego do sprawdzania idempotencji; domyślnie instalator zostanie pominięty, jeśli%ProgramFiles%\LAPS
już istniejeopt_laps_skip_reboot
: Gdy ustawione naTrue
, nie zrestartuje hosta, jeśli instalacja LAPS wymagała restartu, ustawiaout_laps_reboot_required
, jeśli pominięto restart (domyślnie:False
)
Poniższe opcjonalne zmienne można ustawić w celu kontrolowania konfiguracji serwera;
opt_laps_domain_server
: Określenie docelowego kontrolera domeny, do którego dodana zostanie konfiguracja LAPS, domyślnielocalhost
opt_laps_domain_username
: Zastąpienie użytkownika połączenia używanego do konfiguracji AD, konto to powinno być członkiem grupySchema Admins
opt_laps_domain_password
: Hasło doopt_laps_domain_username
Poniższe opcjonalne zmienne można ustawić w celu kontrolowania konfiguracji GPO;
opt_laps_enforce_password_expiry
: Zgodnie z politykąNie pozwalaj, aby czas wygaśnięcia hasła był dłuższy niż wymagany przez politykę
opt_laps_gpo_name
: Nazwa obiektu polityki grupowej, który zawiera konfigurację LAPSopt_laps_password_policy_age
: Maksymalny wiek hasła w dniach (domyślnie:30
)opt_laps_password_policy_complexity
: Polityka złożoności hasła, może mieć jedną z następujących wartości;uppercase
uppercase,lowercase
uppercase,lowercase,digits
uppercase,lowercase,digits,symbols
domyślnie
opt_laps_password_policy_length
: Długość generowanego hasła (domyślnie:14
)
Zmienne wyjściowe
out_laps_reboot_required
: Ustawione naTrue
, gdyopt_laps_skip_reboot
jestTrue
i wymagany jest restart, aby zakończyć instalację
Zależności roli
Brak
Przykładowe Playbooki
- name: zainstaluj klienta LAPS z interfejsem UI
hosts: windows
gather_facts: no
roles:
- role: jborean93.win_laps
opt_laps_install_client: True
opt_laps_install_ui: True
- name: zainstaluj serwer LAPS i skonfiguruj go dla 1 OU
hosts: windows
gather_facts: no
roles:
- role: jborean93.win_laps
man_laps_ou_containers:
- OU=Workstations,DC=domain,DC=local
- OU=Accounting,DC=domain,DC=local
opt_laps_install_server: True
- name: zainstaluj serwer LAPS i utwórz GPO
hosts: windows
gather_facts: no
roles:
- role: jborean93.win_laps
man_laps_ou_containers:
- OU=Workstations,DC=domain,DC=local
opt_laps_install_server: True
opt_laps_configure_gpo: True
Po uruchomieniu roli moduł win_ad_dacl
i inne będą dostępne w ścieżce Ansible. Ten moduł może być użyty do nadania dostępu do odczytu/zapisu do atrybutów hasła i wygaśnięcia innym kontom. Domyślnie tylko administratorzy domeny lub rzeczywiste konto komputera mogą zmieniać te wartości. Aby dodać nowego użytkownika lub grupę do DACL, możesz uruchomić zadanie jak:
- name: dodaj użytkowników z dostępem do odczytu do atrybutu hasła
win_ad_dacl:
# najlepiej użyć pełnej nazwy wyróżniającej dla OU
path: OU=Workstations,DC=ansible,DC=laps
state: present
# ACEs zawierają listę praw do zastosowania
aces:
# Dodaje dostęp do odczytu atrybutu hasła
- rights: ReadProperty
inheritance_type: Descendents
inherited_object_type: Computer
object_type: ms-Mcs-AdmPwd
access: allow
account: ANSIBLE\PasswordUsers
# Dodaje dostęp do odczytu i zapisu do atrybutu wygaśnięcia hasła
- rights: ReadProperty, WriteProperty
inheritance_type: Descendents
inherited_object_type: Computer
object_type: ms-Mcs-AdmPwdExpirationTime
access: allow
account: ANSIBLE\ExpiryUsers
Więcej informacji można znaleźć w library/win_ad_dacl.py
.
Moduły w library
nie są gwarantowane, że pozostaną takie same w każdej aktualizacji wersji roli. Upewnij się, że przeczytałeś dziennik zmian przed aktualizacją wersji roli.
Testowanie
Ta rola wymaga, aby była skonfigurowana domena i działała na dwóch różnych hostach. Jest to trudne do zrealizowania w darmowym środowisku CI, więc jedynym testowaniem, które będzie przeprowadzone, jest uruchamianie Vagrant lokalnie. Aby przetestować tę rolę, wykonaj następujące kroki;
pip install pypsrp
cd tests
vagrant up
ansible-playbook -i inventory.ini main.yml -vvv
Te kroki mogą zająć trochę czasu, w zależności od tego, czy skrzynki Vagrant są już pobrane. Obecny zestaw testowy instaluje komponenty serwerowe na kontrolerze domeny i komponent CSE klienta na drugim serwerze i sprawdza, czy możemy odzyskać hasło.
Lista rzeczy do zrobienia
- Dodanie opcjonalnego parametru do kontrolowania SACL (audyt) każdego atrybutu AD Brak - zapraszamy do zgłaszania propozycji funkcji
ansible-galaxy install jborean93.win_laps