Zum Inhalt springen

Verschlüsselte Backups der Diskstation erstellen

Synologys Diskstations können mit dem aktuellen Release (DSM 6) mit Bordmitteln relativ einfach eine Sicherung auf eine externe USB Festplatte erstellen. Von Haus aus bietet das Betriebssystem der Diskstation allerdings keinerlei Möglichkeiten dieses Backup zu verschlüsseln. Zwar gibt es Mittel und Wege, dennoch ist Hardware der Diskstation nur bedingt dazu geeignet derart große Datenmengen zu verschlüsseln.

Wieso nun ein verschlüsseltes Backup? Generell sollte das Backup an einem anderen Ort gelagert werden, als die Diskstation um z.B. im Falle eines Brandes abgesichert zu sein. Daher sollte nicht jeder, der die Backup-Festplatte in die Hände bekommt ohne weiteres auf die gesicherten Daten zugreifen können.

Im Folgenden wird als Sicherungsziel ein rsync-Server verwendet, der das Backup auf eine mit LUKS verschlüsselte Festplatte schreibt. Um sich den Aufwand eines physischen Servers zu ersparen wird der rsync-Server in einer virtuellen Maschine realisiert.

Installation der virtuellen Umgebung

Die Fähigkeit die virtuelle Ubuntu-Maschine zum Laufen zu bringen setzte ich an dieser Stelle einfach mal voraus, hierfür lassen sich im Netz auch relativ einfach weiterführende Anleitungen finden.

Einrichten der Verschlüsselung

Im Folgenden wird davon ausgegangen, dass in der virtuellen Maschine über die USB Schnittstelle ein externes Laufwerk angeschlossen ist, auf dem die Sicherung gespeichert werden soll. Im System ist das Laufwerk unter /dev/sdb ansprechbar.

Zunächst wird das komplette Laufwerk mit Zufallsdaten beschrieben, wodurch sichergestellt wird, dass die eigentlichen Daten später nicht mehr von Zufallsdaten zu unterscheiden sind:

sudo dd if=/dev/urandom bs=10M of=/dev/sdb

Anschließend erstellen wir das verschlüsselte Laufwerk mit einem aes-xts-plain64-Algorithmus und 256 bit Wortlänge. Das abgefragte Passwort einprägen und sicher verwahren, denn ohne dieses sind die Daten ansonsten unwiderruflich verloren:

cryptsetup luksFormat -c aes-xts-plain64:sha256 -s 256 /dev/sdb

Öffnen des verschlüsselten Laufwerkes, erstellen des Dateisystems und des Zielordners:

cryptsetup luksOpen /dev/sdb encHDD
mkfs.ext4 /dev/mapper/encHDD
mount /dev/mapper/encHDD /mnt/encHDD
mkdir /mnt/encHDD/backup

Setzen der Berechtigungen für den Mountpunkt des verschlüsselten Laufwerks und aushängen:

chown myUser:myUser /mnt/encHDD/ -R
umount /mnt/encHDD
cryptsetup luksClose encHDD

Künftig kann das Laufwerk dann einfach über:

cryptsetup luksOpen /dev/sdb encHDD
mount /dev/mapper/encHDD /mnt/encHDD

geöffnet und gemountet werden und mit

umount /mnt/eHDD
cryptsetup luksClose eHDD

wieder ausgehängt und geschlossen werden.

Konfigurieren des rsync-Dienstes

Der rsync-Dienst wird zentral über die Datei /etc/rsyncd.conf konfiguriert:

log file = /var/log/rsyncd.log

[DSBackup]
path = /mnt/eHDD/backup
comment = Backup destination
uid = linuxUser
gid = linuxUser
read only = false
auth users = rsyncUser
secrets file = /etc/rsyncd.scrt

Der Zielordner der Synchronisation liegt im obigen Beispiel also in dem Pfad /mnt/eHDD/backup. Da wir den Ordner backup allerdings bereits auf der verschlüsselten Festplatte angelegt haben, ist somit /mnt/eHDD unser künftiger Mountpunkt für das verschlüsselte Laufwerk.

Über die Einträge auth users bzw. secrets file wird dem Dienst ein zentraler User zur Authentifizierung mitgeteilt, dieser muss nicht im System vorhanden sein. Der Benutzername und das Passwort werden im Klartext in der Datei /etc/rsyncd.scrt abgelegt:

rsyncUser:meinPasswort

Aus diesem Grund ist es auch wichtig darauf zu achten, dass die Zugriffsrechte auf diese Schlüsseldatei korrekt gesetzen, da der rsync-Dienst ansonsten die Arbeit verweigert:

chmod 600 /etc/rsyncd.scrt

Einrichten der Sicherung im DSM

tbd

Samba-Server installieren

Sollte es einmal notwendig sein, dass Daten aus dem Backup benötigt werden, sollte dieser Zugriff möglichst komfortabel geschehen , z.B. über einen beliebigen Dateiexplorer. Aus diesem Grund wird in der VM zusätzlich noch ein Samba-Server hinzuinstalliert, über den das Backup dann als Netzlaufwerk von einem beliebigen Client ausgelesen werden kann.

Installation von Samba:

apt-get install samba-common samba

Da Samba eine eigene Passwortdatenbank mitbringt muss für jeden User zunächst ein entsprechendes Passwort angelegt werden:

sudo smbpasswd -a myUser

Die Freigabe des Sicherungsordners kann nun auf zwei Arten erfolgen. Entweder über eine allgemeine Freigabe für alle angelegten Samba-User oder über eine persönliche Freigabe für einen dedizierten Benutzer.

Die persönliche Freigabe wird über den Befehl

net usershare add Backup /mnt/encHDD/backup "Diskstation Backup" myUser:f

konfiguriert, wohingegen die allgemeine Freigabe direkt über die Datei /etc/samba/smb.conf angelegt werden muss:

[Backup]
path = /mnt/encHDD/backup
public = yes
writeable = no

Nach dem Ändern der Config-Datei muss der smbd Dienst neu gestartet werden:

sudo service smbd restart

Wichtig anzumerken ist, dass in beiden Fällen die Freigaben auf das Backup nur lesend gegeben sind. Somit ist sichergestellt, dass die Backup-Daten nicht beschädigt oder gelöscht werden können.