Ich wurde schon mal des Öfteren gefragt wie ich denn meine Kontakte, Kalender, Passwörter, EMails usw. verwalte.
Persönlich möchte ich diese Datenschätze nicht oder nur möglichst wenig der “Cloud” überantworten und mache daher vieles selbst. Das Setup bzw. das Konzept hat eine jahrelange Entwicklung und eine Menge Veränderungen hinter sich. Zu einigen Teilbereichen sind auch schon vereinzelte Blogartikel entstanden.

Ein Gespräch letztens auf Mastodon hat mich dazu veranlasst, dies mal aufzuschreiben und hier zu veröffentlichen. Wer mag, kann sich aus diesem Text Ideen holen und für seine Situation anpassen.

TL&DR;

  • Nextcloud selfhostet auf eigener Hardware im Homelab
  • Passwort-Safes KeePass, KeePassXC, Bitwarden, Vaultwarden
  • Backup mit restic und resticprofile verschlüsselt mit Deduplizierung auf S3-Storage und externen Festplatten

Jetzt die Langfassung: Wie sieht mein Setup aus?

Die Details

Angefangen habe ich mit Owncloud auf einem BananaPi. Vor einigen Jahren bin dann zu Nextcloud gewechselt. Aktuell läuft die Installation auf meinem Heim-NAS von QNAP in einer virtuellen Maschine wo ein Debian drauf läuft.
Aus-Gründen(tm) waren und sind die Installationen nie von außen erreichbar.

Nextcloud

In der Nextcloud nutze ich überwiegend folgende Funkionen:

  • Verwaltung von
    • Kalendern
    • Kontakt-Daten (VCards)
  • Dateiaustausch

Die gesamte Familie bindet alles in ihre jeweiligen Mail- und Kalender-Clients auf den unterschiedlichsten Rechnern, mobilen Geräten mit verschiedensten Betriebssystemen an. Die Synchronisation funktioniert somit natürlich nur im heimischen WLAN oder über VPN.

Backups

Da mir meine Daten (Kalender und Kontakte) sehr wichtig sind, sichere ich die Daten regelmäßig und fertige ein Backup an.
Aktuell läuft auf dem Server, wo die Nextcloud installiert ist, ein nächtlicher Cronjob:

  • der die Nextcloud in den Wartungsmodus versetzt,
    • um einen konsistenten Zustand zu erreichen,
  • einen Dump der mysql-Tabellen auf Festplatte zieht,
  • eine dateibasierte Sicherung anfertigt
  • und schlussendlich den Wartungsmodus wieder beendet.

Der Cronjob läuft mitten in der Nacht, wenn sowieso alle schlafen. Selbst wenn das mal nicht der Fall sein sollte, verhindert der Wartungsmodus schlimmeres.
Dieses Verfahren existiert schon so seit Jahren und hat sich aus meiner Sicht bewährt. Selbst der Umzug von Owncloud nach Nextcloud sowie vom BananaPi in die virtuelle Maschine hat damit wunderbar funktioniert.

Die dateibasierte Sicherung und die Dumps ins Dateisystem sind nur ein erster Schritt. Wenn ich einzelne Kontakte oder ähnliches wiederherstellen möchte, ist das rauspfriemeln einzelner Daten nicht wirklich schön, beispielsweise eine einzelne aus Versehen gelöschte Kontakt-Karte.
Allerdings gibt es die Möglichkeit alle Kalendereinträge in eine ics Datei herunterzuladen und alle Kontakte in eine .vcf-Datei herunterzuladen. Daraus ist die Wiederherstellung aus meiner Sicht wesentlich einfacher. Wenn alle Dateien gelöscht sind, reicht ggf. sogar ein Doppelklick im Dateiexplorer auf die jeweilige Datei und es wird im Standard-Mail-Programm geöffnet. Von diesem ist dann ein Import wieder möglich. Dadurch, dass das Mail-Programm wieder in die Nextcloud synchronisiert, ist der Kontakt wieder “drin”. Natürlich war ich faul und habe dies automatisiert; wie ich dies realisiert habe, lässt sich hier nachlesen.

Die ganzen Datenkopien (wie Dumps und Exporte) sichere ich nun mit einem Backup-Programm. Da mir die Daten allgemein wichtig sind und ich auch vor Diebstahl und Feuer gewappnet sein möchte, setze ich hier auf das 3-2-1 Prinzip.

3-2-1-Prinzip

Die bedeutet: Ich habe eine externe Festplatte auf die ich die Backups regelmäßig kopiere, wobei eine Kopie bei meinen Eltern liegt. Das tägliche Backup schiebe ich in die Cloud. Details siehe in diesem Blog-Artikel im Abschnitt Offsite-Backup.

Cloudspeicher

Cloud” bedeutet hierbei irgend ein Speicherort, der Dateien aufnehmen kann. Das kann ein OneDrive, eine Dropbox, PDrive oder was auch immer sein. Bei mir ist dies aktuell ein angemieteter S3-kompatibler-Speicher.
Die Backups verschlüssele ich natürlich, daher ist es egal, wo diese im Endeffekt liegen:

  • ob es nun eine externe Festplatte ist, die geklaut wird
  • oder irgendein Cloud-Speicher, wo Daten abfließen können.

Das gewählte Verschlüsselungspasswort sollte daher möglichst lang und komplex sein.

Backup-Software

Als Software verwendet ich seit einiger restic in Zusammenarbeit mit resticprofile, da ich mit diesen Tools und die Backup-Jobs gut weg-automatisieren kann. Wenn ich daran denken muss, Backups zu machen, vergesse ich das nur.
Wie die Software funktioniert und bedient wird, haben Andreas und ich mal auf den Chemmnitzer LinuxTagen erzählt.

