Firefox zu einem Unternehmensbrowser machen / Sudo Null IT News

Hallo alle. Ich sehe Fragen der Mehrheit voraus – ist es nicht korporativ?

Ja, nicht korporativ. Ich habe vielleicht eine schlechte Firma kontaktiert, aber für mich ist der derzeit hauptsächlich funktionierende Browser Internet Explorer nicht höher als Version 11. Das Unternehmen ist ein großer, lebloser Organismus. Ein Softwarewechsel ist ein echter Schmerz für Benutzer, ein Kopfzerbrechen für den IT-Service, ein Glück für Integratoren. Deshalb lebt Windows immer noch hier auf Desktops bis XP, und die Perimeter von Netzwerken werden hauptsächlich mit Papieren mit Siegeln und dann mit Firewalls abgeklemmt. Nun, der wichtigste „Einschränkungsfaktor“ ist die Fülle an „Legacy“, Anwendungen mit ActiveX und unbestrittener Unterstützung für Internet Explorer im Markup.


Lassen Sie mich Ihnen gleich sagen, es gibt keine Wunder. ActiveX und die Unterstützung für IE-Tags/Dom/Bugs in Firefox lassen sich in keinster Weise schrauben. Darauf gehen wir erst gar nicht ein – in Ihrem Importsubstitutionsplan ist vermutlich sowieso eine Zeile zur Stilllegung obsoleter Anträge bzw. deren Bearbeitung vorhanden. Die zweite Nuance – die Isolierung des Unternehmensnetzwerks nimmt ihre eigenen Anpassungen vor. Registrierter Yandex.browser ohne Internetzugang ist praktisch nutzlos (sogar schädlich), ebenso wie Sputnik, Chrom. Chromgost wird wohl an manchen Arbeitsplätzen eingesetzt werden müssen, aber nicht an allen. Aber der alte Firefox ist in allen heimischen Distributionen und vor allem wird er von kommerziellen Softwareherstellern ernst genommen. Wir werden es traditionell auf RedHat-basierten Inlandsdistributionen und wie gewohnt aus erster Hand studieren.

Lassen Sie uns zuerst entscheiden, was wir wollen:

  1. In der Lage sein, Zertifikate von einer Smartcard zur Authentifizierung für einige Ressourcen zu nehmen.
  2. Herstellen einer Verbindung zu Ressourcen mit veralteten kryptografischen Algorithmen.
  3. Vertrauen Sie Inhalten, die mit internen Unternehmenszertifikaten signiert sind.
  4. Nehmen Sie Einstellungen heimlich vor dem Benutzer und in kürzester Zeit vor 🙂

▍ Wir verbinden Smartcards

Smartcards oder Tokens werden häufig zur Benutzerauthentifizierung verwendet. Es gibt einfachere Methoden, aber das erste Axiom der Sicherheit besagt, dass Bequemlichkeit umgekehrt proportional zur Sicherheit ist.

Wir installieren die erforderlichen Smartcard-Unterstützungspakete auf der Workstation. Ich habe den SafeNet Authentication Client und die JaCarta PKCS #11-Bibliothek. Die Pakete wurden installiert, jetzt müssen sie im Browser registriert werden. Der Benutzer startet den Browser und geht zu “Einstellungen->Datenschutz und Sicherheit->Sicherheitsgeräte” und fügt abwechselnd Module im pkcs11-Format aus den SAC- und JaCarta-Paketen hinzu.


Das Bild zeigt das bereits installierte Modul für libeToken und das Hinzufügen von JaCarta

Die Option funktioniert natürlich, aber ich mag sie nicht – Sie müssen die Maus an jedem Arbeitsplatz tragen.

Sie finden die nächste Option, wenn Sie darauf achten, dass SAC in den Sicherheitsvorrichtungen einiger Benutzer aufgeführt wird. Dies liegt daran, dass es im RPM-Paket des SafeNet Authentication Client im Abschnitt % postinstall einen Teil gibt, der die Home-Verzeichnisse des Benutzers durchläuft und über das Dienstprogramm modutil zur Firefox-Konfiguration des Benutzers hinzugefügt wird. Auf den ersten Blick – ganz praktisch, aber es gibt Nuancen. Zum Zeitpunkt der Installation muss das Benutzerverzeichnis vorhanden sein, ansonsten erneute manuelle Installation.

Diese Methode ist “halbautomatisch” und mit einigen Kuriositäten – sie stellt Fragen, obwohl der Schalter -force angegeben ist. Wenn Sie tiefer graben, dann schreibt er alles in eine Textdatei pkcs11.txt im Benutzerprofil und es kann sorgfältig über ansible/chef/puppet usw. bearbeitet werden. wenn der Browser nicht läuft. Von den Minuspunkten – Sie müssen die Profile jedes Benutzers durchgehen, Sie müssen dies tun, wenn Sie einen neuen Benutzer erstellen.

