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


    Предисловие


    Одним из недостатков программных продуктов от 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?

    • 61.9%Несомненно нужен давно ждал!125
    • 0.5%Нужен, но ещё бы в него поддержку приложения… (Укажу в комментариях. Например SeaMonkey )1
    • 1.5%Нужен, но ещё в него бы функционал… (Укажу в комментариях)3
    • 5.0%Используем Firefox/Thunderbird в корпоративной среде, но этот плагин бесполезен.10
    • 5.9%Не используем Firefox/Thunderbird, впринципе.12
    • 7.9%Не используем Firefox/Thunderbird, потому, что не было возможности управлять ими из групповой политики.16
    • 17.3%Я не администратор домена Windows — проходил мимо, поинтересовался.35
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 10

      0
      Я не администратор домена Windows, но интересно попробовать. Спасибо за Ваш труд!
        +1
        Да, не за что — для себя же делал.
        –1
        Firefox под настиском Chrome постепенно отступает. Chrome очень просто и быстро разворачивается через GPO, подхватывает стандартные настройки для прокси и исключения опять же, через GPO. А обычно большего и не надо. Поэтому необходимости в Firefox как-то не увиделось. Но, если понадобится, спасибо за статью. Насчет Thunderbird: с тех пор как компания перешла на GAPPS for Business так и все почтовые клиенты на местах работников отмирают. Даже самые консервативные пользователи через месяцы работы предпочитают веб-клиент. Остаются на своих почтовых клиентах те, которые на самом деле «рабы привычек».
          0
          Chrome очень просто и быстро разворачивается через GPO, подхватывает стандартные настройки для прокси и исключения опять же, через GPO. А обычно большего и не надо. Поэтому необходимости в Firefox как-то не увиделось

          К сожалению chrome делает слишком много «лишних» запросов — поэтому у нас его не одобряют к использованию. Да и Firefox используем исторически.
          Из GPO же разворачивать ПО… это сильно «на любителя».
          GAPPS for Business

          Облака не для всех приемлемы.
            0
            А чем разворачиваете ПО?
              0
              Специализированных систем для управления парком ПК и массовой установки ПО хватает:
              System Center Configuration Manager
              Symantec Endpoint Management (Altiris)
              LANDesk Management Suite
              Karpersky Security Center позволяет разворачивать ПО
              и много остального на любой вкус и кошелёк.

              Самое главное:
              • специализированным ПО можно разворачивать пакеты в заданный интервал времени (некоторые ПК в сети могут не перезагружаться очень долго).
              • специализированное ПО даёт обратную связь по результатам установки пакетов.
              • специализированное ПО имеет дополнительные возможности по взаимодействию с пользователем (уведомить пользователя, что обновляется ПО, попросить закрыть окно, чтобы не потерялся редактируемый документ).
              • специализированное ПО имеет собственные методы доставки пакетов на ПК пользователя (в первую очередь это касается удалённых подразделений).


              Увеличение объёма sysvol не всегда приемлемо в большом распределённом домене — при большом sysvol установка нового контроллера, или срочная перестановка отказавшего может стать проблемой (долго будет идти первая репликация или доставлять IFM)
                +1
                Я разворачиваю через GPO и периодически возникают проблемы с обновлением установленных программ. Сейчас присматриваюсь к ПО для массовой установки.
                Спасибо за ответ и за плагин с расширение к Thunderbird!
          0
          Не хватает способа (в смысле не нашел я такой способ) для разворачивания новых версий через групповые политики.
          Может кто знает как несложно перепаковывать thunderbird в msi пакет?
            +1
            Не нужно это делать. И разворачивать через GPO не нужно. есть такая штука — Local Update Publisher (http://habrahabr.ru/post/150518/), которая позволяет разворачивать любой софт через WSUS.
              0
              Спасибо, почитаю.

          Only users with full accounts can post comments. Log in, please.