jborean93.win_laps

Rola Ansible win_laps

Status budowy Rola win_openssh Ansible Galaxy

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 zmienne opt_laps_domain_username lub opt_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 konto BUILTIN\Administrator
  • opt_laps_configure_gpo: Gdy ustawione na True i opt_laps_install_server jest True, utworzy GPO, aby wymusić konfigurację LAPS i połączy ją z man_laps_out_containers (domyślnie: False)
  • opt_laps_install_client: Gdy ustawione na True, zainstaluje komponenty klienckie (domyślnie: False)
  • opt_laps_install_powershell: Gdy ustawione na True, zainstaluje moduł PowerShell LAPS AdmPwd.PS (domyślnie: False)
  • opt_laps_install_server: Gdy ustawione na True, zainstaluje i skonfiguruje komponenty serwerowe oraz konfiguracje Active Directory (domyślnie: False)
  • opt_laps_install_ui: Gdy ustawione na True, zainstaluje aplikację UI LAPS (domyślnie: False)
  • opt_laps_install_source: Ścieżka lub URL do instalacji LAPS msi, domyślnie to adres pobierania Microsoftu
  • opt_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ż istnieje
  • opt_laps_skip_reboot: Gdy ustawione na True, nie zrestartuje hosta, jeśli instalacja LAPS wymagała restartu, ustawia out_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ślnie localhost
  • opt_laps_domain_username: Zastąpienie użytkownika połączenia używanego do konfiguracji AD, konto to powinno być członkiem grupy Schema Admins
  • opt_laps_domain_password: Hasło do opt_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ę LAPS
  • opt_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 na True, gdy opt_laps_skip_reboot jest True 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
O projekcie

Install LAPS on a Windows host

Zainstaluj
ansible-galaxy install jborean93.win_laps
Licencja
mit
Pobrania
1.4k
Właściciel