Bleiben wir vorerst bei dieser Option.

Wenn Sie Ihr Verständnis für die Implementierung der Unix-Kryptografie erweitern möchten, empfehle ich den Artikel OpenSSL und Network Security Services (NSS) sind zwei Seiten derselben Medaille, und dort werden Sie tieferes Wissen über modultil erlangen.

▍ Legacy-Cipher-Suites hinzufügen

Ich weiß, es ist nicht gut. Ich bin mir jedoch sicher, dass Sie auch Informationsquellen haben, die keine starke Verschlüsselung haben. In Firefox ist die Möglichkeit, mit veralteten Verschlüsselungsalgorithmen zu arbeiten, immer noch verfügbar, wenn auch vor dem Benutzer verborgen.

Wir starten als Benutzer einen Browser und geben about:config in die Adressleiste ein, gehen alle Risiken ein und schreiben tls in die Suchleiste. Alles, was geändert werden muss, ist im Screenshot fett hervorgehoben:

Wieder mit den Händen, wieder mit der Maus. Ich muss gleich sagen, dass Firefox diese Einstellungen in eine Textdatei ~/.mozilla/firifox//prefs.js schreibt, aber es wird nicht empfohlen, dort etwas von Hand zu bearbeiten – das wird direkt am Anfang geschrieben der Datei. Es gibt auch einen Hinweis – erstellen Sie sich eine user.js-Datei und fügen Sie alles, was Sie brauchen, darin ein. Fertig, alles funktioniert – Sie können diese Datei im Profil aller Benutzer verteilen.

Beeilen Sie sich jedoch nicht – es gibt eine systemweite Option. Wir erstellen /etc/firefox/pref/prefs.js, bearbeiten sie, fügen einige weitere Schlüssel hinzu (z. B. Kerberos-Authentifizierung) und alles wird automatisch für alle Benutzer angezeigt.

Es gibt einen guten Artikel über about:config-Einstellungen (und nicht nur) hier auf Habré. Ich empfehle, es sofort zu überprüfen.

▍ Root-Zertifikate hinzufügen

Beim Versuch, auf interne Ressourcen zuzugreifen, erhalten wir eine Warnung über das mangelnde Vertrauen in sie. Alles ist klar – es ist an der Zeit, unsere selbstsignierten Stammzertifikate des Unternehmens zum Browser hinzuzufügen.

Manuell kein Problem. Einstellungen->Datenschutz und Schutz->Zertifikate anzeigen->Zertifizierungsstellen->Importieren…. Sie können sich vorstellen, wie lang und mühsam das ist, und das sogar an jedem Arbeitsplatz.

Es gibt eine gute (und richtige) Option, um sie in großen Mengen zum System hinzuzufügen, und nicht nur für Firefox. Ein Zwei-Punkte-Ereignis:

  1. Kopieren Sie alle Zertifikate im PEM-Format in das Verzeichnis /etc/pki/ca-trust/source/anchors/
  2. Führen Sie update-ca-trust als root aus

Wir überprüfen: ROSA Linux-Zertifikate wurden im Browser angezeigt, RED OS-Zertifikate wurden nicht im Browser angezeigt. Fangen wir an, es herauszufinden.

Lassen Sie uns zuerst einen Blick auf die Sicherheitsvorrichtungen auf ROSA Linux werfen – Sie können sehen, dass /etc/pki/ca-trust/source ein Steckplatz im Modul „Integrated Root Cert Module“, Modulbibliothek /lib64/libnssckbi.so ist. Diese Bibliothek wird schließlich mit /usr/lib64/pkcs11/p11-kit-trust.so verknüpft und über Alternativen verwaltet.

Wir gehen zu RED OS und schauen uns zunächst an, auf welche Alternativen libnssckbi.so.x86_64 abzielt:

Alles ist gerecht.

Sicherheitsvorrichtungen in Firefox sehen so aus:

Es fällt sofort ins Auge – Firefox ist so gebaut, dass es das System libnssckbi.so ignoriert und seine eigene /usr/lib64/firefox/libnssckbi.so hat, komplett vollgestopft mit feindlichen Zertifikaten!

Mein erster Gedanke ist ln -sf /lib64/libnssckbi.so /usr/lib64/firefox/libnssckbi.so. Das wird funktionieren, aber wir müssen verstehen, dass unsere Krücke mit dem nächsten Update von Firefox mit einem Knall brechen wird.

Der zweite Versuch besteht darin, die Standard-libnssckbi manuell oder über modutil hinzuzufügen, ähnlich wie wir Smartcard-Lesegeräte hinzugefügt haben. Mir hat es beim letzten Mal auch nicht wirklich gefallen, aber ein Gerät mehr, eins weniger … Wir nehmen es erstmal als Fallback in Betracht.

