Debian MozillaSync
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, History, Passwörter und geöffnete Tabs synchronisiert werden. Mozilla Firefox Sync wird fester Bestandteil des kommenden Firefox 4.0 sein. Es muss dann kein Plugin mehr installiert werden.
Der komplette Syncserver Weave 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 verschlüsselt in einer MySQL-Datenbank abgelegt. Die Syncdaten werden mit Hilfe einer Passphrase, die der User beim Anlegen seines Account vergibt, verschlüsselt. Die Userpasswörter werden mittels SHA-256 Verschlüsselung abgelgt. Der für diese Verschlüsselung nötige SALT (Passphrase) wird vom Serveradmin im Rahmen der Konfiguration festgelgt.
Das Anlegen eines neuen Accounts, Änderung des Passwortes usw. wird komplett vom Client Sync-Plugin erledigt. Nach der Serverinstallation ist keinerlei Eingriff diesbezüglich am Server erforderlich.
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');
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');
Apache Virtualhost
Da der Zugriff auf den Syncserver über einen Standard Apache Virtualhost erfolgt, wird dieser hier angelegt
HTTP nur lokal
Aus Sicherheitsgründen sollten Sync-Daten nicht per HTTP via Internet übertragen werden. Aus diesem Grund ist folgender beschriebener HTTP-Virtualhost nur aus dem lokalen Netzwerk erreichbar. Dazu wird ein weiterer Port (8000) definiert, auf dem Apache neben Port 80 (HTTP) und 443 (HTTPS) lauschen soll.
vi /etc/apache2/ports.conf
Dieses File folgendermaßen ergänzen:
NameVirtualHost *:80 NameVirtualHost *:8000 Listen 80 Listen 8000
Nun wird der Virtualhost für Port 8000 erstellt:
vi /etc/apache2/sites-enabled/mozilla-sync_http.conf
Folgende Zeilen einfügen:
<VirtualHost *:8000> 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 192.168.0.0/255.255.255.0 </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
HTTPS
vi /etc/apache2/sites-enabled/mozilla-sync_https.conf
Folgende Zeile eingeben (den ServerName mozillasync.domain.org anpassen):
<VirtualHost *:443> SSLEngine On SSLCertificateKeyFile /etc/ssl/CA/key/wildcard-key.pem SSLCertificateFile /etc/ssl/CA/certs/wildcard-cert.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
PHP Bugfix
Leider enthält die verwendete Reg-Server-Version noch zwei kleine Bugs.
- Durch diesen Bug wird beim Anlegen eines neuen Accounts ein Fehler generiert.
vi /var/www/weave/reg-server/1.0/captcha.php
In Zeile 58 am Zeilenende ein ; anhängen, sodass diese Zeile korrekterweise so aussieht:
echo '<script>var RecaptchaOptions = {theme: "clean"};</script>;
- Dieser Bug verhindert das Zusenden des Passwortes per Email.
vi /var/www/weave/reg-server/1.0/templates/forgot_1.php
In Zeile 18 am Zeilenende ein ; anhängen, sodass diese Zeile korrekterweise so aussieht:
echo '<script>var RecaptchaOptions = {theme: "clean"};</script>';
Client Installation und Konfiguration
Installation
Das Firefox-Sync Plugin erstellt automatisch auf dem Server einen Account. Auf dem Server ist dazu keinerlei Aktion erforderlich.
Hinweis: | |
Damit die spätere Synchronisation mittels HTTPS (falls konfiguriert, siehe oben) funktioniert, muss das Root-CA Zertifikat importiert werden. Details → siehe hier. Es empfiehlt sich dies noch vor der Installation des Plugins durchzuführen. Wurde das Zertifikat nicht in Firefox importiert, dann scheitert die Anmeldung am Server mit der Fehlermeldung "Server konnte nicht erreicht werden." |
Das Firefox Sync-Plugin kann von dieser Seite: https://addons.mozilla.org/de/firefox/addon/10868/ heruntergeladen und installiert werden.
- Den grünen Button + Add to Firefox anklicken
- Installation bestätigen und anschließend Firefox neu starten, wie vom Plugin Installer gefordert.
Inbetriebnahme und Konfiguration des Plugin
Nach dem Firefox Neustart, öffnet sich automatisch das Fenster Firefox-Sync-Setup. Dieses bietet zwei Auswahlmöglichkeiten:
- Create a New Account
- Mit diesem Punkt wird das Sync-Konto auf dem Server erstellt und der Client eingerichtet.
-
- Server: use a custom server (Damit oben installierter Weave-Server anstatt des Mozilla Server verwendet wird)
- Server-URL (für http): http://IP_DES_SERVER:8000
- Server-URL (für https): https://mozillasync.domain.org
- E-Mail-Adresse: Mail-Adresse des Users. Fungiert gleichzeitig als Benutzername
- Passwort: beliebiges Passwort
- Wenn alle nötigen Angaben gemacht sind, Button weiter anklicken
- Hier die Passphrase eingeben, die zur Verschlüsselung der Daten (Bookmarks, Passwörter, History, usw.) in der Datenbank verwendet werden soll:
- Mit Button Sync Options können die Synchronisations Einstellungen getroffen werden:
- In obigen Privacy ...-Fenster den Button weiter anklicken
- I have a Firefox Sync Account
- 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. E-Mail-Adresse, Passwort und Passphrase identisch zu den Angaben bei der Accounterstellung wählen.
Konfiguration ändern
Die Einstellungen des Firefox-Sync-Plugin können jederzeit im Firefox Menü Extras/Sync/Preferences...