Einen eigenen Mozilla Weave/Sync-Server (unter Gentoo) betreiben

[caption id="attachment_874" align="alignright" width="150" caption="Logo der Firefox - Sync - Erweiterung"]Logo der Firefox -
Sync -
Erweiterung{.size-thumbnail .wp-image-874 width="150" height="150"}[/caption]

Yeah - Heute möchte ich Euch mal allen eine kleine Einführung in die Firefox-Extension (... was ist eigentlich ein "Plugin", was ein "Add-on" und was eine "Extension"?? O.O - Hab ich noch nie gerallt ;D ) "Sync" (früher: "Weave") geben.

Vielleicht kennt Ihr das: Ihr seid an einem neuen Rechner, startet Euren Firefox und merkt, wie sehr Ihr Euch eigentlich schon an Eure "Personas" (Theme), Bookmarks, History, Passwort- und Formularvervollständigung, etc. gewöhnt habt. Oder Ihr habt mehrere Rechner und irgendwie überall andere Bookmarks, das Kennwort, was Ihr gerade braucht, habt Ihr ausgerechnet auf dem System, vor dem Ihr gerade sitzt, noch nie eingegeben, und so weiter ...

Genau hier schafft "Sync" Abhilfe:

Es wird einfach auf allen Systemen als Firefox-Erweiterung installiert und kümmert sich im Hintergrund darum jegliche Daten, die sonst nur lokal gespeichert werden würden, auf einen Server hochzuladen. Alle Firefox...e synchronisieren sich dann stets mit den in diesem Profil gespeicherten Daten und ... was soll ich sagen: Ihr wollt das einfach nicht mehr missen! :)

Standardmäßig legt man sich bei Mozilla einen Weave-/Sync-Account an und konfiguriert seine Sync-Einstellungen hierfür; die Extension unterstützt einen mit passenden "Account Anlegen" / "Bestehenden Account verwenden" - Buttons.
Man wird hier - man kennt es - zunächst nach einem Usernamen und einem Passwort gefragt; im weiteren Verlauf des Setups zudem nach einem weiteren Passwort, welches zur Verschlüsselung der Daten auf den Mozilla - Servern dient. Diese Verschlüsselung soll diese doch schon sehr sensiblen Daten bei einer Kompromittierung der Mozilla Server schützen. Hier wird empfohlen ein anderes Passwort als das für den Account selbst zu verwenden. Klar - dieser Empfehlung nicht zu folgen wäre auch schon sehr dumm!

Ich selbst habe diese Methode lange Zeit verwendet (nur für private und nicht so sensible Daten, versteht sich!!). Mit jedem weiteren Passwort, welches in diesen Speicher wanderte, fühlte ich mich jedoch mehr und mehr verunsichert. Immerhin

sendet man hier Zugangsdaten zu wer-weiss-was für Systeme an einen Server, zu welchem man keinerlei Ahnung hat wer da eine Möglichkeit hat diese Daten einzusehen; ich muss zugeben nicht wirklich viel über die internen Strukturen der Mozilla Foundation zu wissen. Wenn diese Server gar irgendwann einmal von dritten kompromittiert werden (was dem besten Admin passieren kann), hat man spätestens dann ein wirklich ausgewachsenes Problem.

Heute wurde mir dieses unangenehme Gefühl zu belastend und ich habe mich einmal nach Alternativen umgesehen. Und Tatsache: Man kann, wie es sich für ein anständiges, freies System gehört, diese Serverkomponente auch auf seiner eigenen Infrastruktur betreiben! :)

Voraussetzungen schaffen

Damit dieses ganze System funktioniert, muss neben dem obligatorischem Apache Webserver auch ein PHP 5 mit den Modulen:

  • json
  • mbstring
  • SQLite ( 3! )

installiert sein. Das ist eigentlich schon alles, was zwingend vorhanden sein muss.
Idealerweise sollte man sich jedoch darüber bewusst sein, das hier hochsensible Daten durch's Internet geschickt werden und sowohl OpenSSL, wie auch ein passendes SSL Zertifikat im Apache einrichten. Wer meint er braucht das nicht: Ihr könnt mir Eure Logins auch vertrauensvoll direkt an mailYYYY@marc-richter.info mailen, ohne Euch hier die Mühe zu machen ... ;)

Achtung:

Unter Gentoo Linux war es zwingend erforderlich, das "dev-lang/php" mit dem USE-Flag "sqlite3" kompiliert wurde; "sqlite" allein genügte hier nicht, was mich bereits Stunden gekostet hat ... :P
Ich denke, dieses gilt es in ähnlicher Form auch unter anderen Distributionen zu beachten. Zu erkennen ist das fehlen oder das vorhandensein der Erweiterung in einer falschen Version daran, das nach dem Weave - Passwortdialog nur eine Meldung "Database unavailable" ausgegeben wird.

Einrichtung des "Weave Minimal Servers"

Das Setup des "vollen" Servers ist im Wiki des Mozilla Projektes dokumentiert. Beschrieben; allerdings wird direkt im er

sten Satz darauf hingewiesen, das wohl für die meisten Setups der "Minimal Server", einer alternativen Implementierung des ganzen von "tobyelliott", besser geeignet ist:

It is strongly recommended that you use the [Weave Minimal Server] rather than a full install.

Ich kann zum "Full Server" nichts sagen - ich habe diesen "Minimal Server" installiert! :) Das schafft mir schon ein deutlich besseres Gefühl, das ganze irgendwo liegen zu haben wo (unter normalen Umständen) nur ich drankomme. Vor einer Kompromittierung bin ich natürlich so auch nicht gefeit. Ich denke jedoch das ich mit meinem Server ein deutlich weniger lohnendes Ziel bin als die Mozilla - Systeme. Zumal ein Angreifer ja zunächst garnicht weiß wohin er sich auf so einem System wenden soll und was so alles auf dem Server liegt.
Wie auch immer: Es stellt in meinen Augen, aus meiner Sicht, eine deutlich bessere Lösung dar. Wenn sich jemand mit dem ganzen Kram nicht auskennt und somit viel wahrscheinlicher "Besuch" zu erwarten hat als ich, der ist bestimmt mit der bei Mozilla gehosteten Lösung besser bedient (oder es ganz sein zu lassen - was immer am sichersten ist ;) ). Ich möchte hier keinen dazu ermuntern seine privaten Daten quasi in eine Art Selbstbedienungstheke zu legen ;)

Eine Installation ist ganz einfach und ist in der Datei "README" im tar.gz - Archiv zum "Minimal Weave Server" beschrieben. Dennoch gibt es ein paar Stolperfallen, welche ich hier einmal Punkt für Punkt durchgehen möchte.

Das ich hier das "Minimal Weave Server" - tar.gz - Archiv von der Originalseite zum Download anbiete, soll kein "mit fremden Federn schmücken" sein! Ich weise hier noch einmal ausdrücklich darauf hin, das die gesamte Arbeit, sowie also auch die Blumen und das Lob hierfür der Arbeit von "tobyelliott" zu verdanken ist!
Ich stelle die nur zusätzlich hier zur Verfügung, damit die Originalseite nicht irgendwann verschwindet oder der Link verwaist:

Eine Installation ist ganz einfach und ist in der Datei "README" im tar.gz - Archiv zum "Minimal Weave Server" beschrieben. Dennoch gibt es ein paar Stolperfallen, welche ich hier einmal Punkt für Punkt durchgehen möchte.

Das ich hier das "Minimal Weave Server" - tar.gz - Archiv von der Originalseite zum Download anbiete, soll kein "mit frem

den Federn schmücken" sein! Ich weise hier noch einmal ausdrücklich darauf hin, das die gesamte Arbeit, sowie also auch die Blumen und das Lob hierfür der Arbeit von "tobyelliott" zu verdanken ist!
Ich stelle die nur zusätzlich hier zur Verfügung, damit die Originalseite nicht irgendwann verschwindet oder der Link verwaist:

Download des "Minimal Weave Server" - tar.gz - Archives
(MD5 Checksumme: 5c1837c2690ddbb4a5b4c0860d5791e2)

In dem Archiv befinden sich 4 .php - Dateien. Diese müssen uns nicht weiter interessieren. Später wird lediglich das Script "create_user" interessant. Die Dateien müssen nur für den Apache-User lesbar gemacht werden und in einem dem Apache-Server zugänglichem Verzeichnis abgelegt werden; das Standardsetup geht davon aus, das die Daten aus Sicht des Webservers unter /weave/ erreichbar sind. Theoretisch sollte aber auch jeder andere Ort OK sein. Das Verzeichnis selbst muss (zumindest bis die SQLite - Datenbank angelegt ist) für den Apache schreibbar sein.

Meine Konfiguration, die ich zusätzlich in meine vhost-Datei eintragen musste, lautet exemplarisch wie folgt:

Alias /weave    "/home/marc/public_html/zoosau.de/weave_minimal/index.php"

<Directory /home/marc/public_html/zoosau.de/weave_minimal/>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all

</Directory>

