Debian MozillaSync
Allgemein
Mittels Mozilla Firefox Sync Addon (https://addons.mozilla.org/de/firefox/addon/10868/) und dem hier vorgestellten Mozilla Syncserver 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/tip.tar.gz -O sync-server.tar.gz wget http://hg.mozilla.org/services/reg-server/archive/tip.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/mozilla-sync mv mv sync-server-[TAB-Taste] /var/www/mozilla-sync/sync-server mv reg-server-[TAB-Taste] /var/www/mozilla-sync/reg-server
chown -R www-data:www-data /var/www/mozilla-sync
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 mozillasync; GRANT ALL PRIVILEGES ON mozillasync.* TO mozillasync@localhost IDENTIFIED BY 'mozillasync_pwd'; exit
SQL-Template angelegen, das anschließend die nötigen Tabellen in der SQL Datenbank erzeugt.
vi mozillasync.sql
Folgende Zeilen einfügen:
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; CREATE TABLE users ( id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, username varchar(32), password_hash varbinary(128), email varbinary(64), STATUS tinyint(4) DEFAULT '1', alert text, reset varbinary(32) DEFAULT NULL ) engine=InnoDB;
Datenbank Template importieren (sql_root_pwd erforderlich):
mysql -u root -p mozillasync <mozillasync.sql
Konfiguration
Sync-Server:
cd /var/www/mozilla-sync/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_MYSQL_AUTH_DB', 'mozillasync'); define('WEAVE_MYSQL_AUTH_USER', 'mozillasync'); define('WEAVE_MYSQL_AUTH_PASS', 'mozillasync_pwd'); define('WEAVE_STORAGE_ENGINE', 'mysql'); define('WEAVE_MYSQL_STORE_READ_HOST', 'localhost'); define('WEAVE_MYSQL_STORE_READ_DB', 'mozillasync'); define('WEAVE_MYSQL_STORE_READ_USER', 'mozillasync'); define('WEAVE_MYSQL_STORE_READ_PASS', 'mozillasync_pwd'); define('WEAVE_MYSQL_STORE_WRITE_HOST', WEAVE_MYSQL_STORE_READ_HOST); define('WEAVE_MYSQL_STORE_WRITE_DB', WEAVE_MYSQL_STORE_READ_DB); define('WEAVE_MYSQL_STORE_WRITE_USER', WEAVE_MYSQL_STORE_READ_USER); define('WEAVE_MYSQL_STORE_WRITE_PASS', WEAVE_MYSQL_STORE_READ_PASS);
Reg-Server:
cd /var/www/mozilla-sync/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_HOST', 'localhost'); define('WEAVE_MYSQL_AUTH_DB', 'mozillasync'); define('WEAVE_MYSQL_AUTH_USER', 'mozillasync' 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. 25 Zeichen) Text/Zahlenkombination Weave_Salt eingeben. Dies ist enorm wichtig für die verwendete SHA256-Verschlüsselung |
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/mozilla-sync Alias /1.0 /var/www/mozilla-sync/sync-server/1.0/index.php Alias /user/1.0 /var/www/mozilla-sync/reg-server/1.0/index.php Alias /user/1 /var/www/mozilla-sync/reg-server/1.0/index.php Alias /misc/1.0/captcha_html /var/www/mozilla-sync/reg-server/1.0/captcha.php Alias /misc/1/captcha_html /var/www/mozilla-sync/reg-server/1.0/captcha.php Alias /weave-registration-static /var/www/mozilla-sync/reg-server/1.0/static Alias /weave-password-reset /var/www/mozilla-sync/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/mozilla-sync/"> 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