Этой статьей я постараюсь описать процесс управления конфигурацией современных версий Mozilla Firefox в среде предприятия (доменной среде на базе Microsoft Active Directory).
Проблемы централизованного управления параметрами браузера Firefox
Ранее, управление настройками Firefox, в среде предприятия не представляло особой сложности, так как, как и любое правильное Windows приложение, Firefox хранил все свои настройки в реестре. Можно было найти или написать самому, необходимые административные шаблоны групповых политик, чтобы упростить администраторам весь процесс (к примеру, для того же Chrome, Google разработала и поддерживает набор adm/admx шаблонов). Однако, компания Mozilla решила этому правилу изменить и теперь Firefox хранит свои настройки в файлах, находящиеся в профиле пользователя.
Покопавшись довольно длительное время в Интернете, я нашел некоторое количество «решений» данной проблемы. Но … все они не работоспособны по разным причинам. Общая идея этих решений – создать GPO, заполнить ветку реестра, а затем, с помощью скрипта на Visual Basic, прописать необходимые параметры в файлы конфигурации Firefox. На первый взгляд, все удобно и логично, но … всегда есть это «но». Разработчики Mozilla меняют как места расположения файлов конфигурации, так и название файлов и т.д.
Метод описанный в данной статье был протестирован на современных версиях Firefox (Firefox 45.0.1).
Особенности управления Firefox на предприятии
Есть целый ряд настроек, которые могут быть рассмотрены как для предварительной настройки, так и для отключения или блокировки в корпоративной среде, где пользователи, как правило, не будут иметь прав администратора и ИТ специалистам необходимо самим определять, какие параметры разрешить менять, а какие оставить предопределенными и неизменяемыми в среде предприятия.
Это может, например, включать:
- Import Wizard (Мастер импорта) – Firefox запускает этот Мастер при первом запуске для импорта настроек из других установленных браузеров. Вам может понадобиться отключить запуск данного Мастера настройки.
- Automatic updates for Firefox (Автоматические обновления) – Options / Advanced / Update / Firefox updates. Обновления Firefox лучше делать централизованно, а не отдельно, на каждом пользовательском компьютере. Авто обновление для расширений, можно оставить, так как они хранятся на компьютере пользователя.
- Mozilla Maintenance Service –(Сервис обслуживания) Firefox устанавливает службу обновления, которая позволяет обновлять Firefox автоматически, не запрашивая разрешений UAC. Эта возможность должна быть отключена или выключена в корпоративной среде.
- Default browser check (Проверка браузера по умолчанию) – Options / Advanced / General – Always check to see if Firefox is the default browser on startup. Если в корпоративной среде установлено, например, что браузером по умолчанию является Microsoft Internet Explorer, то такую проверку необходимо выключить, а возможность, для пользователя, установить Firefox в качестве браузера по умолчанию, заблокировать.
- Отключить загрузку, при первом запуске, вкладки ‘Welcome to Firefox’, и оповещений ‘Know your rights’ и ‘Improve Firefox’.
Управление и блокировка настроек Firefox
Firefox может быть настроен со значениями по умолчанию и с заблокированными настройками для каждого нового профиля пользователя. Таким образом, настройки будут содержать все необходимые вам параметры. Mozilla упростили (да, ладно! щазз!) процедуру развертывания с предустановленными настройками путем добавления некоторых специальных файлов во время инсталляции (или, например, в момент подключения компьютера в сеть домена)/ Предполагается, что Firefox установлен в папку по умолчанию:
- %ProgramFiles%\Mozilla Firefox\defaults\pref\all-settings.js
- %ProgramFiles%\Mozilla Firefox\Mozilla.cfg
Сам Firefox, будет сконфигурирован с настройками по умолчанию и с блокировкой изменения необходимых параметров.
Более подробно об этом можно прочитать в статье http://kb.mozillazine.org/Locking_preferences. Следует учесть, что статья уже успела слегка устареть, но основные принципы все еще работают.
Для назначения пользовательских установок надо использовать возможность блокировки пользовательских предпочтений.
Файл all-settings.js
Файл all-settings.js нужен для того, чтобы «сказать» Firefox, что необходимо считать из файла Mozilla.cfg ряд настроек конфигурации. Просто добавьте в файл all-settings.js две строки:
pref("general.config.obscure_value", 0);
pref("general.config.filename", "mozilla.cfg");
Файл Mozilla.cfg
Вот здесь мы можем определить и заблокировать необходимые нам настройки Firefox. В примере ниже, например, отключили и заблокировали функцию автоматического обновления, вкладку «Добро пожаловать в Firefox» и уведомления «Знай свои права», и «Улучшение Firefox. Последняя строка отключает возможность установить Firefox в качестве браузера по умолчанию.
ВАЖНО:
- Все параметры, в файле Mozillacfg, следует начинать писать со второй строки. Не спрашивайте меня почему. Например, вставьте комментарий // в первую строку.
- Параметры и все настройки учитывают регистр написания букв (case-sensitive). При ошибке написания, Firefox попросту не запустится.
lockPref("app.update.auto", false);
lockPref("app.update.enabled", false);
lockPref("app.update.service.enabled", false);
lockPref("toolkit.telemetry.prompted", true);
lockPref("browser.rights.override", true);
lockPref("browser.startup.homepage_override.mstone", "ignore");
lockPref("browser.shell.checkDefaultBrowser", false);
Ниже приведен пример файла Mozilla.cfg, который используется в реальной корпоративной среде.
Комментарии на английском, надеюсь не сложно, для понимания.
// Parameters keywords.
// pref
// sets the preference as if a user had set it, every time you start the browser.
// So users can make changes, but they will be erased on restart. If you set a
// particular preference this way, it shows up in about:config as "user set".
// defaultPref
// is used to alter the default value, though users can set it normally and their
// changes will be saved between sessions. If preferences are reset to default
// through the GUI or some other method, this is what they will go back to.
// Appears in about:config as "default".
// lockPref
// is used to lock preferences so they cannot be changed through the GUI or about:config.
// In many cases the GUI will change to reflect this, graying out or removing options.
// Appears in about:config as "locked". Some config items require lockPref to be set,
// such as app.update.enabled. It will not work if it set with just pref.
// clearPref
// can be used to "blank" certain preferences. This can be useful e.g. to disable functions
// that rely on comparing version numbers.
// Set browser custom home-page
pref("browser.startup.homepage","http://www.yourdomain.ru");
pref("browser.startup.page",1);
// Proxy settings
pref("network.proxy.ftp", "xxx.xxx.xxx.xxx"); // можно написать доменное имя
pref("network.proxy.ftp_port", 3128); // номер порта proxy-сервера
pref("network.proxy.http", "xxx.xxx.xxx.xxx"); // можно написать доменное имя
pref("network.proxy.http_port", 3128); // номер порта proxy-сервера
pref("network.proxy.share_proxy_settings", true);
pref("network.proxy.socks", "xxx.xxx.xxx.xxx"); // можно написать доменное имя
pref("network.proxy.socks_port", 3128); // номер порта proxy-сервера
pref("network.proxy.ssl", "xxx.xxx.xxx.xxx"); // можно написать доменное имя
pref("network.proxy.ssl_port", 3128); // номер порта proxy-сервера
pref("network.proxy.type", 1);
// Check default browser
pref("browser.shell.checkDefaultBrowser", false);
// Disable updater
pref("app.update.enabled", false);
// Make absolutely sure it is really off
pref("app.update.auto", false);
pref("app.update.mode", 0);
pref("app.update.service.enabled", false);
// Disable Add-ons compatibility checking
clearPref("extensions.lastAppVersion");
// Don't show 'know your rights' on first run
pref("browser.rights.3.shown", true);
// Don't show WhatsNew on first run after every update
pref("browser.startup.homepage_override.mstone","ignore");
// Disable the internal PDF viewer
pref("pdfjs.disabled", true);
// Disable the flash to javascript converter
pref("shumway.disabled", true);
// Don't ask to install the Flash plugin
pref("plugins.notifyMissingFlash", false);
//Disable plugin checking
pref("plugins.hide_infobar_for_outdated_plugin", true);
clearPref("plugins.update.url");
// Disable health reporter
pref("datareporting.healthreport.service.enabled", false);
// Disable all data upload (Telemetry and FHR)
pref("datareporting.policy.dataSubmissionEnabled", false);
// Disable telemetry
pref("toolkit.telemetry.enabled",false);
pref("toolkit.telemetry.rejected",true);
pref("toolkit.telemetry.prompted",2);
// Disable Health report
pref("datareporting.healthreport.uploadEnabled", false);
// Disable warning OnClose multiple tabs
pref("browser.tabs.warnOnClose", false);
Другие параметры, на свой вкус, можно выбрать на странице about:config Firefox 🙂
Копирование файлов с настройками Firefox на компьютеры пользователей с помощью GPP
А дальше, необходимо скопировать эти файл на компьютеры пользователей. Для этого средствами GPP надо создать правила удаления/копирования файлов.
ВАЖНО: Не забыть, что файлы с конфигурациями надо разместить там, где Domain Computers смогут их прочитать. Возможны, как минимум, два варианта:
- Разместить файлы в папке NETLOGON – но это моветон 🙂
- Разместить файлы на общем сетевом ресурсе и дать право чтения файлов для Domain Computers. Напоминаю: все происходит во время запуска компьютера и входа в домен, то есть во время StartUp, когда пользователя еще нет, запускаемся с правами SYSTEM)
У меня эти файлы хранятся в папке Firefox на общем сетевом ресурсе.
Пара моментов:
- Используется “Enforced” политика, которая применяется каждый раз при подключении компьютера к сети.
- Каждый раз файлы удаляются и копируются заново. Зачем? Мне, пока, так удобнее. Не более того.
Копирование/удаления файлов делаем через GPP: Computer Configuration –> Preferences –> Windows Settings -> Files
Окончательно это будет выглядеть примерно так:
Что в итоге?
Да, собственно, и все. Мы настроили файл Mozilla.cfg и раздали его на пользовательские компьютеры. Теперь вы можете создать свой Mozilla.cfg, определить необходимые настройки, зафиксировать, без возможности изменения пользователем настройки, которые считаете нужными.
Все в ваших руках.