Autoconfig - Zentrale Kontrolle über den Webbrowser Firefox (ab Version 4)

Einleitung

Für zu Hause uninteressant, in einem Firmennetzwerk unerlässlich: Die Zentrale Verwaltung von Programmeinstellungen. Microsft hat sich so nette Dinge wie Gruppenrichtlinien einfallen lassen, um Einstellungen ihrer Programme (und anderer Programme, die ihre Konfiguration in der Registrierung ablegen) zentral zu steuern.

Das Mozilla Projekt geht hier aber andere Wege und die Einstellungen des Webbrowsers Firefox werden nicht in der Registrierung gespeichert. Für die Konfiguration des Browsers wird Autoconfig verwendet, das hier im Folgenden schrittweise angewendet werden soll.

Seit Firefox Version 4 haben sich grundlegende Änderungen in der zentralen Konfiguration ergeben. Ich habe die Anleitung deshalb vollständig neu erstellt. Hier geht es zur alten Anleitung für ältere Firefox-Versionen (bis Version 3).

« zurück (Gesammelte Anleitungen)

Inhalt

« zurück (Gesammelte Anleitungen)

Firefox - Wo finde ich was

Seit Firefox 4 hat sich die zentrale Konfiguration des Browsers vereinfacht und die Verzeichnisstruktur wurde bereinigt. Die mitgelieferten Konfigurationsskripte müssen nicht mehr angefasst werden und werden bei Aktualisierung von Firefox somit auch nicht mehr überschrieben.

Die Konfigurationsskripte liegen unterhalb von $INSTALLDIR\defaults\pref, also bei Windows bei einer Firefox Standardinstallation in C:\Programme\Mozilla Firefox\defaults\pref

Hinweis: In dem Verzeichnis befinden sich bereits Dateien, die aber zur Firefox-Installation gehören und nicht geändert werden sollten!

« nach oben

Die Konfigurationsdatei local-settings.js: Verweis auf eine zentrale Konfigurationsdatei

In dem oben genannten Konfigurationsverzeichnis $INSTALLDIR\defaults\pref legt man eine neue Datei an, z. B. mit dem Namen local-settings.js.

Wichtig bei der Namensgebung ist lediglich, dass sich der Name nicht mit den mitgelieferten Konfigurationsdateien überschneidet und dass die Datei die Endung .js hat.

Im Folgenden wird der Name local-settings.js für diese Datei verwendet.

Es gibt zwei verschiedene Fälle für eine zentrale Konfiguration:

  • Terminalserver:
    Firefox ist auf einem Terminalserver installiert und für jeden Benutzer sollen ein paar Einstellungen vorgegeben werden, die nicht überschrieben werden können. Die aufgerufene Konfigurationsdatei liegt hierbei auf der lokalen Festplatte, normalerweise auch im $INSTALLDIR von Firefox.
  • Lokale Installationen und/oder Terminalserver:
    Firefox ist auf vielen Arbeitsstationen installiert und man verweist auf eine Konfigurationsdatei, die auf einem Webserver im lokalen Netzwerk liegt. Ob die Installation nun auf einer normalen Arbeitsstation oder einem Terminalserver liegt, ist unerheblich. Alle Benutzer sollen dieselbe Konfiguration erhalten.

Um einen Verweis auf eine globale Konfigurationsdatei in local-settings.js einzubauen, müssen lediglich zwei Variablen über die Methode pref(attribute,value) oder lockPref(attribute,value) gesetzt werden:

// Datei: $INSTALLDIR\defaults\prefs\local-settings.js

pref("general.config.filename", "autoconfig.js");
pref("general.config.obscure_value", 0); // for MCD .cfg files

Der angegebene Dateiname wird relativ zu $INSTALLDIR ausgewertet. Die Variable obscure_value bezieht sich auf eine Rotation der einzelnen Zeichen um n Stellen (default: 13, auch bekannt als ROT13), um die Konfigurationsdatei auf den ersten Blick des Benutzers unleserlich zu machen.

Dieser Wert muss explizit auf 0 gesetzt sein, damit die Konfigurationsdatei gelesen werden kann. Wenn die Autokonfiguration nicht funktioniert, liegt es oft an der fehlenden Zeile für den "obscure_value".

Die Konfigurationsdatei autoconfig.js: Festlegen der Zentralen Einstellungen für Firefox

Im zweiten oben genannten Fall (viele lokale Installationen von Firefox), muss der Inhalt der Datei autoconfig.js wie folgt angepasst werden:

// Datei: $INSTALLDIR\autoconfig.js

// Umleitung zur eigentlichen, zentralen Konfiguration
lockPref("autoadmin.global_config_url","http://192.168.100.10/global_settings.js");
Erläuterungen

Die Methode lockPref() setzt eine Einstellung, und deaktiviert das entsprechende Steuerelement in der Firefox-Oberfläche bzw. in about:config, damit der Benutzer die Einstellung nicht mehr ändern kann. Gesperrte Einträge werden in about:config kursiv dargestellt.