Das hier scheinbar ein Verzeichnis ("/weave") auf eine Datei ("/home/marc/public_html/zoosau.de/weave_minimal/index.php") zeigt, ist kein Fehler, sondern absolut gewollt!
Das ganze ist natürlich im Kontext meiner SSL - Konfiguration definiert.

So, nun legt man zunächst die SQLite Datenbank an. Dieses geschieht zunächst auf ungewöhnliche Art und Weise: Man ruft in seinem Browser die folgende URL auf:

https://www.zoosau.de/weave/1.0/blah/info/collection

"www.zoosau.de" ersetzt Ihr dabei natürlich durch Eure Domain/IP.

Wie genau sich dieser Pfad hinter dem "/weave" zusammensetzt, habe ich nun nicht weiter recherchiert - interessiert mich ehrlich gesagt auch nicht ;) Das Setup ist so simpel und funktioniert tadellos - da muss ich nicht alles so genau wissen. Wer gerne mehr wissen will (oder weiß?) der kann gerne Google verwenden, oder Tipps und Hinweise als Kommentar an diesen Beitrag anfügen; würde mich freuen!

Es sollte nun eine Passwortabfrage kommen - Die Ausgabe der Webseite lautet schlicht: "Weave". Hier kann man sich mit irgendetwas (die README spricht von Username: "blah", Passwort: "garbage"; das sollte aber völlig egal sein) anmelden; das Resultat sollte eine weitere Abfrage sein. Diese kann man schließlich abbrechen; Ziel war es lediglich, das hierdurch die SQLite Datenbank "weave_db" im Weave - Verzeichnis angelegt wird.

Nun können wir uns einen ersten User anlegen: Auf der Shell im Weave-Verzeichnis führt man dazu folgendes aus:

php create_user

Nun wird man mit selbsterklärenden Dialogen konfrontiert:

#> php create_user

(c)reate, (d)elete or change (p)assword: c
Please enter username: marcrichter
Please enter password: Mein super-geheimes Passwort
marcrichter created
#>

Anschließend ist der neue Server umgehend einsatzbereit.

Einrichten des Firefox

Zunächst muss natürlich die Firefox-Erweiterung installiert werden. Wie das geht spare ich mir an dieser Stelle zu beschreiben, da sich dieses Wissen jeder eigeninitiativ aneignen kann.

Nach einem Neustart des Browsers kann man unter "Extras >> Sync >> Einstellungen" die Extension konfigurieren. Diese Einrichtung möchte ich mit einer Bilderstrecke begleiten:

[caption id="attachment_877" align="aligncenter" width="300" caption="Schritt 1 der Firefox Sync-Installation"]Schritt 1 der
Firefox
Sync-Installation{.size-medium .wp-image-877 width="300" height="237"}[/caption]

Man wird zunächst mit einem Begrüßungsdialog empfangen. Hier wählen wir die Option "I Have a Firefox-Sync Account".

[caption id="attachment_880" align="aligncenter" width="300" caption="Schritt 2 der Firefox Sync-Installation"]Schritt 2 der
Firefox
Sync-Installation{.size-medium .wp-image-880 width="300" height="237"}[/caption]

Im folgendem Dialog stellen wir die Standardvorgabe auf "Eigenen Server verwenden" um. Die möglichen Eingabeoptionen erweitern sich anschließend um das Feld "Server-URL".

[caption id="attachment_881" align="aligncenter" width="300" caption="Schritt 3 der Firefox Sync-Installation"]Schritt 3 der
Firefox
Sync-Installation{.size-medium .wp-image-881 width="300" height="237"}[/caption]

Hier geben wir nun folgendes ein:

  • Server-URL: https://www.zoosau.de/weave/
    (auch hier gilt wieder: Ersetzt "www.zoosau.de" durch Eure Domain/IP)
  • User Name: Den Usernamen, den Ihr beim Script "create_user" angegeben habt.
  • Passwort: Das Passwort, welches Ihr beim Script "create_user" angegeben habt.

[caption id="attachment_882" align="aligncenter" width="300" caption="Schritt 4 der Firefox Sync-Installation"]Schritt 4 der
Firefox
Sync-Installation{.size-medium .wp-image-882 width="300" height="237"}[/caption]

Hier gebt Ihr nun letztendlich den Sync-Key ein, welcher für die Verschlüsselung der Daten verwendet werden soll. Wie zuvor bereits erwähnt empfiehlt es sich hier dringend ein anderes Kennwort als das Login-Passwort zu verwenden, auch wenn dieses nicht zwingen vorgeschrieben wird.
Welche Daten übertragen werden sollen (wenn Ihr z.B. die Passworte von der Synchronisation ausschließen wollt), könnt Ihr dieses in diesem letzten Dialogfenster links unten über den Button "Sync-Options" einstellen.

