Групповые политики
Групповые политики в решениях ALT
Групповая политика — это набор правил, в соответствии с которыми производится настройка рабочей среды относительно локальных политик, по умолчанию. Групповые политики в реализации [[Active_Directory] - это часть интегрированного решения. Альтернативной реализацией Active Directory под Linux/Unix является проект Samba. Поддержка применения групповых политик в конкретных дистрибутивных решениях, в целом, не является частью проекта Samba. В данной статье представлен общий обзор данного инструмента в контексте интеграции применения групповых политик в решениях ALT.
Общий подход
Групповые политики, как механизм, отличаются от стандартных инструментов управления конфигурациями (таких как, например, Puppet и Ansible) тремя ключевыми особенностями:
- интеграцией в инфраструктуру Active Directory;
- соответствием декларативной части настроек конфигураций конкретным дистрибутивным решениям;
- наличием не только управления конфигурациями компьютеров, но и конфигурациями пользователей
Интеграция в инфраструктуру LDAP-объектов Active Directory позволяет осуществлять привязку настроек управляемых конфигураций объектам в дереве каталогов. Кроме глобальных настроек в рамках домена, возможна привязка к следующим группам объектов:
- подразделениям (OU - organizational units) - пользователям и компьютерам, хранящимся в соответствующей части дерева объектов;
- сайтам - группам компьютеров в заданной подсети в рамках одного и того же домена.
- конкретным пользователям и компьютерам.
Кроме того, в самих объектах групповых политик могут быть заданы дополнительные условия, фильтры и ограничения, на основании которых принимается решение о том как и, вообще, нужно или не нужно применять данную групповую политику. В качестве дополнительных условий можно установить окружение, в котором выполняется групповая политика (пользовательское или системное), а также требование применять или не применять повторно данную политику, если ранее она уже применялась (например, чтобы удалённый вручную пользователем ярлычок повторно не появлялся на рабочем столе). В качестве фильтров используется информация о состоянии компьютера (размер свободного дискового пространства, наличии батареи (ноутбук или нет?), наличие в файловой системе конкретного файла или каталога, название операционной системы, тип сессии (локальный или терминальный), произвольный ldap или wmi запрос и др.)
Соответствие декларативной части настроек конфигураций конкретным дистрибутивным решениям позволяет управлять не действиями в виде названий скриптов, а вариантами настроек в контексте самих дистрибутивных решений. Таким образом, значения настроек конфигураций сводятся к значениям пар ключ/значение (в решениях от Microsoft такие настройки хранятся в так называемом реестре). Подробный список доступных настроек в оригинальных групповых политиках для решений представлен в таблице Windows 10 and Windows Server 2016 Policy Settings.
Настраиваемые параметры групповых политик подразделяются на пользовательские и машинные (политики компьютеров - рабочих станций и серверов). Машинные параметры применяются на узле в момент загрузки, в также в момент явного или регулярного запроса планировщиком. Поскольку пользовательские параметры не могут быть заранее запланированы (поскольку компьютеры в домене явно не привязаны к пользователям и заранее неизвестно какой пользователей попытается войти в систему на данном узле), пользовательские параметры применяются в момент входа в систему. Большинство параметров, устанавливаемых через групповые политики в Active Directory (ярлычки, принтеры, общие каталоги, сетевые настройки и ограничения, и даже дополнительно устанавливаемые программы), являются пользовательскими. Некоторые задачи управлениями конфигурациями можно решить как через пользовательские, так и через машинные параметры. Групповые политики, как техническое решение, прежде всего, подразумевают возможность управлениями не только машинными, но и пользовательскими конфигурациями.
Механизмы назначения и кеширования
В дистрибутивах ALT для применения групповых политик на данный момент предлагается использовать инструмент gpupdate. Инструмент рассчитан на работу на машине, введённой в домен Samba. Обновление машинных политик происходит раз в час. Среди применяемых настроек присутствуют:
Настройка | Комментарий |
---|---|
Установка домашней страницы браузера Firefox | |
Установка домашней страницы браузера Chromium | |
Запрет на подключение внешних носителей данных | |
Включение или выключение различных служб | |
Генерация ярлычков запуска программ | Гарантированно - для Chromium, для остальных случаев - присутствуют ограничения |
Оценить полный набор возможностей могут администраторы инфраструктур на базе Active Directory скачав файлы ADMX из репозитория: https://github.com/altlinuxteam/admx-basealt и загрузив их в оснастку RSAT.
Развёртывание
На текущий момент для включения инструмента групповых политик на клиентах AD необходимо установить пакеты из репозитория 241549
:
- oddjobd-gpupdate
- gpupdate
Подключение репозитория и установка производится командами:
apt-repo add 241549 apt-get install gpupdate oddjobd-gpupdate
Далее необходимо включить и запустить две службы:
systemctl enable oddjobd.service systemctl enable gpupdate.service systemctl start oddjobd.service systemctl start gpupdate.service
Чтобы включить обновление политик для пользователя необходимо выполнить команду (от имени этого пользователя):
systemctl --user enable gpupdate-user.service systemctl --user start gpupdate-user.service
После ввода машины в домен для применения групповой политики необходимо авторизоваться в качестве доменного пользователя и выполнить команду:
gpupdate
В результате работы команды должна примениться локальная политика и другие настройки.
Конфигурирование с помощью RSAT
Для задания конфигурации с помощью RSAT необходимо скачать ADMX файлы ("административные шаблоны") из репозитория https://github.com/altlinuxteam/admx-basealt и разместить их в директории \\<DOMAIN>\SYSVOL\<DOMAIN>\policies\PolicyDefinitions
. Корректно установленные административные шаблоны будут отображены в оснастке Group Policy Management Editor
в разделе Computer Configuration
> Policies
> Administrative Templates
> ALT System
:
При выборе опции из списка справа возможно задать конфигурацию службы или параметра:
Состав локальной политики
Для клиента также существует понятие локальной политики. Настройки локальной политики находятся в каталоге /usr/share/local-policy/default
. Данные настройки по умолчанию поставляются пакетом local-policy
. Администраторы инфраструктур имеют возможность поставлять собственный пакет с локальной политикой и развёртывать её единообразно на всех клиентах. Состав локальной политики может меняться или адаптироваться системным администратором.
Описание | Комментарий |
---|---|
Включение oddjobd.service | Необходимо для обеспечения возможности запуска gpupdate для пользователя с правами администратора.
|
Включение gpupdate.service | Необходимо для регулярного обновления настроек машины. |
Включение sshd.service | Необходимо для обеспечения возможности удалённого администрирования. |
Включение аутентификации с помощью GSSAPI для sshd | Необходимо для аутентификации в домене при доступе через SSH. |
Ограничение аутентификации для sshd по группам wheel и remote | Необходимо для ограничения доступа при доступе через SSH для всех пользователей домена (только при наличии соответствующей привилегии). |
Internals
Внутри разработанная утилита gpupdate
имеет достаточно простое устройство и технически позволяет настраивать следующие подсистемы дистрибутива:
Описание | Комментарий |
---|---|
controls | |
PolicyKit | Запрет на подключение внешних устройств за счёт генерации соответствующего файла .rules .
|
systemd | Позволяет включить или выключить сервис. |
Chromium | Позволяет установить домашнюю страницу браузера за счёт генерации файла машинной политики. |
Firefox | Позволяет установить домашнюю страницу браузера за счёт генерации файла машинной политики. |
Генерация .desktop файлов | Генерируем различные "ярлычки" для пользователя. На данный момент обладает определёнными ограничениями. |
Развёртвание различных настроек GSettings | Достигается за счёт генерации файла .gsettings.override .
|
Отладка
Групповые политики кэшируются в файле /var/cache/gpupdate/registry.sqlite (можно просматривать его командой sqlite3).