Dritter Ansatz. Ein seltsames „OS Client Cert Module“ baumelt in Sicherheitsgeräten und mit dem Pfad zum Modul /usr/lib64/firefox/libosclientcerts.so. Welche Zertifikate es bereitstellt, ist nicht klar, weil. Es gibt einfach keine solche Datei im System. Sie können stattdessen einen Symlink zu p11-kit-trust.so schieben und es wird funktionieren, aber ich denke auch, dass dies falsch ist – Sie wissen nie, was der Sammler ursprünglich beabsichtigt hat, mit dem nächsten Update anzukommen.

Die vierte Iteration ist eine systemweite Konfiguration über modutil. Theoretisch steht alles in /etc/pki/nssdb/, aber auch hier ein Mist – der RED OS-Betreuer hat dafür gesorgt, dass Firefox dort nicht nachgesehen hat.

Die fünfte Möglichkeit besteht darin, zu support.mozilla.org zu gehen und zu versuchen, etwas Passendes zu finden (Firefox hat keine lokale Dokumentation, ein Blick in /usr/share/doc ist nutzlos). Dort finden wir einen Artikel Konfigurieren von Firefox mit policies.json. Der Artikel ist prägnant, es gibt viel Ungesagtes, gut, dass es auf dem Github einen Link zu README.md gibt, von wo aus Sie erfahren können, wo sich die Datei policies.json im installierten System befinden soll, und welche Richtlinien existieren. Ein sehr interessantes Dokument.

Dies sind “plattformübergreifende” (Windows gilt auch) Richtlinien, mit denen Sie Firefox zentral konfigurieren können. Neben dem Blockieren/Deaktivieren von Schnittstellenelementen, dem Ändern interner Optionen und Parameter ist auch das Manipulieren von Sicherheitseinrichtungen möglich.

Ich sehe keinen Grund, alles zu berücksichtigen, ich werde nur die einfachste Option für unseren Fall angeben /etc/firefox/policies/prefs.json:

{ “policies”: { “AppAutoUpdate”: false, “DisableAppUpdate”: true, “DisableFeedbackCommands”: true, “DisablePocket”: true, “DisableTelemetry”: true, “DNSOverHTTPS”: { “Enabled”: false, “Locked” : true }, “EncryptedMediaExtensions”: { “Enabled”: true, “Locked”: false }, “FirefoxHome”: { “Search”: false, “TopSites”: true, “Highlights”: false, “Pocket”: false , “Snippets”: falsch, “Gesperrt”: falsch }, “HardwareAcceleration”: wahr, “Homepage”: { “URL”: “file:///usr/share/doc/HTML/index.html”, “Gesperrt “: false, “StartPage”: “homepage” }, “NoDefaultBookmarks”: true, “OverrideFirstRunPage”: “”, “OverridePostUpdatePage”: “”, “PromptForDownloadLocation”: true, “ShowHomeButton”: true, “SecurityDevices”: { “p11-kit-trust”: “/usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so”, “libeToken”: “/usr/lib64/libjcPKCS11-2.so”, “JaCarta “: “/usr/lib64/pkcs11/libjcpkcs11-2.so” } } }

In dieser Datei ist das bisher Interessanteste der Schlüssel „SecurityDevices“, denn es erspart uns vollständig die Probleme der Abschnitte 1 und 3 des Artikels. Wir fügen diese Datei während des Installationsvorgangs jedem Arbeitsplatz hinzu und das war’s. Vergessen Sie nicht, einfach frische Urkunden hineinzuwerfen

/etc/pki/ca-trust/source/anchors

und Renn

update-ca-trust

.

Und wer README.md komplett oder auch nur punktuell liest, wird sich der Pflege einer separaten prefs.js für alte Ciphersuites entledigen und nebenbei die Authentifizierung nach Unternehmensvorgaben konfigurieren. Ich habe die Config bewusst nicht in das Beispiel eingefügt – Hausaufgabe 🙂

▍ Finale

Diese Richtlinien befinden sich in aktiver Entwicklung und können daher Änderungen enthalten, die mit aktuellen Versionen von Firefox nicht funktionieren.

Die erste Zeile der Datei README.md scheint uns anzudeuten, dass nichts ewig ist und dass sich in der Zukunft alles plötzlich ändern kann. Trotzdem halte ich diese Methode im Moment für die richtigste und bequemste.

Ich möchte darauf hinweisen, dass alles mit den trivialen Aufgaben des manuellen Verbindens von Smartcards und Hinzufügen von Stammzertifikaten zu Firefox begann und am Ende ein sehr leistungsfähiges Tool stand, mit dem Sie die routinemäßige manuelle Konfiguration des Browsers eines Benutzers an jedem Arbeitsplatz reduzieren können zu einer einfachen Verteilung einer Richtliniendatei. Normalerweise passiert dies immer, die Hauptsache ist, nicht auf die ersten positiven Ergebnisse einzugehen, sondern tiefer zu graben.

Telegrammkanal mit Dienstprogrammen und gemütlich plaudern

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *