Portál AbcLinuxu, 12. července 2025 10:55

Firefox - centrální konfigurace v síti

20.5.2019 19:36 | Přečteno: 2393× | windows | poslední úprava: 20.5.2019 19:49

Jak držet jednotné nastavení Firefoxu na spoustě PC v síti? Jednoduše, ale i složitě.

Firefox a GPO

Firefox nepodporuje Group Policy, resp. donedávna nepodporoval. S příchodem Firefox ESR (Extended Support Release) ve verzi 60 přibyla podpora GPO.

Každopádně né všude lze GPO použít (sítě bez domény, nebo sítě na Linuxu).

Máme zde nástroje třetích stran, jako je např. PolicyPack, nebo případně klikací autoconfig v podobě Firefox-ADMX, který je dnes již obsolete.

Každopádně kdo nemá k dispozici ani jedno zmíněné, tomu nezbývá, než použít fci autoconfigu, kterou Firefox nabízí.


Firefox autoconfig

Firefox při spouštění kouká do své adresářové struktury a pokud v ní najde soubor s konfigurací, tak jej použije. Pomocí autoconfigu lze i importovat certifikáty do Firefoxu, lze zakázat editaci určitých voleb, nebo skrývat části GUI.

Firefox tedy kouká, zda existuje jeden nebo více nějakých "js" souborů v "\defaults\pref\*.js"
a pokud nějaký existuje, tak ho načte (v mém případě ho mám pojmenovaný "autoconfig.js"). V tomto souboru pak můžeme mít např. odkaz na konfigurační soubor Firefoxu, ze kterého má natáhnout nastavení. Tento soubor můžeme mít na PC lokálně hned vedle "autoconfig.js", nebo jej můžeme mít na síti (publikovaný na http, nebo nějakém share).


Jak vypadá příklad nastavení

Tady je příklad, jak to může vypadat :

// C:\Program Files\Mozilla Firefox\defaults\pref\autoconfig.js
// Any comment. You must start the file with a comment!
pref("general.config.filename", "firefox.cfg");
pref("general.config.obscure_value", 0);
Kdybychom chtěli hodit konfigurák na síť, tak použijeme (viz FF KB) :
pref("autoadmin.global_config_url","http://yourdomain.com/autoconfigfile.js");
a poté náš konfigurák :
// C:\Program Files\Mozilla Firefox\defaults\pref\firefox.cfg
// Enable updater
lockPref("app.update.enabled", true);

// make absolutely sure it is really off
//lockPref("app.update.auto", false);
//lockPref("app.update.mode", 0);
//lockPref("app.update.service.enabled", false);


// Disable crash reporter
lockPref("toolkit.crashreporter.enabled", false);
Components.classes["@mozilla.org/toolkit/crash-reporter;1"].getService(Components.interfaces.nsICrashReporter).submitReports = false;


