Введение
Объекты групповой политики (GPO), представляющие собой именованные наборы параметров с конкретными значениями, часто требуют адаптации, тиражирования или переноса. Для упрощения этих процессов используется механизм экспорта и импорта объектов групповой политики. Утилита предоставляет возможность выполнять экспорт и импорт объектов как в рамках одного домена, так и между различными доменами.
Термины и определения
Групповая политика (ГП) — совокупность параметров, позволяющих централизованно настраивать операционную систему и пользовательское окружение. Примеры разделов: «Безопасность», «Оборудование», «Сеть», «Система».
Объект групповой политики (GPO) — именованный набор параметров с конкретными значениями, которые могут быть применены к организационным подразделениям. Например, «Ограничение доступа к USB-устройствам»)
Параметр групповой политики — именованный набор атрибутов, определяющий конфигурацию конкретной функции операционной системы или пользовательского окружения. Например, параметр «Переменная окружения» содержит атрибуты «Имя переменной» и «Значение переменной».
Связанный объект ГП — объект групповой политики, назначенный определенному подразделению.
Совместимость скрипта с версиями ALD
Скрипт поддерживает работу на ALD Pro версии 2.5.0. Официальная поддержка других версий ALD Pro отсутствует. Использование на других версиях ALD Pro не гарантирует корректную работу скрипта.
Для изменения версии:
- Открыть файл main.sh.
- Найти строку:
version="2.5.0"
- Изменить значение:
- Если версия ALD 2.4.0 и выше — указать актуальный номер версии.
- Если версия ALD 2.3.0 и ниже — заменить на пустую строку " ".
Роли и привилегии пользователей
Перед использованием скрипта рекомендуется предварительно настроить роли администратора, под которым будут выполняться операции восстановления.
Способы назначения ролей на Портале Управления:
- Через “Управление доменом” → Роли и права доступа
- Через “Пользователи и компьютеры” → Пользователи → {Имя пользователя} → Роли
Рекомендуемые предустановленные роли
-
ALDPRO - Group Policies Administrators и ALDPRO - Computers Administrators
- Позволяет копировать и восстанавливать объекты групповой политики (GPO)
- Выполняет проверку совместимости версий ALD. Без этой проверки функционал экспорта и импорта GPO недоступен.
-
ALDPRO - Main Administrator
- Обеспечивает полный доступ к:
- Импорту и экспорту объектов групповой политики.
- Назначению GPO на подразделения.
- Не требует наличия других ролей.
- Обеспечивает полный доступ к:
Рекомендуемые привилегии для пользовательских ролей
При необходимости создания собственной роли можно воспользоваться данной рекомендацией. Представленный набор привилегий не предоставляет доступ к импорту назначения GPO на подразделения, только к экспорту и импорту объектов групповых политик, и экспорту назначения объектов групповых политик на подразделения.
Минимальный список необходимых привилегий:
- Работа с групповыми политиками (GPO):
- Group Policies - Read — чтение объектов групповой политики.
- Group Policies - Add — добавление новых GPO.
- Group Policies - Modify — изменение параметров GPO.
- Group Policies - Delete — удаление объектов GPO.
- Group Policies Membership - Manage — управление членством GPO.
- Управление параметрами GPO:
- Group Policies Computer Parameters - Manage — управление параметрами GPO, применяемыми к компьютерам.
- User Group Policy Additional Parameters - Manage — управление дополнительными параметрами GPO, относящимися к пользователям.
- User Group Policy Additional Parameters - Read — чтение дополнительных параметров GPO пользователей.
- Computer Group Policy Additional Parameters - Read — чтение дополнительных параметров GPO компьютеров.
- Работа с компьютерами и пользователями:
- Computers - Read — чтение информации о компьютерах.
- Users - Read — чтение информации о пользователях.
- Работа с организационными единицами и DNS:
- Organization Units - Read — чтение информации о подразделениях (OU).
- DNS Zones - Read — чтение информации о DNS-зонах.
Настройка и запуск скрипта
- Загрузить скрипт на контроллер домена ALD Pro
-
Выдать права на выполнение:
sudo chmod +x main.sh
Описание работы
Общее
Утилита представляет собой Bash-скрипт с возможностью работы в командной строке (CLI) или через графический интерфейс (GUI). Для работы в графическом режиме в системе должно быть настроено графическое окружение и установлен пакет zenity.
Больше информации о работе можно получить в командной строке:
./main.sh --help
Экспорт групповой политики
Утилита экспортирует данные из LDAP, относящиеся к выбранной и настроенной групповой политике (GPO).
Экспортируемые данные объекта групповой политики: cn={UID},cn=gpolicy,cn=gp,dc=domain_sufix
где UID — идентификатор связи объекта групповой политики с подразделением;
domain_sufix — имя домена в формате dn=aldpro,dn=ru.
Экспортируемые данные связи объекта групповой политики с подразделением: cn={UID},cn=gprules,cn=gp,dc=domain_sufix
где UID — идентификатор связи объекта групповой политики с подразделением.
domain_sufix — имя домена в формате dn=aldpro,dn=ru/
Файлы экспортируются в формате .ldif. Поддерживаются два варианта экспорта:
- Для последующего импорта в тот же домен.
- Для импорта в другой домен.
Для экспорта используется следующая команда:
./main.sh -u <имя_пользователя> -P <имя_политики> -b <тип_сохранения> -d <имя_домена_импорта> -t <путь_сохранения>
Описание параметров:
-u <имя_пользователя>
— имя пользователя, который выполняет экспорт. Пример: -u user
-P <имя_политики>
— имя экспортируемой политики. Пример: -P gp_name
-b <тип_сохранения>
— определяет, нужно ли экспортировать данные и в каком объеме:
full
— полный экспорт, включая назначения подразделений.onlygp
— только свойства политики и параметры GPO, без информации о назначениях.
-d <имя_домена_импорта>
(опционально) — имя домена, для которого экспортируется политика. Нужен только при переносе объектов групповых политик между доменами. Пример: -d aldpro2.ru
-t <путь_сохранения>
(опционально) — каталог, в который будут сохранены экспортированные файлы. Пример: -t /home/user. Если каталог не указан, файлы сохраняются в каталоге, где находится скрипт main.sh.
Результат выполнения команды:
В выбранном каталоге, например /home/user, появятся файлы:
- <имя_политики>.ldif — содержит все параметры и свойства экспортированной групповой политики.
- <имя_политики>-rule1.ldif — содержит информацию о назначении GPO на подразделения. Сохраняется, если указан флаг -b full.
При сохранении ГПО для другого домена, даже при указании флага -b full информация о доп. параметрах групповых политики и связанных подразделениях не будет сохранена.
Предупреждения: Скрипт выполняет сохранение всех параметров объектов групповой политики (GPO) без исключений. Некоторые параметры могут включать конфиденциальные данные. Например, параметр “Переменная пользователя cron” содержит атрибут “Имя пользователя”. Перед выполнением экспорта, особенно при переносе данных в другую среду, рекомендуется проверить соответствие требованиям безопасности и внутренним регламентам. Файлы экспорта (.ldif) содержат встроенную хеш-сумму, используемую для проверки целостности при восстановлении. Редактирование содержимого вручную приведет к ошибке валидации.
При наличии нескольких GPO в каталоге требуется указание имени или CN для экспорта конкретной политики. Это же требование применяется при копировании.
В этом случае для экспорта необходимой политики применяется следующая команда:
./main.sh -u <имя_пользователя> -C <CN_политики> -b <тип_сохранения> -d <имя_домена_импорта> -t <путь_сохранения>
Где -C <CN_политики>
—CN выбранного объекта групповой политики. Пример: -С de734e5a-409e-46c6-86b1-0e65825e92ad
Результат экспорта также сохраняется в указанном каталоге в следующем формате:
- <CN_политики>.ldif — содержит все параметры и свойства GPO.
- <CN_политики>-rule1.ldif — содержит информацию о назначении GPO на подразделения. Сохраняется, если указан флаг -b full.
CN нельзя посмотреть через веб-интерфейс ALD, поэтому если требуется получить уникальный CN GPO, это можно сделать следующим образом:
- Через DevTools браузера при вызове нужной политики.
- В базе данных LDAP в каталоге:
cn=gpolicy,cn=gp,``dc``=domain_sufix
Копирование объекта групповой политики
При работе в одном домене может возникнуть необходимость скопировать объект групповой политики (GPO). Для этого достаточно использовать команду со специальным флагом, чтобы не вызывать скрипт дважды.
./main.sh -u <имя_пользователя> -P <имя_политики> -n <имя_новой_политики> -с <тип_копирования> -t <путь_сохранения>
Описание параметров:
-u <имя_пользователя>
— имя пользователя, который выполняет копирование.
-P <имя_политики>
— имя исходной политики, которую необходимо скопировать.
-C <CN_политики>
—CN выбранного объекта групповой политики. Может быть использовано вместо -P <имя_политики>
-n <имя_новой_политики>
— имя новой политики, в которую будет скопировано содержимое.
-c <тип_копирования>
— определяет, какие данные будут скопированы:
full
— полное копирование, включая назначения подразделений.onlygp
— только свойства политики и параметры GPO, без информации о назначениях.
Флаги -d <имя_домена_импорта>
и -t <путь_сохранения>
не используются при копировании в рамках одного домена.
Результат выполнения команды:
- Создается новый объект GPO с указанным именем <имя_новой_политики>.
- CN для новой политики и подразделений генерируется автоматически на основе доступных значений.
- Если у пользователя есть необходимые права и используется флаг
-c full
, копируются все связанные подразделения. - Если прав недостаточно, копируется только объект GPO, без связей с подразделениями.
- После успешного копирования временный файл удаляется автоматически.
Рекомендации:
- Приоритеты связи групповых политик с подразделениями не проверяются автоматически. После копирования может возникнуть конфликт, если оригинальная и новая GPO применяются к одним и тем же подразделениям. Рекомендуется не использовать флаг
-b full
, если нет необходимости копировать связи. Если копирование выполнено с флагом-b full
, следует вручную проверить и изменить приоритеты GPO. - Из-за возможности изменений в существующих подразделениях и дополнительных параметрах GPO в рамках одного подразделения рекомендуется использовать именно копирование, а не экспорт-импорт. Это уменьшает вероятность создания связей с устаревшими объектами.
Импорт объектов групповой политики
Импортировать политики можно только в том домене, для которого они были экспортированы. Файлы, сохраненные для одного домена (например, ald.msk.ru), нельзя импортировать (восстановить) в другом домене (например, ald.spb.ru).
./main.sh -u <имя_пользователя> -P <имя_политики> -r <тип_восстановления> -t <путь_сохранения>
-u <имя_пользователя>
— имя пользователя, который выполняет импорт.
-P <имя_политики>
— имя сохраненной политики, которую нужно восстановить.
-C <CN_политики>
— CN выбранного объекта GPO (может использоваться вместо -P, зависит от способа экспорта).
-r <тип_восстановления>
— определяет, какие данные будут импортированы:
full
— полный импорт, включая назначения подразделений (возможно только в исходном домене, если при экспорте использовался флаг full).onlygp
— только свойства политики и параметры GPO, без информации о назначениях (доступно всегда).
-t <путь_сохранения>
— путь к каталогу, в котором находятся сохраненные файлы. Можно не указывать, если скрипт находится в одной директории, что и файлы экспорта.
Результат выполнения команды:
- Будет создан новый объект GPO с именем сохраненной политики <имя_политики>.
- CN для новой политики и подразделений будет сгенерирован автоматически, на основе доступных значений.
- После успешного копирования временный файл будет автоматически удален.
Рекомендации по импорту совпадают с рекомендациями для копирования GPO.
Возможные ошибки и их исправления
- Несовпадение версий ALD Pro. Решение: Скрипт рекомендуется использовать на поддерживаемых версиях ALD Pro. В случае несовместимости обратиться к разделу: Совместимость скрипта с версиями ALD.
- Недостаточно прав пользователя в домене Решение: Проверить, что у пользователя есть все необходимые привилегии для восстановления GPO.
- Пользователь не имеет прав на запись/чтение в указанной директории. Решение: Убедится, что у пользователя есть необходимые права на каталог. Измените директорию сохранения ( -t <путь_сохранения> ).
- Файл был изменен вручную. LDIF-файлы содержат хеш-сумму, которая проверяется при восстановлении. Любые изменения в файлах делают восстановление невозможным. Решение: Использовать только оригинальные файлы, экспортированные скриптом.
- Если скрипт запускается в графическом режиме (-g), но отсутствует графическое окружение, произойдет ошибка. Решение:
- Проверить наличие установленного графического окружения.
-
Убедится, что установлен Zenity:
sudo apt install zenity для Debian/Ubuntu
Описание
Репозиторий содержит скрипты для управления групповыми политиками ALD Pro