Многие организации в России переходят на Linux-решения, и планируют каким-то способом управлять своим парком машин. В общих словах им необходима массовая настройка операционных систем по некоторым шаблонам. На этот случай есть различные решения — от Ansible до Samba, но в этом материале я подробно расскажу про групповые политики от Alt. Постараюсь написать об интересных технических реализациях, собственных графических инструментах, приведу схемы, и, в двух словах, расскажу о сходстве и различии с другими популярными решениями.
Групповые политики от Alt позиционируются в качестве совместимых с решением MS Active Directory. Тема групповых политик в MS AD очень подробно задокументирована, поэтому кратко напомню только самые необходимые сведения.
Механизм групповых политик в домене требует наличие контроллера домена и его клиентов. На контроллере должна работать служба каталогов (AD), и быть настроен каталог Sysvol, в котором хранятся файлы с параметрами политик. Для каждого объекта групповой политики (GPO) в каталоге Sysvol автоматически создаются свои шаблоны групповых политик (GPT), где и расположены файлы с настройками для компьютеров и пользователей. Следовательно, задача контроллера — поддерживать актуальный Sysvol со всем его содержимым и управлять службой каталогов (Active Directory), в которой объекты групповых политик привязаны к организационным единицам (Organization Unit). Задача клиента — корректно считать файлы со своими настройками, и применить их по расписанию или принудительно. Требование для рабочего места администратора — получить необходимые инструменты управления подразделениями службы каталогов, создания объектов групповых политик (GPO) и их наполнению параметрами через admx-шаблоны или иным способом.
Решение от Alt поддерживает работу во всех трех направлениях — контроллер домена, клиент и рабочее место администратора. Начну с графических приложений для управления службой каталогов и редактирования групповых политик. В MS Windows подобный набор инструментов администратора называется RSAT - Remote Server Administration Tools, иначе говоря Средства удаленного администрирования сервера. RSAT - это набор приложений. Программисты Alt создали ряд аналогичных графических приложений для Linux.
Первое из них называется ADMC, его функции схожи с "Пользователями и компьютерами" от MS - такое же управление подразделениями службы каталогов контроллера домена.
Приложение Alt ADMC управляет объектами службы каталогов и объектами групповых политик. Т.е. выполняет операции с компьютерами, пользователями, группами, подключается к контроллерам домена и т.п. Создает объекты групповых политик, связывает их с подразделениями.
Вторая графическая утилита называется GPUI - это редактор групповых политик. Alt GPUI поддерживает загрузку admx-шаблонов с локального компьютера и политики настройки системы ("предпочтения", preferences). Этих двух инструментов уже достаточно для того, чтобы через Linux-клиент управлять групповыми политиками в Windows-домене. Предварительно установив из репозитория admx-шаблоны для Windows-машин. Либо управлять доменом на базе Samba DC с Linux-клиентами Alt. Также установив родные admx-шаблоны.
Усложним схему и добавим в домен MS AD Linux-клиенты Alt. Модуль применения групповых политик здесь называется по аналогии с MS — gpupdate. Забегая вперед отмечу, что это собственная разработка, отличная от того же самого samba-gpupdate. Alt gpupdate версии 0.9.12.6-alt1 обрабатывает более 200 собственных системных политик, и — в сумме на три браузера — около 900 политик из шаблонов браузеров Yandex, Chromium и Firefox. В случае браузерных политик речь идет о формировании корректных json-файлов браузерам для политик компьютера. Замечу, что небольшая часть из этих браузерных политик требует windows-систему и не применится самим браузером. Но в целом выходит — более 1100 управляемых параметров. В довесок системные администраторы могут дополнять набор выполняемых политик, пользуясь механизмами применения, заложенными в Alt gpupdate: polkit, control, gsettings, systemd. Это не говоря о поддержке startup\shutdown\logon\logoff скриптов из настроек системы ("предпочтений", preferences).
Механизм polkit-политик формирует правила (rules) на основе действий (actions) и позволяет настраивать ограничения в системе для приложений, поддерживающих polkit. Полный перечень доступных action можно узнать командой $pkaction
. Приложения в вашей системе, работающие с шиной D-Bus, скорее всего такую поддержку используют. Механизм control управляет состоянием одноименных системных регистров, фактически это скрипты, которые могут настраивать систему. Полный список доступных настроек можно узнать командой #control
. Механизм gsettings управляет ключами dconf через утилиту gsettings. Ряд окружений рабочего стола (Desktop Environment - DE) хранит настройки в базе dconf, в частности Gnome и ее производные. Список ключей dconf можно посмотреть командой $gsettings list-recursively
. Конкретно в Alt сформирован admx-шаблон для dconf-ключей оболочки Mate. Механизм systemd управляет запуском служб.
Для сравнения в admx-шаблонах проекта Samba содержится около 350 машинных политик, подавляющая часть которых управляет настройками сервера Samba, в том числе в роли контроллера домена. Здесь стоит упомянуть также прочие решения на ansible, которые применяются например в домене FreeIPA. В этом случае у вас нет возможности напрямую встраиваться к Sysvol и службе каталогов, как это делают Alt или Samba.
Подведу короткий итог по решению групповых политик в Linux-системе от Alt. Разработан набор инструментов с открытым кодом для работы с ГП формата MS AD на Linux системах. Это графические системы управления службой каталогов и редактор групповых политик. Для Linux-систем здесь аналогов пока нет. Можно управлять настройкой ГП в windows-домене или samba-домене через AD и Sysvol.
Это механизм применения политик на Linux-клиентах, под названием gpupdate. Аналогичный по названию, но не функционалу, механизм есть у Samba. Частичный функционал можно реализовать через ansible и схожие решения. Alt gpupdate своей разработки, с ним клиент может применять политики и в домене MS AD, и в домене Samba DC. Считывает Sysvol контроллера домена и обрабатывает.
Gpupdate поддерживает некоторую часть Windows-политик в виде отображения (mapping), и работает с довольно внушительным набор собственных политик системы Alt. Механизмы Gpupdate поддерживают управление скриптами, control, правилами policykit, настройками gsettings для окружения рабочего стола, службами systemd, системными настройками, монтирование дисков, подключение общих каталогов, и много чего еще. Поддерживают полный набор машинных групповых политик браузеров - Yandex, Firefox и Chromium.
И последнее. Код инструментов и приложений, о которых я говорил, открыт. Это свободное программное обеспечение. Ссылки на git публикую ниже.
Благодарю Марию Фоканову за оформление иллюстраций и коллег за полезные замечания к материалу.