Die Einstellung autoadmin.global_config_url legt die Position der zu ladenden Konfigurationsdatei global_settings.js fest, die sich auf einem internen Webserver mit der IP-Adresse 192.168.100.10 befindet.

Hinweis: Die Dateinamen der Konfigurationsdateien sollten keine Minuszeichen enthalten, da diese von Firefox intern als Trennzeichen verwendet werden. Stattdessen kann man z. B. Unterstriche verwenden.

Mit der Einstellung in der Datei autoconfig.js wird bei jedem Start von Firefox z. B. die folgende Datei geladen und ausgeführt:

Inhalt der Datei global_settings.js

// Datei: global_settings.js
//   im WWW-Rootverzeichnis auf 192.168.100.10
//
// Beschreibung:
//   Globale Einstellungen fuer den Firefox Browser via Autoconfig.
//
// Quellen:
//   http://mit.edu/~firefox/www/maintainers/autoconfig.html
//   http://kb.mozillazine.org/About:config_entries
//

try {
  // Proxy Server Einstellungen
  // Werte für alle Protokolle (http, https/ssl, ftp) explizit setzen,
  // obwohl das Häkchen "diesen Proxy für alle Protokolle verwenden" gesetzt
  // ist (BUG?)
  pref("network.proxy.http", "192.168.100.10");
  pref("network.proxy.http_port", 8080);
  pref("network.proxy.ssl", "192.168.100.10");
  pref("network.proxy.ssl_port", 8080);
  pref("network.proxy.ftp", "192.168.100.10");
  pref("network.proxy.ftp_port", 8080);
  pref("network.proxy.share_proxy_settings", true);
  pref("network.proxy.type", 1);
  pref("network.proxy.no_proxies_on", "127.0.0.1, localhost, 192.168.*.*, *.mydomain.example.com");

  // Benutzer duerfen keine Updates einspielen
  lockPref("app.update.enabled", false);
  lockPref("extensions.update.enabled", false);
  lockPref("browser.search.update", false);

  // FF als Standardbrowser
  lockPref("browser.shell.checkDefaultBrowser", false);
  lockPref("pref.general.disable_button.default_browser", true);

  // Inhalte (JavaScript und Java)
  pref("javascript.enabled", true);
  lockPref("security.enable_java", false);

  // keine fehlenden Plugins nachladen und auch nicht in Registry danach scannen
  lockPref("xpinstall.enabled", false)
  lockPref("plugin.default_plugin_disabled", false);

  // Intranetseite als Startseite
  lockPref("browser.startup.homepage", "http://intranet.mydomain.example.com/");

  // Ordner fuer Downloads jedesmal erfragen
  pref("browser.download.useDownloadDir", false);

} catch(e) {
  displayError("ARGL :-P", e);
}

Hinweis: Soll nur eine zentrale Konfiguration einer Terminalserverinstallation (erster Fall oben) stattfinden, entspricht der Inhalt der Datei autoconfig.js dem der Datei global_settings.js und diese entfällt.

Erläuterungen

Wie oben bereits erwähnt, gibt es die beiden Methoden pref(attribute,value) und lockPref(attribute,value), um Einstellungen festzulegen.

Mit pref(attribute,value) wird ein Wert gesetzt, bleibt aber für den Benutzer zur Laufzeit änderbar. Ein Möglicher Anwendungsfall wäre z. B. die Einstellung von (de)aktviertem JavaScript. Der Wert wird aber bei jedem Firefox Start erneut gesetzt.

Mit lockPref(attribute,value) gesetzte Werte werden in der Oberfläche und about:config gesperrt. Der Benutzer hat hier keine Möglichkeit mehr, das Verhalten zur Laufzeit zu verändern. Denkbare Anwendung hierfür ist z. B. die lästige Updatefunktion, die auf einem Terminalserver mit Benutzerrechten jedes Mal fehlschlagen würde und zu für Benutzer unverständlichen Fehlermeldungen führt.

Welche Werte in der oben stehenden Datei global_settings.js gesetzt werden, ist durch eine Kommentarzeile darüber erklärt.

Sollte beim Setzen der Werte etwas schiefgehen und eine Ausnahme geworfen werden, wird beim Start von Firefox eine Fehlermeldung ausgegeben, die in ihrer Form hier noch Verbesserungspotenzial besitzt. ;-)

« nach oben

Abschließende Bemerkung

Autoconfig ist eine gute Möglichkeit, Firefox-Installationen zentral und betriebssystemunabhängig zu verwalten. Leider heißt das aber auch, dass man hierfür an einer anderen Stelle konfigurieren muss, als es beim Rest des Systems der Fall ist, wie z. B. im Falle von Windows mit seinen Gruppenrichtlinien.

Gerade die Möglichkeit aber, eine Datei über Webtechnologien einzubinden, zeigt sich meiner Meinung nach auch die Eleganz dieser Lösung: Schließlich ist der Firefox im Web zu Hause.

Seit Firefox 4 hat sich der interne Aufbau der Autokonfiguration vereinfacht und wird auch bei Updates des Browsers beibehalten.

« nach oben

Weiterführende Links

« nach oben

« zurück (Gesammelte Anleitungen)