Debian MozillaSync: Unterschied zwischen den Versionen

Aus Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
==Allgemein==
==Allgemein==
[[Bild:Mozilla-Sync.png|left]] Mozilla Firefox Sync ist seit Version 4 von Firefox fester Bestandteil des Browser's. Für Firefox Versionen <4 kann das Firefox Sync Addon (https://addons.mozilla.org/de/firefox/addon/10868/) verwendet werden. Auf dem Server wird der hier vorgestellte Firefox Syncserver (ehemals Weave) verwendet, um die Bookmarks, History, Passwörter und geöffnete Tabs zwischen verschiendenne Installationen zu synchronisieren.
[[Bild:Mozilla-Sync.png|left]] Mozilla Firefox Sync ist seit Version 4 von Firefox fester Bestandteil des Browser's. Mit Firefox-Version 29 wurde das Protokoll geändert, sodass seit dieser Version die Serverversion 1.5 verwendet werden muss. Neben der Serverkomponente wurde die Authentifizierung der User geändert. Es ist nun ein Mozilla-Konto erforerderlich, ooder der optionale Accounting-Server. Auf dem Server wird der hier vorgestellte Firefox Syncserver (ehemals Weave) verwendet, um die Bookmarks, History, Passwörter und geöffnete Tabs zwischen verschiendenne Installationen zu synchronisieren.  
 
Das Anlegen eines neuen Accounts, Änderung des Passwortes usw. wird komplett vom Client bzw. Sync-Plugin erledigt. Nach der Serverinstallation ist keinerlei Eingriff diesbezüglich am Server erforderlich.  


Das Anlegen eines neuen Accounts, Änderung des Passwortes usw. wird komplett vom Client erledigt. Nach der Serverinstallation ist keinerlei Eingriff diesbezüglich am Server erforderlich.




Zeile 13: Zeile 12:


==Installation==
==Installation==
  apt-get install python-dev mercurial make sqlite3 python-virtualenv
  apt-get install make python-dev git-core python-virtualenv g++
  cd /opt/
  cd /opt/
  hg clone https://hg.mozilla.org/services/server-full ffsync
  git clone https://github.com/mozilla-services/syncserver
  cd ffsync
  cd syncserver
  make build
  make build
  mkdir db
  mkdir db
Zeile 23: Zeile 22:
==Konfiguration==
==Konfiguration==
===Sync-Server===
===Sync-Server===
Die Konfigurationfiles des Syncservers befinden sich im Unterordner etc/ (/opt/ffsync/etc/).
Das Konfigurationfile des Syncservers befinden sich im Ordner /opt/syncserver/.
  cd /opt/ffsync/
  cd /opt/syncserver/


Festlegen des SQLite Datenbankfiles zum Speichern der Syncdaten und eines Schlüssels für die Verschlüsselung der Datenbank:


Festlegen des SQLite Datenbankfiles zum Speichern der Syncdaten:
Schlüssel:
  vi etc/sync.conf
  head -c 20 /dev/urandom | sha1sum
Folgende Änderungen durchführen:
die Ausgabe sieht z.B. folgendermaßen aus:
[storage]
  8c76e8b050abd0fffb0a986146282fe328be2e92 -
backend = syncstorage.storage.sql.SQLStorage
D.h. '''SYNC_SECRET'''=8c76e8b050abd0fffb0a986146282fe328be2e92
sqluri = sqlite:////opt/ffsync/db/ffsync.db
...
  [auth]
backend = services.auth.sql.SQLAuth
sqluri = sqlite:////opt/ffsync/db/ffauth.db
...
fallback_node = http://'''''IP_des_SERVER''''':5000
 
{{Hinweis|Die aktuelle Version des Server enthält im Konfigfile sync.conf einen Fehler, der einen Start des Servers verhindert. Die beiden backendeinträge wie oben dargestellt checken und evtl. entsprechend anpassen.}}


Festlegen der Emailoptionen:
Konfigfile anpassen:
  vi etc/sync.conf
  vi syncserver.ini
Folgende Änderungen durchführen:
Folgende Änderungen durchführen:
  [smtp]
  [syncserver]
  host = '''''IP_des_Mailserver''''' bzw. '''''SMTP_Server_PROVIDER'''''
  sqluri = sqlite:////opt/syncserver/db/syncserver.db
port = 25
secret = '''SYNC_SECRET'''
  sender = '''''ffsync@domain.org'''''
Syncserver nur aus dem lokalen Netzwerk erreichbar:
 
