Passwortmanager – Der Hintergrund
Nachdem das Pihole nun seit einem Jahr alleine auf dem Raspberry problemlos lief und in der Zeit 100,000e von Werbeanfragen und Trackingdienste gesperrt wurden, habe ich mich gefragt, ob ein Raspberry nicht weit mehr nutzbar wäre.
Mein erster Gedanke war ein Tarpit. Also eine „Teergrube“ in der Angreifer mit ssh-Portscans eine gewisse Zeit festgehalten werden in der sie (also ihre Rechner) nix anderes machen können. Folglich können Sie in der Zeit auch keine weiteren Angriffe auf andere Rechner starten. Wie das ganze technisch funktioniert und wie man installiert und einrichtet findet ihr bei Semper-Video auf Youtube (Internet-Teergrube: Ein Muss für Alle). Dort ist alles erklärt und es wird Euch step-by-step gezeigt, wie man es einrichtet.
Das lief auch alles prima. Aber was mir immer schon ein Dorn im Auge war …
mein Passwortmanager
Vorüberlegungen Passwortmanager
Voraussetzungen
Lösung
Mein Passwortmanager!
Der Server meines Passwortmanagers stand bis vor kurzem in den USA, was datenschutzrechtlich schon problematisch ist und somit sind meine wichtigsten Daten (Passwörter, Kreditkarteninformationen, wichtige Notizen…) auch ziemlich angreifbar.
Lastpass Angriff
Passwordstate Angriff
…
Ein Freund brachte mich auf die Idee es mit Bitwarden zu probieren. Im Prinzip ist das ja nix anderes, als Lastpass und Co. aber – man kann eine Business-Vollversion von Bitwarden auf einem Raspberry zu Hause hosten und die Daten dann auf einer NAS auslagern (oder innerhalb des Raspberrys). Das ganze heißt heute nicht mehr Bitwarden für die Selbsthoster, sondern zunächst bitwarden_rs und heute Vaultwarden (auf Github).
Da ich mich nun mit Konsolen-Befehlen und Linux so ziemlich gar nicht auskenne, war ich extrem skeptisch ob und wie das ganze nun tatsächlich funktioniert, vor allem:
Wie souverän läuft das ganze dann?
Was passiert mit meinen Daten, wenn die Software Probleme macht?
Wie ist die Usability?
Muss ich meine Passwörter nun alle zunächst parallel führen?
Wie gut ist die Importfunktion?
Wie sicher ist es, es selbst zu hosten?
Wie sieht es mit der App auf Mobilgeräten aus?
Es geht hier ja schließlich darum, dass das ganze digitale Leben von diesem Tresor abhängig ist. Die Antworten stehen unten (TL;DR).
Eine weiterer interessanter Aspekt ist: Wenn man Lastpass mit mehr als einem User (Frau, Kinder, Eltern) benutzen möchte, braucht man die wesentlich teurere „Family“ Variante. Damit kann man dann mehrere Nutzer anlegen, diese können dann Lastpass auf dem Smartphone und am Rechner nutzen. In der kostenfreien Lizenz ist nur ein Nutzer und ein Gerät möglich. Also entweder Rechner oder Smartphone.
Bei Vaultwarden kann man nun beinahe endlos viele Nutzer anlegen und diese können die Software dann auch an allen Endgeräten nutzen. Nicht selten sind ja durchaus 2-3 Geräte pro Nutzer heute nicht ungewöhnlich.
Vaultwarden ist eine Business Version des Bitwarden, die als Open Source Software frei genutzt werden kann, sofern man sie selbst hostet. Open Source macht das ganze natürlich noch ein weniger sicherer, da der Quellcode offenliegt und die Community Fehler darin schnell als Kollektiv finden und beheben kann.
Wie das ganze nach der Installation aussieht, könnt ihr hier sehen: Vaultwarden in der Anwendung
Was benötigt wird
Also erstmal eine Bestandsanalyse, was alles benötigt wird:
- Router (in meinem Fall eine Fritzbox 7490)
- RaspberryPi – ab Raspberry Pi 3 Modell B+
- Synology Diskstation (NAS) | bei Nutzung der Beschreibung unten
- Netztwerkkabel
- SD Karte (32GB in meinem Fall, Vorsicht: ab 32 GB erst googleln!)
- Grundkenntnisse seines eigenen Netzwerks
- Zeit
Alles soweit vorhanden. Allerdings habe ich mich als DAU gefragt: wie bekommt man nun mehrere Programme auf einen Raspberry und das ohne Benutzeroberfläche? Daran wäre es gescheitert, wenn besagter Freund nicht geholfen hätte.
Um eines gleich vorwegzunehmen: Leider kann man keine Dokumente mehr in den Tresor laden (oder ich habe es noch nicht herausgefunden).
Die Lösung
Die Lösung dafür heißt (in meinem Fall): Docker Container. Mit den Laien-Worten erklärt:
Ihr installiert „Docker“ und dort könnt ihr dann innerhalb Dockers sogenannte „Container“ installieren. Container sind quasi Images, Abbilder der Software, die Ihr herunterladet. Diese Images laufen praktisch sofort. Stellt Euch vor Windows, Linux und MacOS wurden einfach parallel und gleichzeitig laufen…
Wichtig dabei ist aber: Container sind grundsätzlich flüchtig! Container gelöscht? Alle Daten weg.
Es sei denn … Ihr legt die Pfade zu den Daten irgendwo anders hin (auf den Raspberry in ein separates Verzeichnis oder Ihr bindet ein Netzwerk-Laufwerk ein.
Noch wichtiger: Wenn Ihr alles sicher zum Laufen bekommen habt: Macht von der SD-Karte ein Sicherungskopie in Form eines Images und legt es sicher weg. Oder Ihr klont einfach die SD Karte auf eine zweite SD Karte und verwahr die sicher. Sollt irgendwas was bei vielleicht später vorgenommenen Änderungen nicht mehr funktionieren, könnt ihr einfach die jetzige SD-Karte aus dem Raspberry nehmen, die neue Einlegen und alles funktioniert in drei Minuten wieder wie gewohnt.
Ich sagte schon, dass ich mit der Konsolenoberfläche, den ganzen Befehlen (von denen ich nur rudimentär Kenntnis und Verständnis habe), nichts anfangen kann. Daher habe ich (besser jener Freund) ein Lösung gefunden, mit der ich gut leben kann. Konsolenarbeit findet da nämlich nur während der Ersteinrichtung statt und danach nicht mehr.
Das bedeutet für mich als NOOB in diesen Dingen, das sich nach dieser Erstinstallation eine grafische Oberfläche habe, mit der ich dann besser arbeiten kann.
Die Lösung dafür war: Portainer.
Portainer läd die Images herunter und baut sie nach Euren (auf der grafischen eingestellten und definierten Vorgaben) zusammen und bringt sie zum laufen.
Um den ganzen Aufbau hier grafisch darzustellen:
Wie Ihr das ganze aufsetzt könnt Ihr am besten hier nachlesen. Schritt-für-Schritt bekommt Ihr dort jeden Befehl für die Konsole der Reihe nach angezeigt.
Anleitung zur Installation des Betriebssystems, Docker, Portainer und Vaultwarden.
Den Punkt „WireGuard“ könnt Ihr auslassen; WireGuard ist ein VPN Server, den Ihr hierfür nicht benötigt.
Glaubt mir, ich habe davon keine Ahnung und habe es mehrmals genau so aufgesetzt und seit 2 Wochen läuft es völlig ohne ein Problem.
TL;DR
Wie souverän läuft das ganze dann?
Läuft genau wie bei den Fremdhostern, sofern Ihr zu Hause und somit der Raspberry permanent eingeschaltet ist und mit dem WWW verbunden ist. Das ganze ist natürlich verschlüsselt und die Daten werden – verschlüsselt – auf Smartphone, andere Browser etc. gespeichert und synchronisiert.
Neben einer normalen Datensicherung, die man sowieso immer und extern machen sollte, ist es durchaus sinnvoll bei allen Passwortmanagern auch regelmäßig die Passwörter zu exportieren und an einem sicheren Ort zu lagern.
Was passiert mit meinen Daten, wenn die Software Probleme macht?
Nichts! Die Daten liegen nicht auf dem Raspberry, sondern sind auf das NAS gemountet; werden also dort gespeichert. Die SD Karte vom Raspberry raus, einen klon wieder rein und schon ist alles beim alten.
Wie ist die Usability?
Von Lastpass aus gibt es kaum einen Unterschied in der Bedienung. Das einzige, was ich ein paar Stunden vermisst habe, war das Icon in Anmeldefeld, welches mich auf das Passwort für die Seite aufmerksam machte und per Klick von dort auch eingesetzt werden konnte.
Muss ich meine Passwörter nun alle zunächst parallel führen?
Das würde ich in jedem Empfehlen, bis Ihr Euch sicher seid, dass Vaultwarden für Euch passt. Der Versuch lohnt sich aber in jedem Fall.
Wie gut ist die Importfunktion?
Von Lastpass zu Vaultwarden ging das ganz problemlos: Einfach bei Lastpass in „erweiterte Optionen“ gehen und „Exportieren“ wählen… Lastpass läd dann eine „lastpass_export.csv“ (ich glaube die war kommagetrennt) runter. Diese einfach in Vaultwarden importieren – fertig. Es gab sehr wenig komplikationen (10-15 vielleicht, bei 600 Einträgen finde ich das hervorragend).
Bei Keepass zu Lastpass sollte man nicht alle komplett importieren, sondern in kleineren Gruppen.
Wie sicher ist es, es selbst zu hosten?
Naja, wenn man Passwörter bei sich selbst hostet, bedeutet das natürlich, dass mein „123456789“ oder „Passwort“-Passwort vielleicht nicht unbedingt so gut ist, wie die Idee mit der dies geboren wurde. Es sollte ein schweres sein… das gilt nicht nur für den Tresor. Ihr sollte natürlich Euren Router entsprechend gesichert haben, und die Verbindungen, die Endgeräte zu dem Vaultwarden Server bei Euch aufbaut sollten https verschlüsselt sein. Ports an Eurem Rooter sollten immer nur dann offen sein, wenn ihr sie braucht… Aber das sollte sowieso selbstverständlich sein. Über eine andere Domain zu gehen, um keine Verbindung zu Eurer eigenen zu haben ist durchaus auch hilfreich.
Wenn ich aber selbst hoste, ist das Interesse von Hackern sicherlich kaum vorhanden, wenn sie doch große Firmen erfolgsversprechender, mit mehr Daten abgreifen können.
Aber Ihr weißt ja: 100% geht niemals.
Wie sieht es mit der App auf Mobilgeräten aus?
Für alle Browser gibt es Erweiterungen, Apps für Smartphone (die sich auch bei iOS ins System integrieren lassen) – ansonsten könnt ihr zum pflegen über die Weboberfläche produktiver arbeiten.
Ich bin sehr zufrieden.