Debian MozillaSync

Aus Wiki
Zur Navigation springen Zur Suche springen

Allgemein

Mittels Mozilla Firefox Sync Addon (https://addons.mozilla.org/de/firefox/addon/10868/) und dem hier vorgestellten Mozilla Syncserver (Weave) kann auf elegante und sichere Art und Weise (https-Übertragung) die Bookmarks, Passwörter und geöffnete Tabs synchronisiert werden.

Der komplette Syncdiesnt besteht aus zwei Teilen. Der Sync-Server kümmert sich um die Synchronisation der Firefox-Daten. Der reg-server kümmert sich um die User authorisierung. Sämtliche Sync- und userdaten werden in einer MySQL-Datenbank abgelegt. Die Installation ist leider etwas aufwändiger, da kein Debian Paket zur Verfügung steht.

Voraussetzung:


Installation

Download

Download Verzeichnis erstellen und downloaden:

mkdir /usr/local/src/mozilla_sync
cd /usr/local/src/mozilla_sync
wget http://hg.mozilla.org/services/sync-server/archive/fc6beddf7e61.tar.gz -O sync-server.tar.gz
wget http://hg.mozilla.org/services/reg-server/archive/0a3be81af7cc.tar.gz -O reg-server.tar.gz

entpacken:

tar -xvf sync-server.tar.gz
tar -xvf reg-server.tar.gz

Verschieben auf den Webserver und Rechte anpassen:

mkdir /var/www/weave
mv sync-server-fc6beddf7e61 /var/www/weave/sync-server
mv reg-server-0a3be81af7cc /var/www/weave/reg-server
chown -R root:www-data /var/www/weave


MySQL-Datenbank anlegen:

Datenbank und User anlegen:

mysql -u root -p

Passwort sql_root_pwd eingeben, wenn danach gefragt wird. Dann folgende Befehle eingeben (mozillasync_pwd mit dem gew. Datenbank Passwort ersetzen):

CREATE DATABASE weave;
GRANT ALL PRIVILEGES ON weave.* TO weave@localhost IDENTIFIED BY 'mozillasync_pwd';
exit

SQL-Template angelegen, das anschließend die nötigen Tabellen in der SQL Datenbank erzeugt.

vi weave.sql

Folgende Zeilen einfügen:

CREATE TABLE `users` (
  id int(11) NOT NULL PRIMARY KEY auto_increment,
  username varbinary(32) NOT NULL,
  password_hash varbinary(128) default NULL,
  email varbinary(64) default NULL,
  status tinyint(4) default '1',
  alert text,
  reset varchar(32),
  reset_expiration datetime
) ENGINE=InnoDB;

CREATE TABLE `collections` (
  `userid` int(11) NOT NULL,
  `collectionid` smallint(6) NOT NULL,
  `name` varchar(32) NOT NULL,
  PRIMARY KEY  (`userid`,`collectionid`),
  KEY `nameindex` (`userid`,`name`)
) ENGINE=InnoDB;
CREATE TABLE `wbo` (
  `username` int(11) NOT NULL,
  `collection` smallint(6) NOT NULL default '0',
  `id` varbinary(64) NOT NULL default ,
  `parentid` varbinary(64) default NULL,
  `predecessorid` varbinary(64) default NULL,
  `sortindex` int(11) default NULL,
  `modified` bigint(20) default NULL,
  `payload` longtext,
  `payload_size` int(11) default NULL,
  PRIMARY KEY  (`username`,`collection`,`id`),
  KEY `parentindex` (`username`,`collection`,`parentid`),
  KEY `modified` (`username`,`collection`,`modified`),
  KEY `weightindex` (`username`,`collection`,`sortindex`),
  KEY `predecessorindex` (`username`,`collection`,`predecessorid`),
  KEY `size_index` (`username`,`payload_size`)
) ENGINE=InnoDB; 

Datenbank Template importieren (sql_root_pwd erforderlich):

 mysql -u root -p weave <weave.sql


Konfiguration

Reg-Server:

cd /var/www/weave/reg-server/1.0
cp weave_user_constants.php.dist weave_user_constants.php
vi weave_user_constants.php

Nach "# ***** END LICENSE BLOCK *****" folgende Zeilen einfügen und mozillasync_pwd mit dem beim Erstellen der Datenbank angegebenem Datenbank Passwort ersetzen:

define('WEAVE_AUTH_ENGINE', 'mysql');
define('WEAVE_MYSQL_AUTH_PASS', mozillasync_pwd);
define('WEAVE_SHA_SALT', 'Weave_Salt');
Warning.png Achtung:

Für den Parameter WEAVE_SHA_SALT eine beliebige sehr lange (mind. 10 Zeichen) Text/Zahlenkombination Weave_Salt eingeben. Dies ist enorm wichtig für die verwendete SHA256-Verschlüsselung


Sync-Server:

cd /var/www/weave/sync-server/1.0
cp default_constants.php.dist default_constants.php
vi default_constants.php

Nach "# ***** END LICENSE BLOCK *****" folgende Zeilen einfügen und mozillasync_pwd mit dem beim Erstellen der Datenbank angegebenem Datenbank Passwort ersetzen:

define('WEAVE_STORAGE_ENGINE', 'mysql');
define('WEAVE_MYSQL_STORE_READ_PASS', mozillasync_pwd);
define('WEAVE_AUTH_ENGINE', 'mysql');
define('WEAVE_MYSQL_AUTH_PASS', mozillasync_pwd);
define('WEAVE_SHA_SALT', 'Weave_Salt');
Bulbgraph.png Hinweis:

Für den Parameter WEAVE_SHA_SALT den selben Weave_Salt eingeben, wie oben beim Reg-Server. Ansonsten kann der Syncserver den User später nicht authentifizieren und die Synchronisation scheitert.


Apache Virtualhost

Da der Zugriff auf den Syncserver über einen Standard Apache Virtualhost erfolgt, wird dieser hier angelegt:

vi /etc/apache2/sites-enabled/mozilla-sync_https.conf

Folgende Zeile eingeben (den ServerName mozillasync.domain.org anpassen):

<VirtualHost *:443>
   SSLEngine On
   SSLKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
   SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
   ServerName mozillasync.domain.org
   DocumentRoot /var/www/weave
   Alias /1.0      /var/www/weave/sync-server/1.0/index.php
   Alias /user/1.0 /var/www/weave/reg-server/1.0/index.php
   Alias /user/1   /var/www/weave/reg-server/1.0/index.php
   Alias /misc/1.0/captcha_html     /var/www/weave/reg-server/1.0/captcha.php
   Alias /misc/1/captcha_html       /var/www/weave/reg-server/1.0/captcha.php
   Alias /weave-registration-static /var/www/weave/reg-server/1.0/static
   Alias /weave-password-reset      /var/www/weave/reg-server/1.0/forgot_password.php
   CustomLog /var/log/apache2/mozilla-sync/access.log combined
   ErrorLog /var/log/apache2/mozilla-sync/error.log
   DirectoryIndex index.php index.html index.htm
   ServerSignature Off
   <Directory "/var/www/weave/">
      Options Indexes FollowSymLinks
      AllowOverride none
      Order allow,deny
      Allow from all
   </Directory>
</VirtualHost>

Dieser Virtualhost verwendet eigene Access- und Error- Logfiles. Für diese wird ein eigenes Unterverzeichnis angelegt:

mkdir /var/log/apache2/mozilla-sync

Apache neu starten:

/etc/init.d/apache2 restart


Client Installation und Konfiguration

Das Firefox-Sync Plugin erstellt automatisch auf dem Server einen Account. Auf dem Server ist dazu keinerlei Aktion erforderlich.

Bulbgraph.png Hinweis:

Damit die spätere Synchronisation funktioniert, muss die Adresse des Syncserver's (https://mozillasync.domain.org) einmalig im Mozilla Firefox (an jedem PC) eingegeben werden und das (selbstsignierte) Apache2 Zertifikat dauerhaft gespeichert werden. Es empfiehlt sich dies noch vor der Installation des Plugins durchzuführen.


Das Firefox Sync-Plugin kann von dieser Seite: https://addons.mozilla.org/de/firefox/addon/10868/ heruntergeladen und installiert werden. Mozilla-Sync1.png

  • Den grünen Button + Add to Firefox anklicken
  • Installation bestätigen und anschließend Firefox neu starten, wie vom Plugin Installer gefordert.
  • Nach dem Firefox Neustart, öffnet sich automatisch das Fenster Firefox-Sync-Setup. Dieses bietet zwei Auswahlmöglichkeiten:
    • Ich habe Sync bisher noch nicht verwendet
Mit diesem Punkt wird das Sync-Konto auf dem Server erstellt und der Client eingerichtet.
Mozilla-Sync2.png
Verbinde mit: Eigenen Server verwenden (Damit oben installierter Weave-Server anstatt des Mozilla Server verwendet wird)
Server-URL: https://mozillasync.domain.org
Benutzername: beliebiger Username
Passwort: beliebiges Passwort
E-Mail-Adresse: Mail-Adresse des Users
Wenn alle nötigen Angaben gemacht sind, Button weiter anklicken


Hier zweimal die Passphrase eingeben, die zur Verschlüsselung der Daten (Bookmarks, Passwörter, History, usw.) in der Datenbank verwendet werden soll:
Mozilla-Sync3.png
Anschließend Button weiter anklicken


In der folgenden Maske die gewüschten Sync-Einstellungen vornehmen.
Mozilla-Sync4.png
Mit Button weiter bestätigen
  • ich verwende Sync bereits auf einem anderen Computer
Dieser Punkt sollte verwendet werden, wenn auf dem Sync-Server bereits mit dem ersten Punkt (auf einem anderen PC) ein Konto angelegt wurde, um den PC mit diesem Konto zu synchronisieren.

Die Einstellungen analog zu den bei der Erstellung des Accounts eingeben. Username, Passwort und Passphrase identisch zu den Angaben bei der Accounterstellung wählen.