Sicherung der einzelnen Tresore in Vaultwarden automatisieren

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Andi70

Benutzer
Registriert
21. Dez. 2023
Beiträge
142
Reaktionspunkte
28
Punkte
28
Hallo Zusammen,

ich habe eine Frage zur Sicherung der Tresore in meinem self-hosted Vaultwarden.

NAS: synology 423p
Installiert: mit portainer
Version: aktuelle

Ich sichere zurzeit den ganzen Container von Vaultwaren auf meiner Synology.

Ich würde gerne zusätzlich die Tresore von der User zusätzlich sichern als .json Encrypted .
So das ich diese bei einem fehlgeschlagen Update oder ausversehentlichem löschen/überschreiben von Einträgen wieder importieren kann.

Ich habe zurzeit keine Lösung gefunden, das z.B. in Vaultwarden oder mit einer Aufgabe auf der Synology durchzuführen.

Gibt es überhaupt eine Möglichkeit dazu?

VG & Danke
Andi
 
Manuell ist das auf jeden Fall möglich, sogar Passwort geschützt. Automatisch zb. über Aufgabenplaner weiß ich nicht.
 
Es gibt eine Bitwarden CLI. Damit ist das möglich. Habe ich aber nicht eingerichtet. Folgende Infos hab ich dazu noch rumfliegen:
https://community.bitwarden.com/t/how-to-a-users-guide-to-backing-up-your-bitwarden-vault/44083
https://bitwarden.com/help/cli/#tab-native-executable-bI3gMs3A3z4pl0fwvRie9
https://www.synology-forum.de/threads/euer-passwort-manager.127739/page-6#post-1134193
https://github.com/ckabalan/bitwarden-attachment-exporter/blob/master/bw-export.sh

Bash:
#!/usr/bin/env bash
# fail the script as soon as an invalid password has been entered
set -e
#Set to On-Premise Server
bw config server https://NAME
#Login
bw login [mail@example.com] [PW]
EXPORT_NAME=bw-export-$(date "+%Y%m%d-%H%M%S")
# set BW_SESSION variable to a valid token
export BW_SESSION=$(bw unlock --raw)
# sync bitwarden to make sure we are exporting up to date data
bw sync --session $BW_SESSION
# export all entries
#ORIGINAL: bw export --output ./export/bitwarden.json --format json # bw export does not seem to accept the --session parameter, so you have to enter your password here again
#ENCRYPTED MIT PW ABRUF: bw export --output ./export.json --format encrypted_json --session $BW_SESSION --password $(curl <keyfile-url>)
##Für Anhänge
# per entry, check if they contain attachments and then export them
#bash <(bw list items --session $BW_SESSION | jq -r '.[] | select(.attachments != null) | . as $parent | .attachments[] | "bw get attachment --session $BW_SESSION \(.id) --itemid \($parent.id) --output \"./export/attachments/\($parent.id)/\(.fileName)\""')
# create an archive with all exported data
#tar czvf $EXPORT_NAME.tar.gz export
#rm -rf export/
# encrypt the archive
#gpg --symmetric --cipher-algo AES256 $EXPORT_NAME.tar.gz
# delete unencrypted data
#rm $EXPORT_NAME.tar.gz
 
Danke euch für die Antworten.
Bin jetzt nicht so tief im Terminal Bereich.
Wenn ich ich es richtig verstanden habe, müsste man das auch immer manuell ausführen oder?

VG
Andi
 
Richtig...wenn du es nicht machst wie von @plang.pl beschrieben dann immer manuell. Kann man sich aber auch dran gewöhnen dieses regelmäßig zu machen 😉
 
  • Like
Reaktionen: Andi70
Es gibt doch eine Exportfunktion auf der GUI von Bitwarden, zwar manuell reicht das nicht aus?
Ich habe das durchgetestet, auch der Import, auch auf einem anderen Rechner /NAS funktioniert.
 
  • Like
Reaktionen: Nackel
Das bezieht sich aber nur auf eigenen Tresor, nicht auf andere bzw. jene in Organisation angelegte Users.
 
  • Like
Reaktionen: Andi70
  • Like
Reaktionen: Andi70
Danke dir, so wollte ich das gerne realisieren
Geht das das dann auch mit jedem Tresor wenn man davon PW und User kennt?

Ich habe die Datei mal erstellt- ich hoffe das ich das richtig verstanden habe.
Würde gerne als encrypted_json exportieren.

Code:
#!/usr/bin/env bash
# fail the script as soon as an invalid password has been entered
set -e
#Set to On-Premise Server
bw config server https://NAME
#Login
bw login [mail@example.com] [PW]
EXPORT_NAME=bw-export-$(date "+%Y%m%d-%H%M%S-Tresor-A")
# set BW_SESSION variable to a valid token
export BW_SESSION=$(bw unlock --raw)
# sync bitwarden to make sure we are exporting up to date data
bw sync --session $BW_SESSION
# export all entries
#ORIGINAL: bw export --output ./export/bitwarden.json --format json # bw export does not seem to accept the --session parameter, so you have to enter your password here again
bw export --output ./export.json --format encrypted_json --session $BW_SESSION --password $(curl <keyfile-url>)

Zeile 5 & 7 noch mit meinen Daten aktualisieren

Nur noch ein paar Fragen
Wo gebe ich an, an welchem Ort der Export abgelegt werden soll?
Wofür steht die Variable "$(curl <keyfile-url>)"

Danke für eure Unterstützung

VG
Andi
 
Zuletzt bearbeitet:
Ja, sollte gehen. Hab ich aber wie gesagt nicht im Einsatz. Ich habe mein Vaultwarden mit Anbindung an eine MariaDB am Laufen. Ich sichere nur einen Dump der Datenbank und den gemappten Docker Ordner. Wenn man das ohne zusätzliche Datenbank am Laufen hat, reicht auch die Sicherung des gemappten Ordners.
 
  • Like
Reaktionen: Kachelkaiser
Geht das das dann auch mit jedem Tresor wenn man davon PW und User kennt?
Geht schon und funktioniert auch tadellos, nur 1:1 wiederherstellen kannst du die Daten aber (noch?) nicht, da für jeden Account eigenen #hash erzeugt wurde.
Zumindest ist es mir nicht gelungen. Nur neue Accounts anlegen und dann die exportierten Daten wieder importieren.
 
  • Like
Reaktionen: Andi70

Additional post fields

 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat