Kategorie-Archiv: Allgemein

Backups in die Amazon Cloud schieben

Kürzlich hat Amazon sein Cloud Drive Angebot in Deutschland ausgeweitet und bietet nun (für private Anwender) unbegrenzten Speicherplatz für nur 70€ im Jahr. Grund genug für mich, mein derzeitiges Konzept für Offsite Backups zu überdenken (was aus einem rsync Job auf ein Strato Hidrive bestand).

Glücklicherweise ist das Cloud Drive von Amazon bereits einige Jahre am Markt aktiv, wodurch sich bereits eine Batterie an Dritttools geformt hat um diesen Speicher recht komfortabel von der Linux Konsole aus anzubinden. Mir dabei besonders aufgefallen sind zum einen acd_cli zur Einbindung des Speichers als Laufwerk mittels Fuse und zum anderen rclone welches sich selbst mit rsync vergleicht. In diesem Beitrag soll es um letzeres gehen.

Da ich nichts wirklich vergleichbares gefunden habe, habe ich einen kleinen Wrapper um rclone geschrieben. Dieser Wrapper vereinfacht die Erstellung eines mittels EncFS verschlüsselten Backups und kann einfach nach den bereits verwendeten Skripten ausgeführt werden. Doch zuerst: Warum EncFS?

EncFS gilt zwar als potentiell unsicher, da bei Speicherung der Konfigurations XML zusammen mit den verschlüsselten Daten ein Angreifer die Verschlüsselung abschwächen könnte und bei erlangen mehrere Versionen einer verschlüsselten Daten potentiell den zur Verschlüsselung verwendeten Key errechnen könnte. Dennoch hat EncFS ein Design welches sehr gut mit dem Einsatz auf entferntem Speicher harmonieren lässt (jede Datei wird einzeln verschlüsselt und kann auch einzeln wieder entschlüsselt werden). Darüber hinaus hat es ein Killerfeature, welches auch mein oben genanntes Skript nutzt. Der –reverse Schalter erlaubt den einfachen Zugriff auf eine verschlüsselte Darstellung eines andernfalls unverschlüsselten Ordners. Oder mit anderen Worten: Da eigentlichen Daten können im Klartext auf der Festplatte verbleiben, für die Zeit des Uploads gibt es aber eine Möglichkeit die Daten ohne großen Overhead und On-the-Fly zu verschlüsseln.

Falls aber jemand eine Alternative kennt, die vergleichbare Features hat bin ich dafür aber gerne offen.

Die einzige Voraussetzung für das Skript sind ein bereits installiertes EncFS und ein installiertes und eingerichtetes rclone. Anschließend muss nur noch die Datei config-example nach config umbenannt werden und an die eigene Umgebung angepasst werden. Um die Erstellung der EncFS Konfiguration inkl. generiertem Passwort kümmert sich das Skript von allein.

Weitere Hinweise und konkrete Schritte werde ich in den nächsten Tagen zur Readme auf Github hinzufügen.

Weihnachtsprojekt: AVM Smart Home mittels Kommandozeile steuern

Schon seit einiger Zeit nenne ich einen  AVM FRITZ!Powerline 546E mein eigen. Ich hatte ihn mir damals angeschafft und unser Wlan fürs Wohnzimmer etwas zu verstärken (auch wenn der Adapter leider nur 2,4GHz kann) und da mich damals schon die Möglichkeit der Steuerung der Steckdose interessiert hat.  Weihnachtsprojekt: AVM Smart Home mittels Kommandozeile steuern weiterlesen

Zarafa WebApp Benutzer mittels LDAP begrenzen (ohne Code Modifikation)

Als ich im Februar diesen Jahres den Artikel Z-Push Benutzer mittels LDAP begrenzen (ohne Code Modifikation) veröffentlich habe, wurde ich gefragt ob ein ähnliches vorgehen auch für die Zarafa WebApp funktioniert. Nachdem sich die Mechanismus nicht eins zu eins übernehmen ließ (mittels der vorgeschalteten Authentifizierung wird der Benutzer nicht direkt in der WebApp angemeldet, sondern muss sich noch ein weiteres mal Einloggen), habe ich dies aber leider vorerst verneinen müssen. Zarafa WebApp Benutzer mittels LDAP begrenzen (ohne Code Modifikation) weiterlesen

Z-Push Benutzer mittels LDAP begrenzen (ohne Code Modifikation)

UPDATE: seit Z-Push 2.2 ist dieser Workaround nicht mehr notwendig, da Z-Push standardmäßig das Flag „mobile“ prüfen kann (standardmäßig aktiv, kann pro Nutzer deaktiviert werden).

Mit Zarafa 7.1 wurde das LDAP Attribut  „zarafaenabledfeatures“ eingeführt, welches mit wenigen Handgriffen ebenfalls zur Steuerung von Z-Push Accounts genutzt werden kann. Der Vorteil an dem im folgenden aufgezeigten Weg liegt darin, dass hierfür keine Modifikationen am Z-Push Code vorgenommen werden müssen und somit zukünftige Updates erleichtert werden.

„zarafaenabledfeatures“ ist ein Freitextfeld welches einen beliebigen String (wie eben „imap“ oder „pop3“) aufnehmen kann. Dies erlaubt ohne großen Aufwand weitere Filtermerkmale wie z.B. „z-push“ zu definieren und bei entsprechenden Nutzern zu hinterlegen.

Sobald dieser Wert für alle gewünschten Nutzer hinterlegt ist, können wir mit der Modifikation der Apache Konfiguration fortfahren.

Bei direktem Aufruf von http://server/Microsoft-Server-ActiveSync werden wir von einem Apache Authentifizierungsdialog begrüßt, welcher über den Z-Push Code getriggert wird. Diesen Umstand können wir zu unserem Vorteil nutzen, indem wir – bereits bevor der Dialog durch Z-Push getriggert wird – im Apache eine Authentifizierung durchführen lassen. Dies funktioniert da eine einmal durchgeführte Anmeldung in der Session gespeichert wird und an die dahinter liegende Applikation „durchgereicht“ wird (funktioniert z.B. auch mit ownCloud).

Um den Apache Webserver einen LDAP Baum zur Authentifizierung nutzen zu lassen sind dann nur noch die folgenden zwei Änderungen nötig:

  1. mod_authnz_ldap aktivieren, dies geht z.B. mittels „a2enmod authnz_ldap“
  2. den folgenden Code Block innerhalb der Directory Sektion im Z-Push vHost einfügen (und natürlich an die eigene Umgebung anpassen):

Der Entscheidende Punkt dieser Ergänzung liegt in AuthLDAPURL. Diese  definiert:

  • wo das LDAP läuft
  • wie die Basis DN lautet
  • wie das Login Attribut heißt
  • und welcher Filter angewendet werden soll.

Das Apache Handbuch definiert die Syntax wie folgt: ldap://host:port/basedn?attribute?scope?filter. Die oben genannte Beispielsyntax nutzt also das Attribut uid als Benutzername und sollte dieser Benutzer die Objectklasse zarafa-user und das Attribut zarafaEnabledFeatures mit dem Wert z-push ist die Anmeldung erfolgreich. In allen anderen Fällen wird die Anmeldung abgeleht.