Firefox bietet schon seit einigen Versionen einen Sync-Service (Weave genannt) an, mit dem Add-Ons, Bookmarks, Passwörter, Einstellungen, die Chronik und aktuelle Tabs zwischen verschiedenen Firefox-Browsern (einschliesslich Firefox für Android) synchronisiert werden können. Das ist praktisch zum Abgleich zwischen mehreren Rechnern und auch als Backup, die Daten liegen allerdings auf Servern von Mozilla. Laut Mozilla sind sie dort sicher, wer jedoch wirklich sicher sein will oder wem die 25MB Speicher dort nicht reichen kann auch einen eigenen Server einrichten.

 

Vorraussetzungen

Der Weave-Servers ist recht genügsam. Man benötigt nur einen Webserver und PHP mit SQLite-Unterstützung.

Der Webserver:
Spezielle Module wie WebDAV oder so sind nicht nötig, eine Standard-Konfiguration sollte ausreichend sein. Es wird jedoch dringend empfohlen SSL zu verwenden, da das Sync-Passwort unverschlüsselt übertragen wird.

PHP:
Neben PHP selbst ist nur noch die Unterstützung von SQLite nötig. Bei Debian einfach das Paket "php5-sqlite" installieren, damit sollte alles erledigt sein.

GIT:
GIT ist eigentlich nicht nötig, macht es aber einfacher die nötigen Dateien zu holen und den Server aktuell zu halten.

Installation

Zuerst einmal holt man sich die nötigen Dateien, am einfachsten geht das mit git. Dazu gibt man in der Konsole folgendes ein:

cd /tmp
git clone https://github.com/balu-/FSyncMS

Der Befehl zieht sich von github alle nötigen Dateien und legt sie in das Unterverzeichnis "FSyncMS". Im Anschluss kopiert man den Inhalt in ein neues Unterverzeichnis auf dem Webserver, im Normalfall ist das /var/www/weave.

Die Konfiguration läuft im Browser über eine einfache Konfigurationsseite. Dazu die URL "https://<Servername>/weave" öffnen. Abgefragt wird nur ob man die Daten per SQL-Server oder SQLite speichern will. Im Zweifelsfall SQLite wählen und mit OK bestätigen. Das Skript legt jetzt die Konfiguration in "settings.php" an, dort kann man später bei Bedarf auch die Einstellungen per Hand ändern. Im Anschluss muss noch die Datei "setup.php" gelöscht werden, dann ist der Server betriebsbereit.

Firefox konfigurieren

Im Firefox auf "Bearbeiten" gehen, dann "Einstellungen", Dort dann "Sync", und "Firefox-Sync einrichten". Die Email und ein Passwort eingeben, und "Eigenen Server verwenden" auswählen. Die URL für den Sync lautet "https://<server>/weave/index.php/". Bestätigt man die Eingaben, sollte der Sync loslaufen und auf dem Server sieht man wie die Datei "weave_db" anwächst. Diesen Vorgang muss man jetzt für jeden zu synchronisierenden Firefox wiederholen.

Verwendet SSL und ein selbstsigniertes Zertifikat, muss man im Zertifikatmanager (unter Einstellungen, Erweitert, Zertifikate) sein Zertifikat importieren und beglaubigen, sonst schlägt der Sync fehl.

Absicherung

Mit den Standardeinstellungen sind alle Dateien im Verzeichnis weave zugänglich. Dadurch kann sich jeder der will z.B. die Datei "weave_db" mit der Datenbank herunterladen. Die ist zwar verschlüsselt, aber es stellt dennoch ein unnötiges Sicherheitsrisiko dar. Um das zu beheben, legt man im Verzeichnis weave eine Datei namens ".htaccess" mit folgendem Inhalt an:

Order Deny,Allow
Deny from all
<Files index.php>
    Allow from all
</Files>

Dadurch wird nur der Zugriff auf die Datei index.php erlaubt, alle anderen Dateien werden verweigert.  Im Anschluss apache neu starten, und ausprobieren ob es funktioniert. Wenn man weiterhin Zugriff auf eine der anderen Dateien hat, kann es sein das die globale Apache-Konfiguration die Änderung von Konfigurationsoptionen mit htaccess-Dateien nicht zulässt. In dem Fall muss man in der globalen Konfiguration bei den Optionen des Verzeichnisses /var/www die Anweisung "AllowOverride All" einfügen.