public_url = http://'''IP_des_Server''':5000
Syncserver aus dem Internet erreichbar:
  public_url = https://ffsync.'''domain.org'''
force_wsgi_environ = true


===Optional: Syncserver aus dem Internet erreichbar===
===Optional: Syncserver aus dem Internet erreichbar===
Zeile 55: Zeile 49:
  vi /etc/apache2/sites-enabled/ffsync_https.conf
  vi /etc/apache2/sites-enabled/ffsync_https.conf
Folgende Zeilen einfügen:
Folgende Zeilen einfügen:
*Apache 2.2:
  <VirtualHost *:443>
  <VirtualHost *:443>
     ServerName '''''ffsync.domain.org'''''
     ServerName '''''ffsync.domain.org'''''
Zeile 61: Zeile 56:
       Order allow,deny
       Order allow,deny
       Allow from all
       Allow from all
    </Proxy>
    ProxyPass / http://'''''IP_des_SERVER''''':5000/
    <Location />
      ProxyPassReverse /
    </Location>
    SSLEngine on
    SSLProxyEngine On
    SSLCertificateFile /etc/ssl/CA/certs/wildcard.pem
</VirtualHost>
*Apache 2.4:
<VirtualHost *:443>
    ServerName '''''ffsync.domain.org'''''
    ProxyRequests Off
    <Proxy *>
      Require all granted
     </Proxy>
     </Proxy>
     ProxyPass / http://'''''IP_des_SERVER''''':5000/
     ProxyPass / http://'''''IP_des_SERVER''''':5000/
Zeile 75: Zeile 85:




==Startskript==
==Systemd Unit==
  vi /etc/init.d/ffsync
  vi /etc/systemd/system/firefox-sync.service
Folgende Zeilen einfügen:
Folgende Zeilen einfügen:
  #! /bin/sh
  [Unit]
Description=Firefox Sync Server
After=syslog.target network.target remote-fs.target nss-lookup.target
 
[Service]
Type=simple
User=firefox-sync
Group=firefox-sync
Umask=007
Restart=on-abort
ExecStart=/opt/syncserver/local/bin/gunicorn --paste /opt/syncserver/syncserver.ini
   
   
  ### BEGIN INIT INFO
  [Install]
  # Provides:          mozillasync
  WantedBy=multi-user.target
# Required-Start:    $remote_fs $network $syslog
 
# Required-Stop:    $remote_fs $network $syslog
# Default-Start:    2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:      Mozillasync startscript.
### END INIT INFO
DIR=/opt/ffsync
DAEMON="$DIR/bin/paster"
OPTIONS="serve $DIR/development.ini --daemon"
PID=`pidof "$DIR/bin/python"`
case "$1" in
  start)
    if [ -z $PID ]; then
      echo "Starting Firefox-Sync"
      $DAEMON $OPTIONS > /dev/null
    else
      echo "Firefox-Sync already running"
    fi
    ;;
  stop)
      if [ -z $PID ]; then
      echo "Firefox-Sync not running"
    else
      echo "Stopping Firefox-Sync"
      kill -9 $PID
    fi
  restart)
    $0 stop
    sleep 1
    $0 start
    ;;
esac
Skript ausführbar machen:
chmod +x /etc/init.d/ffsync
Autostart des Syncserver beim Systemstart:
Autostart des Syncserver beim Systemstart:
  update-rc.d ffsync defaults
  systemctl enable --now firefox-sync




==Syncserver starten==
==Syncserver starten==
  /etc/init.d/ffsync start
  service firefox-sync start




==Client Konfiguration==
==Client Konfiguration==
Die Einrichtung des Clients ist selbsterklärend.
Für die Synchronisation ist ein Mozilla-Account erforderlich.
Es muss lediglich die Einstellung für den Server von '''Firefox Sync-Server''' in '''Eigenen Sync Server verwenden...'''. Als Server dann entweder '''http://IP_des_Server:5000''' oder '''https://ffsync.domain.org''' eintragen.
 
