Firefox_Sync

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 Sync-Server Apache Konfiguration, Firefox Browser Einstellung
Firefox: about:config

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

Firefox Sync-Server Apache Konfiguration, identity.sync.tokenserver.uri
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

Firefox Sync-Server Apache Konfiguration

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung / 5. Anzahl Bewertungen:

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Es tut uns leid, dass der Beitrag für dich nicht hilfreich war!

Lasse uns diesen Beitrag verbessern!

Wie können wir diesen Beitrag verbessern?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert