Debian MozillaSync: Unterschied zwischen den Versionen

Aus Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
=Allgemein=
=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.  
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.
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.
Zeile 15: Zeile 15:
  mkdir /usr/local/src/mozilla_sync
  mkdir /usr/local/src/mozilla_sync
  cd /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/sync-server/archive/fc6beddf7e61.tar.gz -O sync-server.tar.gz
  wget http://hg.mozilla.org/services/reg-server/archive/tip.tar.gz -O reg-server.tar.gz
  wget http://hg.mozilla.org/services/reg-server/archive/0a3be81af7cc.tar.gz -O reg-server.tar.gz
entpacken:
entpacken:
  tar -xvf sync-server.tar.gz
  tar -xvf sync-server.tar.gz
  tar -xvf reg-server.tar.gz
  tar -xvf reg-server.tar.gz
Verschieben auf den Webserver und Rechte anpassen:
Verschieben auf den Webserver und Rechte anpassen:
  mkdir /var/www/mozilla-sync
  mkdir /var/www/weave
mv mv sync-server-[TAB-Taste] /var/www/mozilla-sync/sync-server
  mv sync-server-fc6beddf7e61 /var/www/weave/sync-server
  mv reg-server-[TAB-Taste] /var/www/mozilla-sync/reg-server
  mv reg-server-0a3be81af7cc /var/www/weave/reg-server
 
  chown -R root:www-data /var/www/weave
{{Hinweis|
In obigen beiden Befehlen ist [TAB-Taste] erforderlich, um den Pfadnamen automatisch zu vervollständigen. Der Pfad ändert sich relativ schell, da immer wieder neue Versionen von Sync- und Reg-Server veröffentlicht werden, und diese sich in geänderten Pfadnamen wiederspiegeln.}}
 
  chown -R www-data:www-data /var/www/mozilla-sync




Zeile 35: Zeile 31:
  mysql -u root -p
  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):
Passwort '''''sql_root_pwd''''' eingeben, wenn danach gefragt wird. Dann folgende Befehle eingeben ('''''mozillasync_pwd''''' mit dem gew. Datenbank Passwort ersetzen):
  CREATE DATABASE mozillasync;
  CREATE DATABASE weave;
  GRANT ALL PRIVILEGES ON mozillasync.* TO mozillasync@localhost IDENTIFIED BY ''''''mozillasync_pwd'''''';
  GRANT ALL PRIVILEGES ON weave.* TO weave@localhost IDENTIFIED BY ''''''mozillasync_pwd'''''';
  exit
  exit


SQL-Template angelegen, das anschließend die nötigen Tabellen in der SQL Datenbank erzeugt.
SQL-Template angelegen, das anschließend die nötigen Tabellen in der SQL Datenbank erzeugt.
  vi mozillasync.sql
  vi weave.sql
Folgende Zeilen einfügen:
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` (
  CREATE TABLE `collections` (
   `userid` int(11) NOT NULL,
   `userid` int(11) NOT NULL,
Zeile 49: Zeile 56:
   KEY `nameindex` (`userid`,`name`)
   KEY `nameindex` (`userid`,`name`)
  ) ENGINE=InnoDB;
  ) ENGINE=InnoDB;
 
  CREATE TABLE `wbo` (
  CREATE TABLE `wbo` (
   `username` int(11) NOT NULL,
   `username` int(11) NOT NULL,
   `collection` smallint(6) NOT NULL DEFAULT '0',
   `collection` smallint(6) NOT NULL default '0',
   `id` varbinary(64) NOT NULL DEFAULT '',
   `id` varbinary(64) NOT NULL default '',
   `parentid` varbinary(64) DEFAULT NULL,
   `parentid` varbinary(64) default NULL,
   `predecessorid` varbinary(64) DEFAULT NULL,
   `predecessorid` varbinary(64) default NULL,
   `sortindex` int(11) DEFAULT NULL,
   `sortindex` int(11) default NULL,
   `modified` bigint(20) DEFAULT NULL,
   `modified` bigint(20) default NULL,
   `payload` longtext,
   `payload` longtext,
   `payload_size` int(11) DEFAULT NULL,
   `payload_size` int(11) default NULL,
   PRIMARY KEY  (`username`,`collection`,`id`),
   PRIMARY KEY  (`username`,`collection`,`id`),
   KEY `parentindex` (`username`,`collection`,`parentid`),
   KEY `parentindex` (`username`,`collection`,`parentid`),
Zeile 66: Zeile 73:
   KEY `predecessorindex` (`username`,`collection`,`predecessorid`),
   KEY `predecessorindex` (`username`,`collection`,`predecessorid`),
   KEY `size_index` (`username`,`payload_size`)
   KEY `size_index` (`username`,`payload_size`)
  ) ENGINE=InnoDB;
  ) 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):
Datenbank Template importieren ('''''sql_root_pwd''''' erforderlich):
   mysql -u root -p mozillasync <mozillasync.sql
   mysql -u root -p weave <weave.sql




=Konfiguration=
=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:
Reg-Server:
  cd /var/www/mozilla-sync/reg-server/1.0
  cd /var/www/weave/reg-server/1.0
  cp weave_user_constants.php.dist weave_user_constants.php
  cp weave_user_constants.php.dist weave_user_constants.php
  vi 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:
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_AUTH_ENGINE', 'mysql');
define('WEAVE_MYSQL_AUTH_HOST', 'localhost');
  define('WEAVE_MYSQL_AUTH_PASS', '''''mozillasync_pwd''''');
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'''''');
  define('WEAVE_SHA_SALT', ''''''Weave_Salt'''''');


{{Achtung|
{{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}}
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'''''');
{{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.}}




Zeile 126: Zeile 116:
     SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
     SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
     ServerName mozillasync.domain.org
     ServerName mozillasync.domain.org
     DocumentRoot /var/www/mozilla-sync
     DocumentRoot /var/www/weave
     Alias /1.0      /var/www/mozilla-sync/sync-server/1.0/index.php
     Alias /1.0      /var/www/weave/sync-server/1.0/index.php
     Alias /user/1.0 /var/www/mozilla-sync/reg-server/1.0/index.php
     Alias /user/1.0 /var/www/weave/reg-server/1.0/index.php
     Alias /user/1  /var/www/mozilla-sync/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/mozilla-sync/reg-server/1.0/captcha.php
     Alias /misc/1.0/captcha_html    /var/www/weave/reg-server/1.0/captcha.php
     Alias /misc/1/captcha_html      /var/www/mozilla-sync/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/mozilla-sync/reg-server/1.0/static
     Alias /weave-registration-static /var/www/weave/reg-server/1.0/static
     Alias /weave-password-reset      /var/www/mozilla-sync/reg-server/1.0/forgot_password.php
     Alias /weave-password-reset      /var/www/weave/reg-server/1.0/forgot_password.php
     CustomLog /var/log/apache2/mozilla-sync/access.log combined
     CustomLog /var/log/apache2/mozilla-sync/access.log combined
     ErrorLog /var/log/apache2/mozilla-sync/error.log
     ErrorLog /var/log/apache2/mozilla-sync/error.log
     DirectoryIndex index.php index.html index.htm
     DirectoryIndex index.php index.html index.htm
     ServerSignature Off
     ServerSignature Off
     <Directory "/var/www/mozilla-sync/">
     <Directory "/var/www/weave/">
       Options Indexes FollowSymLinks
       Options Indexes FollowSymLinks
       AllowOverride none
       AllowOverride none
Zeile 150: Zeile 140:
Apache neu starten:
Apache neu starten:
  /etc/init.d/apache2 restart
  /etc/init.d/apache2 restart


=Client Installation und Konfiguration=
=Client Installation und Konfiguration=
Das Firefox Sync-Plugin kann von dieser Seite: https://addons.mozilla.org/de/firefox/addon/10868/ heruntergeladen und installiert werden.
{{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.}}
* Einrichtung des Sync-Kontos
* Synchronisation mit weiterem PC

Version vom 2. Oktober 2010, 18:09 Uhr

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 kann von dieser Seite: https://addons.mozilla.org/de/firefox/addon/10868/ heruntergeladen und installiert werden.

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.


  • Einrichtung des Sync-Kontos


  • Synchronisation mit weiterem PC