Beim Anlegen eines neuen Accounts wird ein sog. Syncschlüssel generiert, der auf allen Clients, die mit diesem Account synchronisiert werden sollen angegeben werden muss.
Um einen eigenen Server für die Synchronisation zu verwenden, muss die URL des Sycnservers vor der eigentlichen Synckonfiguration eingerichtet werden:
*Firefox starten
falls unter Einstellungen/Sync bereits eine Synchronisation eingerichtet ist, diese trennen
*Adresse about:config eingeben
*Unter Suchen: services.sync.tokenServerURI eingeben
*Den Eintrag identity.sync.tokenserver.uri durch doppelcklick bearbeiten
**Server nur lokal erreichbar (siehe Konfiguration Sync-Server): Adresse: http://'''IP_des_Server'''/token/1.0/sync/1.5 eingeben
**Server aus dem Internet erreichbar (siehe Konfiguration Sync-Server): Adresse: https://ffsync.'''domaian.org'''/token/1.0/sync/1.5 eingeben
*Firefox neu starten
Synchronisation konfigurieren:
*Firefox Menü Extras/Einstellungen auswählen
*Sync anklicken
*Firefox Konto neu erstellen:
**Link Konto erstellen anklicken
**Emailadresse und Passwort vergeben und Geburtsjahr auswählen
**Haken bei "Auswählen, was synchronisiert werden soll" anklicken
**Registrieren anwählen
**Nach der Bestätigung wird eine Mail an die angegeben Mailadresse gesendet.
**Den Bestätigen Link in der Mail anklicken, um die Email-Adresse zu bestätigen
**Je nach Bedarf auswählen, welche Daten synchronisiert werden sollen: Tabs, Lesezeichen, Passwörter, Chronik, Add-ons, Einstellungn, Gerätename
*Vorhandenes Firefox Konto:
**Link Anmelden anklicken
**Emailadresse und Passwort des Mozilla-Kontos eingeben
**Verwalten anklicken
**Je nach Bedarf auswählen, welche Daten synchronisiert werden sollen: Tabs, Lesezeichen, Passwörter, Chronik, Add-ons, Einstellungn, Gerätename
 
==Firefox Sync Degug Log==
In Firefox folgende Url eingeben: about:config


{{Hinweis|Bei eigenen Versuchen traten immer wieder Fehlermeldungen beim Synchronisieren nach dem Start des Firefox auf. Nach manuellem Auslösen (evtl. mehrfach) eines Syncvorgangs (Menü Extras/Jetzt Synchronisieren) hat es dann geklappt.}}
Wenn die Synchronisierung fehlerfrei funktioniert, sollten keine Log-Einträge vorhanden sein. Falls welche vorhanden sind, können diese Hinweise für die Fehlerursache liefern.

Aktuelle Version vom 6. Juli 2020, 17:43 Uhr

Allgemein

Mozilla-Sync.png

Mozilla Firefox Sync ist seit Version 4 von Firefox fester Bestandteil des Browser's. Mit Firefox-Version 29 wurde das Protokoll geändert, sodass seit dieser Version die Serverversion 1.5 verwendet werden muss. Neben der Serverkomponente wurde die Authentifizierung der User geändert. Es ist nun ein Mozilla-Konto erforerderlich, ooder der optionale Accounting-Server. Auf dem Server wird der hier vorgestellte Firefox Syncserver (ehemals Weave) verwendet, um die Bookmarks, History, Passwörter und geöffnete Tabs zwischen verschiendenne Installationen zu synchronisieren.

Das Anlegen eines neuen Accounts, Änderung des Passwortes usw. wird komplett vom Client erledigt. Nach der Serverinstallation ist keinerlei Eingriff diesbezüglich am Server erforderlich.


Voraussetzung für Synchronisation via Internet:

  • Webserver
  • OpenSSL mit Wildcard Zertifkat


Installation

apt-get install make python-dev git-core python-virtualenv g++
cd /opt/
git clone https://github.com/mozilla-services/syncserver
cd syncserver
make build
mkdir db

Konfiguration

Sync-Server

Das Konfigurationfile des Syncservers befinden sich im Ordner /opt/syncserver/.

cd /opt/syncserver/

Festlegen des SQLite Datenbankfiles zum Speichern der Syncdaten und eines Schlüssels für die Verschlüsselung der Datenbank:

Schlüssel:

head -c 20 /dev/urandom | sha1sum

die Ausgabe sieht z.B. folgendermaßen aus:

8c76e8b050abd0fffb0a986146282fe328be2e92 -

D.h. SYNC_SECRET=8c76e8b050abd0fffb0a986146282fe328be2e92

Konfigfile anpassen:

vi syncserver.ini

Folgende Änderungen durchführen:

[syncserver]
sqluri = sqlite:////opt/syncserver/db/syncserver.db
secret = SYNC_SECRET

Syncserver nur aus dem lokalen Netzwerk erreichbar:

public_url = http://IP_des_Server:5000

Syncserver aus dem Internet erreichbar:

