win_laps

Ansible Роль win_laps

Статус сборки win_openssh Ansible Galaxy Роль

Устанавливает и настраивает приложение Local Administrator Password Solution на хосте Windows.

Это может использоваться для;

  • Установки серверной части и добавления необходимых объектов схемы Active Directory и прав
  • Создания GPO для автоматической отправки конфигурации LAPS клиентам
  • Установки клиентской части

Эта роль в основном является демонстрацией концепции и предназначена для упрощения настройки тестового домена с интегрированным LAPS. Нет причин, по которым вы не можете запустить это в реальной среде, но из-за комплексных изменений, требуемых LAPS в AD, пожалуйста, протестируйте это перед работой в производственной среде.

Требования

  • Windows Server 2012 R2+

Примечание: Эта роль была протестирована на Windows Server 2016, другие версии должны работать, но это не гарантируется.

Требования для серверной части

При использовании этой роли для установки серверной части вам необходимо;

  • Подключиться как пользователь, который является частью группы домена Schema Admin
  • Или, указать пользователя, который является частью группы домена Schema Admin через переменные opt_laps_domain_username или opt_laps_domain_password
  • Убедиться, что вы подключены к контроллеру домена как администратор

Требования для настройки GPO

При использовании этой роли для настройки GPO вам необходимо убедиться, что вы подключены как пользователь, который имеет права на создание новых GPO и связывание их с целевыми организационными единицами.

Требования для клиентской части

Единственное требование для установки клиентских компонентов - быть администратором на хосте.

Переменные

Обязательные переменные

Когда opt_laps_install_server или opt_laps_configure_gpo равно True, следующие переменные обязательны;

  • man_laps_ou_containers: Список организационных единиц для настройки с установкой LAPS. Это применит соответствующие права в AD, а также свяжет вновь созданный GPO LAPS, если это необходимо.

Значения для man_laps_ou_containers должны быть полным определенным именем OU, например, OU=Workstations,DC=domain,DC=local.

Необязательные переменные

Следующие переменные являются необязательными;

  • opt_laps_admin_account: Меняет имя учетной записи администратора для управления с помощью LAPS, по умолчанию - учетная запись BUILTIN\Administrator.
  • opt_laps_configure_gpo: Когда установлено в True и opt_laps_install_server равно True, создаст GPO для применения конфигурации LAPS и свяжет его с man_laps_out_containers (по умолчанию: False).
  • opt_laps_install_client: Когда установлено в True, установит компоненты клиентской части (по умолчанию: False).
  • opt_laps_install_powershell: Когда установлено в True, установит модуль PowerShell LAPS AdmPwd.PS (по умолчанию: False).
  • opt_laps_install_server: Когда установлено в True, установит и настроит серверные компоненты, а также конфигурации Active Directory (по умолчанию: False).
  • opt_laps_install_ui: Когда установлено в True, установит приложение LAPS UI (по умолчанию: False).
  • opt_laps_install_source: Путь или URL для установки LAPS msi, по умолчанию используется URL загрузки Microsoft.
  • opt_laps_product_id: Укажите уникальный идентификатор продукта установщика LAPS, который используется для проверок идемпотентности; по умолчанию установщик будет пропущен, если %ProgramFiles%\LAPS уже существует.
  • opt_laps_skip_reboot: Когда установлено в True, не будет перезагружать хост, если установка LAPS требует перезагрузки, установит out_laps_reboot_required, если это было пропущено (по умолчанию: False).

Следующие необязательные переменные могут быть установлены для управления конфигурацией сервера;

  • opt_laps_domain_server: Укажите целевой контроллер домена для добавления конфигурации LAPS, по умолчанию localhost.
  • opt_laps_domain_username: Переопределите пользователя подключения, используемого для настройки AD, эта учетная запись должна быть членом группы Schema Admins.
  • opt_laps_domain_password: Пароль для opt_laps_domain_username.

Следующие необязательные переменные могут быть установлены для управления конфигурацией GPO;

  • opt_laps_enforce_password_expiry: Соответствует политике Не разрешать срок действия пароля более чем требуется по политике.
  • opt_laps_gpo_name: Название объекта групповой политики, который содержит конфигурацию LAPS.
  • opt_laps_password_policy_age: Максимальный срок действия пароля в днях (по умолчанию: 30).
  • opt_laps_password_policy_complexity: Политика сложности пароля, может быть одной из следующих;
    • uppercase
    • uppercase,lowercase
    • uppercase,lowercase,digits
    • uppercase,lowercase,digits,symbols по умолчанию
  • opt_laps_password_policy_length: Длина генерируемого пароля (по умолчанию: 14).

Переменные вывода

  • out_laps_reboot_required: Это установлено в True, когда opt_laps_skip_reboot равно True, и требуется перезагрузка для завершения установки.

Зависимости роли

Нет

Примеры плейбуков

- name: установить клиент LAPS с UI
  hosts: windows
  gather_facts: no
  roles:
  - role: jborean93.win_laps
    opt_laps_install_client: True
    opt_laps_install_ui: True

- name: установить сервер LAPS и настроить его для 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: установить сервер LAPS и создать 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

После того как роль будет выполнена, модуль win_ad_dacl и другие будут доступны в пути Ansible. Этот модуль может использоваться для применения прав на чтение/запись к атрибутам пароля и срока действия другим учетным записям. По умолчанию только администраторы домена или сама учетная запись компьютера могут изменять эти значения. Чтобы добавить нового пользователя или группу в DACL, вы можете выполнить задачу, такую как;

- name: добавить пользователям доступ на чтение к атрибуту пароля
  win_ad_dacl:
    # лучше использовать полное определенное имя для OU
    path: OU=Workstations,DC=ansible,DC=laps
    state: present
    # ACEs содержат список прав, которые нужно применить
    aces:
    # Добавляет доступ на чтение к атрибуту пароля
    - rights: ReadProperty
      inheritance_type: Descendents
      inherited_object_type: Computer
      object_type: ms-Mcs-AdmPwd
      access: allow
      account: ANSIBLE\PasswordUsers
    # Добавляет доступ на чтение и запись к атрибуту срока действия пароля
    - rights: ReadProperty, WriteProperty
      inheritance_type: Descendents
      inherited_object_type: Computer
      object_type: ms-Mcs-AdmPwdExpirationTime
      access: allow
      account: ANSIBLE\ExpiryUsers

Смотрите library/win_ad_dacl.py для получения дополнительных сведений.

Модули в library не гарантировано останутся теми же в каждом выпуске роли. Убедитесь, что вы прочитали журнал изменений перед обновлением версии роли.

Тестирование

Эта роль зависит от настроенного домена и работы на двух различных хостах. Это трудно установить в CI-среде, поэтому единственное тестирование будет проводиться локально через Vagrant. Чтобы протестировать эту роль, выполните следующее;

pip install pypsrp

cd tests
vagrant up
ansible-playbook -i inventory.ini main.yml -vvv

Эти шаги могут занять некоторое время в зависимости от того, были ли уже загружены Vagrant-боксы. Текущий набор тестов просто устанавливает серверные компоненты на контроллер домена и клиент CSE на другом сервере и проверяет, можем ли мы получить пароль.

Заметки

  • Добавить необязательный параметр для управления SACL (аудитом) каждого атрибута AD. Нет - запросы на новые функции приветствуются.
О проекте

Install LAPS on a Windows host

Установить
ansible-galaxy install jborean93/ansible-role-win_laps
Лицензия
mit
Загрузки
979
Владелец