Schlagwort-Archive: Mozilla Firefox Browser

Mozilla Firefox, kurz Firefox genannt, ist ein freier Webbrowser des Mozilla-Projektes.

Firefox Sync-Server Apache Konfiguration

Firefox Sync-Server auf Apache Installation und Konfiguration

 

Firefox Sync-Server macht Lesezeichen auf jedem Gerät synchron verfügbar, auch die Chronik, Tabs, Add-ons. Die Einstellungen und die Zugangsdaten können auf wunsch abgeglichen werden.

Den bei Mozilla gehosteten Firefox-Account-Server kann problemlos in Kombination mit einem selbst gehosteten Apache Webserver als Synchronisierungsserver und Speicher verwendet werden. Die Authentifizierung und Verschlüsselungsprotokolle sind so konzipiert, dass der Account-Server das Klartextkennwort des Benutzers nicht kennt und daher nicht auf die gespeicherten Synchronisierungsdaten zugreifen kann.

INHALT

1. Firefox Sync Server Installation
2. Firefox Sync Grundkonfiguration
3. Firefox Sync Apache Konfiguration
4. Firefox Sync HTTPS Let’s Encrypt
5. Firefox Browser Einstellung
6. Troubleshoting & Settings

In diesem Tutorial wird die Installation und Konfiguration eines Firefox Sync-Server (Sync-1.5-Server) auf Apache und Ubuntu 16.04.4 LTS aufgezeigt. Der Ubuntu Server, hier sync.server.net als Beispiel, ist über den Apache 2.4 Webserver im Internet erreichbar.

1. Firefox Sync Server Installation

Voraussetzung für Sync-1.5-Server ist Python 2.7 und Python Virtualenv, python-dev, make, git, sowie der C und C ++ Compiler. Zur sicherstellung werden folgende Pakte bereitgestellt:

$ sudo apt-get install apache2 libapache2-mod-wsgi python-dev python-virtualenv git-core g++ make

Wir installieren den Sync-Server unter /opt, wer /usr/local bevorzugt, kann diesen Pfad wählen, dazu werden wir root und führen folgende Zeilen aus:

$ sudo su -
$ cd /opt
$ git clone https://github.com/mozilla-services/syncserver
$ cd syncserver
$ make build

Um zu überprüfen, ob die Installation erfolgreich war, kann folgendes make aufschluss geben:

$ make test

2. Firefox Sync Grundkonfiguration

Benutzer erstellen und Berechtigung zuweisung:

$ useradd -d /opt/syncserver/ -s /bin/false -l -r -U ffsync
$ chown -R ffsync:www-data /opt/syncserver/

Der Sync-Server wird mithilfe der ini-Datei konfiguriert, um verschiedene Laufzeiteinstellungen zu übergeben. Die Datei syncserver.ini dient als Ausgangspunkt.

Die meisten Einstellungen können übernommen werden, bevor der Sync-Server ausgeführt wird, muss die für die Clients erreichbare URL zum Sync-Server angepasst werden. Für den produktiven Einsatz öffnen wir die Datei syncserver.ini und editieren die public_url:

$ vi /opt/syncserver/syncserver.ini

[syncserver]
public_url = https://sync.server.net/

Die public_url von localhost:5000 auf unser sync.server.net ändern. In einem weiteren Abschnitt wird die Konfiguration auf das HTTPS Protokoll eingerichtet.

Dann noch die sqluri für unsere Datenbak anpassen:

sqluri = sqlite:////opt/syncserver/syncserver.db

Aus einem Terminal wird ein Secret Key mit dem Zufallsgenerator erzeugt, dazu folgende Zeile ausführen:

$ head -c 20 /dev/urandom | sha1sum
60bev0b7bd2f56dxea3794fb97f03c824e70e21d

Diesen so erzeugten Schlüssel in der Konfigurationsdatei syncserver.ini eintragen:

secret = 60bev0b7bd2f56dxea3794fb97f03c824e70e21d

Der Datenbank Datei ausreichend rechte zuweisen:

$ chmod 660 /opt/syncserver/syncserver.db

Automatischer start in systemd für Firefox Sync anlegen:

$ vi /etc/systemd/system/firefox-sync.service

und folgenden Inhalt einfügen:

$ [Unit]
Description=Firefox Sync Server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=simple
User=ffsync
Group=ffsync
Umask=007
Restart=on-abort
ExecStart=/opt/syncserver/local/bin/gunicorn --paste /opt/syncserver/syncserver.ini

[Install]
WantedBy=multi-user.target

Den Firefox Sync Service starten:

$ systemctl start firefox-sync.service

3. Firefox Sync Apache Konfiguration