Das war's schon! :) Wenn alles geklappt hat, sollte sich das kleine "Sync" - Symbol unten rechts in der Statuszeile des Firefox nun drehen und somit anzeigen, das Eure bisher in diesem Browser gespeicherten Daten in Euren Account hochgeladen werden.

So, ich hoffe Ihr fandet dieses Tutorial hilfreich und verständlich! Wie immer würde ich mich über Feedback freuen :)

Teilen per: TwitterEmail


Technische Neuerungen

So ein Servercrash hat auch seine guten Seiten: Man kann gleich alles, was einem als fehlkonfiguriert auffällt verbessern und erweitern :)

So hat der Server nun den eAccelerator installiert, durch den ich mir einen deutlich schnelleren Seitenaufbau erhoffe. Einige Applikationen sind definitiv schneller.

Das Script für die automatische Logfilegenerierung wurde ebenfalls etwas verbessert, so das nun (hoffentlich) bei einem Monatswechsel die Zugriffe zur Tages-/Monatsgrenze gezielter ausgewertet werden können.

Ausserdem haben wir nun einen TeamSpeak2 Server. Dieser läuft nicht immer, da ich keine Ahnung habe wie sicher das Teil ist. Das Startscript ist auf jeden Fall super schlecht und ich hab's erstmal editiert.

Ich möchte den TS Server zunächst gerne nur manuell bei Bedarf starten. Später können wir es gerne ändern.

Ansonsten ist nun soweit alles wieder verfügbar. Wem auffällt das was fehlt: Einfach bescheid sagen :)

Teilen per: TwitterEmail


Never change a running system ...

... erst recht nicht, indem man sich blind auf den Skill anderer verlässt. Und schonmal GARNICHT auf Produktivsystemen! :(

Alles Dinge, die ich eigentlich wissen sollte - dennoch hielt ich es vorgestern für eine total gute Idee dpkg über einen "apt-get dist-upgrade" - Befehl die Anweisung zu geben nun vollständig von etch auf lenny Upzugraden. Natürlich ohne das zuvor auf einem gespiegeltem Testsystem zu testen. Diese tolle Idee hatte nun fast 2 Tage off zur Folge, da es natürlich nicht reibungslos geklappt hat.

Warum auch immer: Anschliessend hat Apache meine Konfig nicht mehr gefressen, das System hatte keine route mehr gesetzt, usw. Ich konnte die route auch manuell setzen; dann kam ich zwar wieder von mir aus (Arcor Dial-In) per SSH auf das System, jedoch hatte ich keine route zu einem benachbartem Server (ebenfalls ein Strato-Host). So sehr ich auch herumprobiert habe, ich erreichte das System nicht.

Ich habe die 7 GB Daten des Systems also die letzten 2 Tage komplett über's Netz weggesichert und anschliessend das System neu installiert.

Ich denke weitestgehend läuft nun wieder alles.

Aber gut - es bringt mir die alte Weisheit "Never change a running System" (Ändere nie ein laufendes System) wieder ins Gedächtnis. Lieber privat als auf der Arbeit bei einem Kunden-Liveserver :)

An dieser Stelle nochmal: Sorry für alle Server-mitnutzer; war mein Fehler.

Teilen per: TwitterEmail


Squirrelmail auf Deutsch unter (*)ubuntu / Debian Linux

Wie der Autor des Originalbeitrages dieses Trackbacks (... des Vatters, dem seine Mutter sein Kind ... mann, schreib ich manchmal kompliziert =O.o=), hatte auch ich die Lösung hierfür irgendwann einmal im Netz gefunden, eingerichtet, gefreut, vergessen.

Damit mir sowas nicht mehr passiert sammle ich dieses Know-How ja in diesem Blog :)

Es funktioniert genau wie Beschrieben:

  1. "/var/lib/locales/supported.d/local" öffnen (unter Debian: /etc/locale.gen)
  2. Eine neue Zeile mit "de_DE ISO-8859-1" anfügen
  3. "dpkg-reconfigure locales" ausführen. dpkg-reconfigure sollte diese neue locale nun auch auflisten: de_DE.ISO-8859-1... done
  4. In der Squirrelmail Konfiguration (cd /etc/squirrelmail ; ./conf.pl) "de_DE" als Standardsprache festlegen.
  5. Apache neu starten

Nun sollte alles Deutsch sein.

Hier findet Ihr den Originalbeitrag.

Teilen per: TwitterEmail