public_url = https://ffsync.domain.org
force_wsgi_environ = true

Optional: Syncserver aus dem Internet erreichbar

Mit obigen Einstellungen ist der Syncserver im lokalen Netzwerk unter der Adresse http://IP_des_SERVER:5000 erreichbar. Mittels Apache Reverse Proxy ist es möglich, den Syncserver auch aus dem Internet erreichbar zu machen und die Daten SSL verschlüsselt zu übertragen.

vi /etc/apache2/sites-enabled/ffsync_https.conf

Folgende Zeilen einfügen:

  • Apache 2.2:
<VirtualHost *:443>
   ServerName ffsync.domain.org
   ProxyRequests Off
   <Proxy *>
      Order allow,deny
      Allow from all
   </Proxy>
   ProxyPass / http://IP_des_SERVER:5000/
   <Location />
      ProxyPassReverse /
   </Location>
   SSLEngine on
   SSLProxyEngine On
   SSLCertificateFile /etc/ssl/CA/certs/wildcard.pem
</VirtualHost>
  • Apache 2.4:
<VirtualHost *:443>
   ServerName ffsync.domain.org
   ProxyRequests Off
   <Proxy *>
      Require all granted
   </Proxy>
   ProxyPass / http://IP_des_SERVER:5000/
   <Location />
      ProxyPassReverse /
   </Location>
   SSLEngine on
   SSLProxyEngine On
   SSLCertificateFile /etc/ssl/CA/certs/wildcard.pem
</VirtualHost>

Apache2 neu starten:

/etc/init.d/apache2 restart


Systemd Unit

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

Folgende Zeilen einfügen:

[Unit]
Description=Firefox Sync Server
After=syslog.target network.target remote-fs.target nss-lookup.target 
[Service]
Type=simple
User=firefox-sync
Group=firefox-sync
Umask=007
Restart=on-abort
ExecStart=/opt/syncserver/local/bin/gunicorn --paste /opt/syncserver/syncserver.ini

[Install]
WantedBy=multi-user.target

Autostart des Syncserver beim Systemstart:

systemctl enable --now firefox-sync


Syncserver starten

service firefox-sync start


Client Konfiguration

Für die Synchronisation ist ein Mozilla-Account erforderlich.

Um einen eigenen Server für die Synchronisation zu verwenden, muss die URL des Sycnservers vor der eigentlichen Synckonfiguration eingerichtet werden:

  • Firefox starten

falls unter Einstellungen/Sync bereits eine Synchronisation eingerichtet ist, diese trennen

  • Adresse about:config eingeben
  • Unter Suchen: services.sync.tokenServerURI eingeben
  • Den Eintrag identity.sync.tokenserver.uri durch doppelcklick bearbeiten
    • Server nur lokal erreichbar (siehe Konfiguration Sync-Server): Adresse: http://IP_des_Server/token/1.0/sync/1.5 eingeben
    • Server aus dem Internet erreichbar (siehe Konfiguration Sync-Server): Adresse: https://ffsync.domaian.org/token/1.0/sync/1.5 eingeben
  • Firefox neu starten

Synchronisation konfigurieren:

  • Firefox Menü Extras/Einstellungen auswählen
  • Sync anklicken
  • Firefox Konto neu erstellen:
    • Link Konto erstellen anklicken
    • Emailadresse und Passwort vergeben und Geburtsjahr auswählen
    • Haken bei "Auswählen, was synchronisiert werden soll" anklicken
    • Registrieren anwählen
    • Nach der Bestätigung wird eine Mail an die angegeben Mailadresse gesendet.
    • Den Bestätigen Link in der Mail anklicken, um die Email-Adresse zu bestätigen
    • Je nach Bedarf auswählen, welche Daten synchronisiert werden sollen: Tabs, Lesezeichen, Passwörter, Chronik, Add-ons, Einstellungn, Gerätename
  • Vorhandenes Firefox Konto:
    • Link Anmelden anklicken
    • Emailadresse und Passwort des Mozilla-Kontos eingeben
    • Verwalten anklicken
    • Je nach Bedarf auswählen, welche Daten synchronisiert werden sollen: Tabs, Lesezeichen, Passwörter, Chronik, Add-ons, Einstellungn, Gerätename

Firefox Sync Degug Log

In Firefox folgende Url eingeben: about:config

Wenn die Synchronisierung fehlerfrei funktioniert, sollten keine Log-Einträge vorhanden sein. Falls welche vorhanden sind, können diese Hinweise für die Fehlerursache liefern.