Ein Apache Virtualhost wie folgt in diesem Beispiel erstellen:

$ vi /etc/apache2/sites-available/sync.server.net.conf

ServerName sync.server.net
DocumentRoot /opt/syncserver

CustomLog /var/log/apache2/access_sync.server.net.log combined
ErrorLog /var/log/apache2/error_sync.server.net.log
LogLevel warn

        Require all granted
        Options -Indexes

Den Apache Virtualhost aktivieren und restarten:

$ a2ensite sync.server.net.conf
$ sudo systemctl restart apache2.service

4. Firefox Sync HTTPS Let’s Encrypt

Let’s Encrypt für unser Firefox Sync-Server bereitstellen, dazu wird das Repository hinzugefügt und die ACME Pakete installiert:

$ add-apt-repository ppa:certbot/certbot
$ apt-get update
$ apt-get install python-certbot-apache

Nun kann das Let’s Encrypt Zertifikat erstellt werden, certbot macht es uns einfach, die für unser Virtualhost erforderliche SSL-Konfiguration wird automatisch erstellt.

$ certbot --apache -d sync.server.net

Unter /etc/apache2/sites-enabled ist nun der Symlink dieser zur Datei sync.server.net-le-ssl.conf zeigt, diese unter
/etc/apache2/sites-available gespeichert ist.

$ ls /etc/apache2/sites-enabled/sync.server.net-le-ssl.conf
/etc/apache2/sites-enabled/sync.server.net-le-ssl.conf

In der Datei sync.server.net-le-ssl.conf muss noch die WSGI Konfiguration hinzugefügt werden, wir editieren wieder
sync.server.net-le-ssl.conf, die danach den folgenden Inhalt zeigt:

ServerName sync.server.net
DocumentRoot /opt/syncserver

        WSGIProcessGroup ffsync
        WSGIDaemonProcess ffsync user=ffsync group=ffsync processes=2 threads=25 python-path=/opt/syncserver/local/lib/python2.7/site-packages/
        WSGIPassAuthorization On
        WSGIScriptAlias / /opt/syncserver/syncserver.wsgi

        CustomLog /var/log/apache2/access_sync.server.net.log combined
        ErrorLog /var/log/apache2/error_sync.server.net.log
        LogLevel warn

        Require all granted
        Options -Indexes

SSLCertificateFile /etc/letsencrypt/live/sync.server.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/sync.server.net/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf

Jetzt muss der Apache Webserver noch einmal neu gestartet werden:

$ sudo systemctl restart apache2.service

5. Firefox Browser Einstellung

Damit Firefox über den eignen Sync-Server synchronisieren kann, muss die URL geändert werden, hierzu gibt man in der Adressleiste about:config ein und bestätigt mit der Eingabetaste.

Firefox: about:config

Nach dem bestätigen des Warnhinweis, gibt man
identity.sync.tokenserver.uri in das Suchfeld ein.

Firefox: identity.sync.tokenserver.uri

Mit Doppelklick ändert man den Wert zum eignen Sync-Server
https://sync.server.net/token/1.0/sync/1.5

Als letztes wird das Mozilla Konto über folgende URL angelegt:

https://accounts.firefox.com

Das Konto selbst liegt auf den Mozilla Server, die Daten werden auf dem eigenen Sync-Server gespeichert.

  Wichtig ist, das die synchronisierung erst nach dem Eintrag zum eignen Sync-Server in Firefox gemacht wurde. Sollten Lesezeichen und Daten auf dem Sync-Server bei Mozilla liegen, können die Daten gelöscht werden, mit folgenden Befehlszeilen:

$ apt install python-pip 
$ sudo pip install PyFxA
$ python ./bin/delete_user_data.py email.konto@server.net

  email.konto@server.net mit tatsächlicher Konto-E-Mail ändern.

6. Troubleshoting & Settings

Zur überprüfung ob die Firefox Sync synchronisierung korrekt läuft, öffnet man die Log-Datei /var/log/apache2/access_sync.server.net.log:

$ sudo tail -f /var/log/apache2/access_sync.server.net.log

Zu beachten ist, das der Let’s Encrypt certbot zur validierung, der Firefox Sync-Server über Port 80 erreichbar sein muss, für die bei Ubuntu im Standard enthaltene Firewall ist das Command wie folgt:

$ sudo ufw allow http

Mit dem Aufruf der Sync Server URL, oder https://sync.server.net im Browser sollte folgende Ausgabe erscheinen:

$ curl -k https://sync.server.ent
it works!

Startet der Apache Webserver nicht, kann die Syntax der Konfiguration validiert werden:

$ apache2ctl configtest
Syntax OK

Nachdem alle Konten angelegt sind, kann in der Datei syncserver.ini der Zugriff für weitere Benutzer gesperrt werden:

$ allow_new_users = false

Das Firefox Sync-Protokoll beinhaltet bei Fehler die Debug Informationen und kann mit folgendem Command in der Browser Zeile abgefragt werden.

about:sync-log


Quellen Link:
Run your own Sync-1.5 Server
Github mozilla-services/syncserver

Browser User Agent Einstellung ändern

Browser User Agent Änderung mit User Agent Switcher

Was ist ein User Agent?

Unter dem User Agent versteht man einen Teil des HTTP-Headers, der bei einem HTTP-Request übermittelt wird. Der User Agent übermittelt dem Server Informationen, diese umfassen meistens den verwendeten Browser und dessen Version sowie das Betriebssystem des Benutzers.

Wenn man den Eindruck erwecken möchte, dass die Web-Anfrage von einem anderen Browser stammt, als dass man tatsächlich einsetzt, ist dies möglich. Um beispielsweise über den Webserver einer Website mitzuteilen, mit welchen Browser man die Seite gerade öffnet. Bei der Entwicklung von Webseiten bietet sich damit eine hilfreiche Möglichkeit, die Kompatibilität der Webseite für unterschiedliche Browser zu überprüfen. Hierzu verfügen alle gängigen Browser über ein integrierten User Agent Switcher, sodass man den User Agent ändern kann, ohne dass eine Erweiterung installiert werden muss.

Websites identifizieren Browser anhand des User Agent. Wenn man den Benutzeragenten eines Browsers ändert, wird der besuchten Website mitgeteilt, dass es sich um einen anderen Browser handelt. Auf diese Weise kann man Webseiten Testen, ob diese für unterschiedliche Browser oder sogar für verschiedene Geräte wie Smartphones und Tablets ausgelegt sind.

Google Chrome

Der User Agent Switcher von Chrome ist Teil der Entwicklertools. Öffne hierzu das Chrome Menü Einstellungen und gehe zu Weitere Tools und Entwicklertools, oder durch drücken der Tastenkombination Strg + Umschalt + I auf der Tastatur.

Die Option im Register Network conditions erreicht man über das Register Network und links das drei Punkte Menü.

Bei User agentSelect automatically deaktivieren und Custom wählen, in das Feld kann nun ein beliebiger String für den User Agent eingetragen werden, oder ein User Agent aus der Liste wählen.

Mozilla Firefox

Bei Mozilla Firefox befindet sich diese Option auf der about:config Seite.

Um auf die Seite zu kommen gibt man about:config in die Adresszeile von Firefox ein und drückt die Eingabetaste. Es wird eine Warnung angezeigt, Hier endet möglicherweise die Gewährleistung, mit klick auf ich bin mir der Gefahren bewusst! geht es weiter.

Hier gibt man general.useragent.override in das Suchfeld ein und drückt die Eingabetaste, dann String wählen und Rechts auf das Plus + klicken.

Zu dem neu erstellten Eintrag general.useragent.override als Wert ein String für den User Agent in das Feld einfügen.

Nach dem eintragen eines String-Wert für den gewünschten User Agent auf den Hacken klicken und den Browser neu starten.

  Der Standard User Agent String von Mozilla Firefox 79 bei Windows 10 ist wie folgt:

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0

Einige Beispiele für den User Agent String verschiedener Betriebssysteme (Betriebssystem : User Agent String):

Windows XP IE 8.0 : Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Windows 7 IE 11.0 : Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Windows 8.1 Chrome: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36
WinSrv 2012 IE 11 : Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
WinSrv 2016 Chrome: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36
Windows 10 Firefox: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
Windows 10 Chrome : Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36
Windows 10 Edge 42: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134
Fedora 30 Firefox : Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0
Fedora 30 Chrome  : Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36
Ubuntu Bionic Lynx: Lynx/2.8.9rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/1.1.1b
CentOS (Core) Lynx: Lynx/2.8.8dev.15 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/1.0.1e-fips    
Android 8.0 Chrome: Mozilla/5.0 (Linux; Android 8.0.0; SM-G930F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.136 Mobile Safari/537.36
iPhone iOS 12.1   : Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605,1.15 (KHTML, like Gecko) Version/12.1 Mobile/15E148 Safari/605.1
Linux Mint Firefox: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0
Linux Mint Chrome : Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36
Raspberry Chromium: Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Raspbian Chromium/65.0.3325.181 Chrome/65.0.3325.181 Safari/537.36

Um nun den User Agent seines Browser zu verifizieren, zeigt dies die Abfrage hier.