Aus meiner Sicht ist der Vorteil, dass restic

  • die Daten verschlüsselt,
  • den Platzbedarf mittels Deduplizierung verringert
  • und ausmisten nach Regeln beherrscht, da kein Speicher unendlich ist.

resticprofile unterstützt hierbei sogar bei der Erzeugung eines möglichst langen und zufälligem Passwortes. Dadurch, dass ich Dinge automatisch in die Cloud sichere, aber lokal noch eine Festplatte habe, die ich “natürlich” (leider) nur unregelmäßig befülle, hat mir dieses Konzept schon mehrfach wortwörtlich den Hintern gerettet. Aktuell kostet mich der S3-Storage irgendwas unter 4 Euro pro Monat. Bei Interesse nach mehr Details hier klicken. Die dortige Angabe Backblaze stimmt inzwischen nicht mehr. Wegen #unplugTrump bin ich zu Hetzner StorageShare gewechselt.

Passwort-Safes

Ebenfalls seit Jahren nutze ich einen Passwort-Speicher. Bisher reichte mir ein KeePass. Später wechselte ich zu KeePassXC. Die Tresor-Datei lege ich bei mir in meinen Nextcloud-Ordner. Dort synchronisiert sich diese Datei wunderbar zwischen meinen Geräten und ist überall verfügbar, wo ich sie benötige.
Das KeePass-Tersor-Format ist recht verbreitet und es gibt für die unterschiedlichsten Betriebssysteme Software dafür. Die Client-Software für Nextcloud ist ebenso für viele Betriebssysteme verfügbar.

Dank Auto-Fill-Funktion habe ich schon länger kein Passwort mehr getippt und durch die Passwort-Würfeln-Funktion kenne ich auch gar kein Passwort mehr auswendig. Jedem Dienst ein Passwort zu verpassen, ist dadurch für mich recht einfach geworden. In letzter Zeit musste ich jedoch öfters Passwörter teilen und da hat mir KeePassXC nicht gereicht. KeeShare habe ich erst vor kurzem in einen Artikel auf gnulinux.ch entdeckt.
Aus diesem Grund habe ich mir einen Vaultwarden installiert. Vaultwarden ist auch perfekt, wenn ich Dateien oder Textschnipsel über unsichere Kanäle verschicken möchte. Die Funktion nennt sich vaultwarden-send. Über diese Funktion kann ich Dateien oder kurze Texte in den Vault hochladen und danach einen Link zum Herunterladen generieren. Zusätzlich kann ich diesen Link noch mit Passwort-Schutz und sonstigen Parameter versehen. Diesen Link kann ich ruhigen Gewissens unverschlüsselt per E-Mail verschicken. Die Daten liegen verschlüsselt auf der Server-Festplatte und löschen sich standardmäßig nach sieben Tagen selbst.

Tipps zu Vaultwarden

Ich empfehle zwei Standard-Einstellungen zu ändern:

  • Standard-URI Übereinstimmungserkennung auf Beginnt mit
    • das funktioniert bei mir am zuverlässigsten.
    • gerade auch in Kombination, dass im URL-Feld des jeweiligen Eintrags dann nur die Domain hinterlegt wird.
    • Das bedeutet ohne Pfade und sonstige Parameter!
    • Auffindbar derzeit unter: Einstelllungen->Automatisches Ausfüllen
  • Zwischenablage leeren würde ich auf einen kurzen Zeitraum setzen, z.B. auf 30 Sekunden.
    • soweit ich mich erinnere ist der Standard niemals.
    • Auffindbar derzeit unter: Einstelllungen->Sonstiges

Leider muss die Einstellung in jedem Client einzeln gesetzt werden (Browser-Plugin, Smartphone-App usw.)

Als ich vaultwarden aufgesetzt habe, hatte ich zuerst zwei Test-Accounts angelegt. Danach habe ich eine “Organistation” und mehrere “Sammlungen” angelegt. Mit diesen zwei Accounts konnte ich dann ein besseres Verständnis der beiden Begriffe und des Berechtigungssystems erlangen.

EMail

Das ist für mich persönlich so ein großes Unlust-Thema und PITA.
Seit ich online bin, lagere ich diesen Service als Dienstleistung aus. Ich klicke mir irgendwo eine Domain und einen E-Mail-Speicherplatz und lasse das Menschen machen, die mehr Ahnung von dem Thema haben als ich. Aktuell bin ich seit Jahren sehr glücklich bei uberspace.
Ich habe bei denen mehrere Accounts (asteroid genannt). Dort lassen sich ohne Zusatzkosten Domains “aufschalten”. In deren verfügbarer Dokumentation (manual) sind die benötigten Befehle recht gut beschrieben, sofern man sich an die Kommandozeile herantraut. In deren Dokumentationsbereich namens Uberlab sind weitere Möglichkeiten beschrieben, zusätzliche Software zu installieren; inkl. Update-Schritten. Vielfach ist es nur ein copy&paste von vorgefertigten Befehlen.

Idee und Ausblick

Soweit ein Einblick in mein Setup und so wie es für mich funktioniert und bewährt hat. Ich habe versucht es kurz zu halten und bei ausufernden Themen mit Verweisen zu arbeiten.

Wer mag, kann die für sich passenden Informationen herausziehen und die eigenen Verhältnisse und Anforderungen anpassen oder ein Konzept zu entwickeln.

Auf der Wunschliste steht noch die Generierung der TLS-Zertifikate per Let’s-Encypt, da muss ich mich nochmal einlesen, wie ich dies umsetze, wenn die Systeme nicht von außen erreichbar sind.