Pull to refresh

Управление Firefox и Thunderbird из Групповой политики

Reading time5 min
Views51K

Предисловие


Одним из недостатков программных продуктов от Mozilla является их слабая ориентированность на корпоративный сегмент пользователей. К сожалению для управления инсталляциями продуктов Mozilla в крупных компаниях существует не так много инструментов. Построены они бывают на основе:
  • Получения части конфигурации с веб сервера — Mozilla AutoConfig (https://developer.mozilla.org/en-US/docs/MCD,_Mission_Control_Desktop_AKA_AutoConfig)
  • Интеграции части конфигурации в дистрибутив продукта (плагина для продукта)
    — CCK (https://addons.mozilla.org/en-US/firefox/addon/cck/)
  • Получение части настроек из GPO GPOFirefox (https://addons.mozilla.org/ru/firefox/addon/gpo-for-firefox/)

Мне больше нравится последний подход: он позволяет гибко привязывать настройки к различным группам компьютеров и пользователей, а также все настройки можно делать из консоли групповой политики не углубляясь в написание каких-либо скриптов (в AutoConfig тоже можно формировать настройки на основе данных о пользователе, но там для этого потребуется разработка скриптов на стороне сервера). Кроме того для реализации управления из групповой политики не требуется разворачивать дополнительных отказоустойчивых серверов.
К сожалению, плагин GPOFirefox реализован только для Firefox и не имеет некоторого необходимого мне функционала, поэтому пришлось написать собственный, подходящий и для Firefox и для Thunderbird, которым я решил поделиться с сообществом.


Возможности


Вот перечень возможностей заложенных в плагин:
  • Поддержка одним плагином установки и в Firefox и в Thunderbird
  • Установка из групповой политики как настроек по-умолчанию (defaultPref) так и заблокированных для пользователя настроек (lockPref). Собственно этот функционал есть у всех систем настройки продуктов Mozilla
  • Возможность использования в настройках некоторых подстановочных строк, которые при применении настроек заменяются значением переменных окружения пользователя. В частности поддерживаются переменные окружения: %username%, %userdomain%, %userdnsdomain%, %userprofile%, %computername%.
  • Управление корневыми сертификатами в профиле пользователя. В частности поддерживается установка и удаление корневых сертификатов.
  • Логирование всех действий плагина в консоли ошибок. Несомненно при диагностике применения GPO полезно иметь лог, в котором видно какие настройки были применены из политики
  • ADMX шаблон групповой политики, позволяющий без правки шаблона настраивать любые параметры Firefox и Thunderbird. Единственное ограничение — одновременно устанавливать можно не более 10-ти корневых сертификатов и удалять не более 10-ти корневых сертификатов. (Хотел сделать любое количество, но столкнулся с ограничениями синтаксиса шаблонов групповой политики: у элемента text максимальную длину можно поменять, а вот у list данная возможность отсутствует.)


Теперь подробно о каждой возможности.


Поддержка одним плагином установки и в Firefox и в Thunderbird

На мой взгляд логично, что в компании, где в качестве браузера используется Firefox в качестве почтового клиента будет использоваться Thunderbird. Создавать по плагину для каждой программы когда подход к настройкам полностью идентичен — смысла нет. В то же время иногда настройки, одинаково называющиеся в обоих программах, должны быть в них разными. Поэтому плагин при запуске определяет в какой программе он запущен (по уникальному идентификатору) и читает настройки из соответствующей части политики.

Установка из групповой политики как настроек по-умолчанию (defaultPref) так и заблокированных для пользователя настроек (lockPref).

Все настройки доступны из консоли управления политикой


Возможность использования в настройках некоторых подстановочных строк

На мой взгляд при настройке таких параметров network.negotiate-auth.trusted-uris удобно использовать значение установленной у пользователя переменной %userdnsdomain%.
Также используя значения переменных пользователя %username%, %userdomain%, %userdnsdomain% удобно генерировать настройки-поумолчанию для почтового профиля пользователя (чтобы при первом запуске Thunderbird у пользователя уже был настроен его почтовый ящик, а при необходимости — пользователь мог скорректировать эти настройки.)

Логирование всех действий плагина в консоли ошибок.

Пожалуй единственная настройка, которая недоступна из групповой политики и применяется только из профиля пользователя это extensions.gpo.enablelog — она включает логирование действий плагина в консоли ошибок. Данная настройка считывается до чтения групповой политики и поэтому повлиять на её значение из GPO невозможно.
Лог в консоли выглядит примерно так:


ADMX шаблон групповой политики, позволяющий без правки шаблона настраивать любые параметры Firefox и Thunderbird.

С ADMX шаблоном пришлось изрядно повозиться, но оно того стоило. ADMX шаблоны имеют ряд преимуществ над старыми adm:
  1. Автоматически загружаются при старте консоли редактирования групповой политики
  2. Возможно организовать центральное хранилище этих шаблонов и они будут доступны с любой рабочей станции администратора
  3. Они хорошо локализуются и локализация автоматически подгружается в зависимости от языка ОС

К сожалению, предлагаемый для скачивания с microsoft.com FullArmor ADMX Migrator немного «ломает» шаблоны политик. Поэтому пришлось вооружиться документацией и доводить ADMX до рабочего состояния вручную.
Для того, чтобы можно было установить значение любого параметра введена политика «Настройка дополнительных параметров Mozilla», где, за счёт элемента list, можно просмотреть параметры, установленные другими политиками и установить любые параметры, изначально в шаблон не заложенные.


Управление корневыми сертификатами в профиле пользователя.

Когда корневой сертификат компании самоподписанный — перед администратором встаёт задача распространения его в профили пользователей. Можно было бы установить его в собственноручно собранный дистрибутив или воспользоваться CCK для установки сертификата. Но ведь сертификат может быть скомпрометирован и тогда его придётся менять на новый.
Изначально я надеялся реализовать добавление сертификатов через элемент list — как при редактировании дополнительных параметров (тогда можно было бы устанавливать и удалять любое количество сертификатов), но этот элемент имеет ограничение на длину текстового значения — 1033 символа, а для элемента text максимальную длину можно задать. Поэтому окно управления сертификатами имеет вид:

Добавлять или удалять можно до 10-ти сертификатов одновременно. Для добавления/удаления сертификата необходимо вставить его тело в base64 кодировке (в таком формате его можно, например, экспортировать из хранилища сертификатов Windows) в одно из десяти полей (любое) в соответствующей политике. Сертификаты устанавливаются перманентно, т.е. когда политика перестаёт применяться на пользователя/компьютер, то сертификаты в профиле остаются.
Удаление сертификата работает аналогично — просто необходимо добавить в значение одного из 10-ти полей тело сертификата в base64 кодировке — при следующем запуске программы с плагином после применения политики — сертификат будет удалён.

Установка плагина+шаблонов политик.


Пока плагин на addons.mozilla.org не опубликован (планирую заняться этим после того как сообщество выскажет своё мнение — возможно перед официальной публикацией внесу какие-нибудь корректировки в соответствии с пожеланиями).
Скачать плагин и шаблоны политик можно со страницы проекта на sourceforge: mozillagpo.sourceforge.io
Там же расположена краткая документация и некоторые рекомендации по использованию.

Для установки шаблонов политик достаточно распаковать содержимое архива PolicyTemplate.zip в папку %systemroot%\PolicyDefinitions на компьютере администратора. Или воспользоваться инструкцией по созданию центрального хранилища шаблонов политик.

Плагин можно установить:
Only registered users can participate in poll. Log in, please.
Нужен ли Вам такой плагин для Firefox и Thunderbird?
62.44% Несомненно нужен давно ждал!128
0.49% Нужен, но ещё бы в него поддержку приложения… (Укажу в комментариях. Например SeaMonkey )1
1.46% Нужен, но ещё в него бы функционал… (Укажу в комментариях)3
4.88% Используем Firefox/Thunderbird в корпоративной среде, но этот плагин бесполезен.10
5.85% Не используем Firefox/Thunderbird, впринципе.12
7.8% Не используем Firefox/Thunderbird, потому, что не было возможности управлять ими из групповой политики.16
17.07% Я не администратор домена Windows — проходил мимо, поинтересовался.35
205 users voted. 44 users abstained.
Tags:
Hubs:
+5
Comments10

Articles