- Mitglied seit
- 01. Mai 2010
- Beiträge
- 2.709
- Punkte für Reaktionen
- 2
- Punkte
- 84
Keine Fragen, ich wollte mal meine Lösung vorstellen, vielleicht kann es ja der eine oder andere gebrauchen.
Ziel
Das Ziel ist ein Offsite-Backup mit Lagerung an einem nur bedingt vertrauenswürdigem Ort, es könnte also jemand ggf. Zugriff auf die Platten bekommen. Daher muss es verschlüsselt werden.
Voraussetzungen
Umsetzung
Fertiges Script
Hier das Script, das ich verwende, zusätzlich mit:
Das Script ist in zwei Teile aufgeteilt. Dieses hier wird wird nachts vom Cron gestartet, und übernimmt das mounten.
Das zweite Scripf findet sich auf der Platte selbst ("/volumeSATA/satashare/backup/run.backup"). Dadurch kann ich verschiedene Platten mit unterschiedlichen Backupaufgaben verwenden. Zusätzlich dient die Datei "/volumeSATA/satashare/do.backup" als Sicherheitsmechanismus. Wenn diese nicht existert, passiert auch nicht, für den Fall, dass man eine andere Platte angeschlossen ist.
Ablauf ist dann am Abend die Platte einstecken, über Nacht läuft das Backup, am Morgen auf dem Handy die Mail lesen und bei Erfolg die Platte rausnehmen. Das Ganze geht also (soweit es möglich ist) automatisch.
Anmerkungen
Die Mailbenachrichtigung erfolgt über die eingebaute Funktion (synomail), also muss sie auch in der Systemsteuerung konfiguriert sein. Die Texte sind in "/usr/syno/synoman/webman/texts/ger/mails", hier habe ich einfach die beiden weiteren hinzugefügt.
Das "synosata -umount sdg1" wirft die externe Platte aus. Ob das so wirklich so gedacht ist, kann ich nicht sagen, bislang hatte ich damit unter DSM 3.0 keine Probleme. Mit DSM 2.3 hat sich die Kiste aber vollkommen aufgehängt, so dass nur ein reset übrig blieb, von daher also Benutzung auf eigene Gefahr.
Kommentare oder Verbesserungsvorschläge sind gerne willkommen.
===EDIT===
Das Thema steht nun auch in unserem Wiki: http://www.synology-wiki.de/index.php/Verschlüsseltes_Backup
Ziel
Das Ziel ist ein Offsite-Backup mit Lagerung an einem nur bedingt vertrauenswürdigem Ort, es könnte also jemand ggf. Zugriff auf die Platten bekommen. Daher muss es verschlüsselt werden.
Voraussetzungen
- Syno mit Unterstützung für verschlüsselte Ordner (eCryptfs)
- Zugriff auf die Konsole (Telnet / SSH)
- (extener Datenträger )
Umsetzung
- Erstellen eines verschlüsselten Ordners, ganz normal übers DSM. Der Name ist egal, wir brauchen davon nur den Schlüssel, daher kann der Ordner auch versteckt werden und es braucht auch keiner Rechte drauf. Wichtig ist, den Ordner zu verschlüsseln. Da der Schlüssel nur für die externen Platten verwendet wird, kann er auch dauerhaft auf der DS liegen. Dieser Ordner darf nicht gelöscht werden, weil dann auch der Schlüssel verloren geht.
- Externe Platte anhängen. Im folgenden verwende ich eine am eSata-Anschluss, geht aber auch genauso mit USB.
- Konsole auf die DS öffnen.
- Auf der externen Platte die notwendigen Verzeichnisse anlegen.
Rich (BBCode):DS1010> cd /volumeSATA/satashare/ DS1010> mkdir @backup@ DS1010> mkdir backup
- Das verschlüsselte Dateisystem mounten. Die notwendigen Daten erfährt man durch die Eingabe von "mount".
Rich (BBCode):DS1010> mount ... /volume1/@test@ on /volume1/test type ecryptfs (rw,ecryptfs_sig=d1a01d50c3f21e00,ecryptfs_fnek_sig=d1a01d50c3f21e00,ecryptfs_cipher=aes,ecryptfs_key_bytes=32)
Rich (BBCode):DS1010> mount -t ecryptfs /volumeSATA/satashare/@backup@ /volumeSATA/satashare/backup -o rw,ecryptfs_sig=d1a01d50c3f21e00,ecryptfs_fnek_sig=d1a01d50c3f21e00,ecryptfs_cipher=aes,ecryptfs_key_bytes=32
- Jetzt kann man in "/volumeSATA/satashare/backup" ein Backup durchführen, rsync, rsnapshot oder was auch immer.
- Wenn man fertig ist, den verschlüsselten Ordner wieder aushängen.
Rich (BBCode):DS1010> umount /volumeSATA/satashare/backup/
- Anschließend kann die Platte dann entfernt werden.
Fertiges Script
Hier das Script, das ich verwende, zusätzlich mit:
- Fehlerprüfungen
- Logging
- Mailbenachrichtigung
- Auswerfen des Datenträgers, nach Abschluss des Backups
Das Script ist in zwei Teile aufgeteilt. Dieses hier wird wird nachts vom Cron gestartet, und übernimmt das mounten.
Rich (BBCode):
#!/bin/sh
logfile="/volume1/backup/backup-sata-`date +%Y-%V`.log"
device="/volumeSATA/satashare"
if [ -e $device/do.backup ]
then
echo "device connected, starting backup"
else
echo "no device connected, aborting backup"
return
fi
echo "########################################################################" >> $logfile
echo "" >> $logfile
echo "Starting backup on `date +%Y-%m-%d` `date +%k:%M:%S`" >> $logfile
echo "" >> $logfile
mount -t ecryptfs $device/@backup@ $device/backup \
-o rw,ecryptfs_sig=d1a01d50c3f21e00,ecryptfs_fnek_sig=d1a01d50c3f21e00,ecryptfs_cipher=aes,ecryptfs_key_bytes=32
if [ $? -eq 0 ]
then
echo "Encrypted filesystem mounted" >> $logfile
else
echo "Error while mounting the encrypted filesystem" >> $logfile
echo "" >> $logfile
synomail SATABackupFailed
return
fi
$device/backup/run.backup $device >> $logfile 2>&1
echo "" >> $logfile
echo "------------------------------------------------------------------------" >> $logfile
echo "" >> $logfile
umount $device/backup >> $logfile
if [ $? -eq 0 ]
then
echo "Encrypted filesystem unmounted" >> $logfile
else
echo "Error while unmounting the encrypted filesystem" >> $logfile
echo "" >> $logfile
synomail SATABackupFailed
return
fi
echo "" >> $logfile
df -h $device >> $logfile
echo "" >> $logfile
echo "Backup finished on `date +%Y-%m-%d` `date +%k:%M:%S`" >> $logfile
echo "" >> $logfile
synosata -umount sdg1
if [ $? -eq 0 ]
then
echo "Drive unmounted" >> $logfile
echo "" >> $logfile
else
echo "Error while unmounting the drive" >> $logfile
echo "" >> $logfile
synomail SATABackupFailed
return
fi
synomail SATABackupSuccess
Das zweite Scripf findet sich auf der Platte selbst ("/volumeSATA/satashare/backup/run.backup"). Dadurch kann ich verschiedene Platten mit unterschiedlichen Backupaufgaben verwenden. Zusätzlich dient die Datei "/volumeSATA/satashare/do.backup" als Sicherheitsmechanismus. Wenn diese nicht existert, passiert auch nicht, für den Fall, dass man eine andere Platte angeschlossen ist.
Rich (BBCode):
echo ""
echo "-- homes ---------------------------------------------------------------"
rsync -avh --delete --exclude=#recycle --exclude=@eaDir/ --exclude=Thumbs.db /volume1/homes/ $1/backup/homes
...
Ablauf ist dann am Abend die Platte einstecken, über Nacht läuft das Backup, am Morgen auf dem Handy die Mail lesen und bei Erfolg die Platte rausnehmen. Das Ganze geht also (soweit es möglich ist) automatisch.
Anmerkungen
Die Mailbenachrichtigung erfolgt über die eingebaute Funktion (synomail), also muss sie auch in der Systemsteuerung konfiguriert sein. Die Texte sind in "/usr/syno/synoman/webman/texts/ger/mails", hier habe ich einfach die beiden weiteren hinzugefügt.
Das "synosata -umount sdg1" wirft die externe Platte aus. Ob das so wirklich so gedacht ist, kann ich nicht sagen, bislang hatte ich damit unter DSM 3.0 keine Probleme. Mit DSM 2.3 hat sich die Kiste aber vollkommen aufgehängt, so dass nur ein reset übrig blieb, von daher also Benutzung auf eigene Gefahr.
Kommentare oder Verbesserungsvorschläge sind gerne willkommen.
===EDIT===
Das Thema steht nun auch in unserem Wiki: http://www.synology-wiki.de/index.php/Verschlüsseltes_Backup
Zuletzt bearbeitet von einem Moderator: