jborean93.win_laps
Ansible Роль win_laps
Устанавливает и настраивает приложение 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 LAPSAdmPwd.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: Политика сложности пароля, может быть одной из следующих;uppercaseuppercase,lowercaseuppercase,lowercase,digitsuppercase,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. Нет - запросы на новые функции приветствуются.
ansible-galaxy install jborean93.win_laps