// Disable all data upload (Telemetry and FHR)
lockPref("datareporting.policy.dataSubmissionEnabled", 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");

// Set default homepage - users can change
// Requires a complex preference
//defaultPref("browser.startup.homepage","data:text/plain,browser.startup.homepage=http://home.example.com");

// 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
//lockPref("plugins.hide_infobar_for_outdated_plugin", true);
//clearPref("plugins.update.url");

// Disable health reporter
//lockPref("datareporting.healthreport.service.enabled", false);


//Firefox Default Settings
// set proxy settings to 'Auto-detect proxy settings for this network'
pref("network.proxy.type", 4);

// enable sso
pref("network.negotiate-auth.trusted-uris",  "");
pref("network.automatic-ntlm-auth.trusted-uris",  "intranet.corp.company.cz,mail.corp.company.cz,gfi.corp.company.cz");




// This imports a root certificate into Firefox
// The certificate has to be in defaults/pref directory of Firefox
// Source : http://xulfr.org/forums/read.php?1,8256

function importCert(certFileName) {
    var BEGIN_CERT = "-----BEGIN CERTIFICATE-----";
    var END_CERT = "-----END CERTIFICATE-----";

    var x509certdb = Components.classes["@mozilla.org/security/x509certdb;1"];
    var certDB ;
    try {
        // For Firefox <=32
        certDB = x509certdb.getService(Components.interfaces.nsIX509CertDB2);
    }
    catch (exc) {
        // For Firefox >=33
        certDB = x509certdb.getService(Components.interfaces.nsIX509CertDB);
    }

    var ioService = Components.classes["@mozilla.org/network/io-service;1"]
                            .getService(Components.interfaces.nsIIOService);

    var scriptableStream = Components.classes["@mozilla.org/scriptableinputstream;1"]
                                    .getService(Components.interfaces.nsIScriptableInputStream);


                                    
    // https://developer.mozilla.org/en-US/Add-ons/Code_snippets/File_I_O#Getting_special_files
    Components.utils.import("resource://gre/modules/FileUtils.jsm");
    var certFile = FileUtils.getFile("PrfDef", [certFileName]);
    //var certfile = FileUtils.File('C:\\company_ca\\certs\\CompanyRootCA-G2.crt');

    // http://www.mozilla.org/projects/security/pki/nss/tools/certutil.html
    var trustFlags = "C,C,C";

    var channel = ioService.newChannelFromURI(ioService.newFileURI(certFile));
    var input = channel.open();
    scriptableStream.init(input);
    var certfile = scriptableStream.read(input.available());
    scriptableStream.close();
    input.close();

    certfile = certfile.replace(/[\r\n]/g, "");
    begin = certfile.indexOf(BEGIN_CERT);
    end = certfile.indexOf(END_CERT);
    cert = certfile.substring(begin + BEGIN_CERT.length, end);

    certDB.addCertFromBase64(cert, trustFlags, "");
}

importCert("CompanyRootCA-G2.crt");
importCert("CompanyRootCA.cer");

Co jsme to nastavili :


Ve skriptech je vidět použití "pref" a "lockPref" což znamená, že v případě "pref" se FF načte s definovaným nastavením, ale uživatel je může změnit. Pokud nechceme uživateli tuto změnu povolit, tak místo "pref" použijeme "lockPref".


Jak ve Win distribuovat nastavení pro FF?

Osobně jsem si na to kdysi napsal instalátor pomocí InnoSetup, viz : Inno Setup : OSS instalátor pro windows.
V popisovaném článku je i příklad pro Firefox.
Tím je zajištěna kontrola integrity a verze nasazeného nastavení a není to závislé na Active Directory.


Jak je to v Linuxu?

Je to trochu rozpačité, viz #1170092, #1422797
Jinými slovy, záleží, co máte za verzi a jak vaše distribuce patchuje. Může to být jeden z těchto adresářů :


Závěr

Možnosti jsou velké, ale někdy člověk může i tak narazit. Třeba odebrání certifikátu nemusí být jednoduché.

A co vy, používáte někdo Autoconfig?

Zdar Max

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

21.5.2019 10:08 MP
Rozbalit Rozbalit vše Re: Firefox - centrální konfigurace v síti
Odpovědět | Sbalit | Link | Blokovat | Admin
Pouzival jsem autoconfig. Mam takovy pocit, ze mel jeste jeden problem - soubory se zkopirovaly do user uctu, ale zmeny v defaultnich souborech se pak jiz v user uctech neprojevuji.

Dnes jiz dlouhodobe tlacim firmu do Chrome.
Max avatar 21.5.2019 10:17 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Firefox - centrální konfigurace v síti
Nic takového nepozoruji. Jinak my jsme benevolentní. Kdo chce používat Edge, používá Edge, kdo chce chrome, ten ho má, kdo FF, ten ho má.
Navíc se občas stále ještě ukáže nějaký problém, kdy něco funguje korektněji (nějaký korporátní shit app) ve FF místo v Chrome. Sharepoint zase nejlíp funguje v IE, aspoň tu verzi Sharepointu co máme.
Zdar Max
Měl jsem sen ... :(

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.