In diesem Artikel geht es um eine externe Festplatte, die für Backups benutzt wird, die so einzurichten ist, dass alles automatisiert abläuft. Die Festplatte ist mit LUKS verschlüsselt, soll automatisch eingebunden werden, das Backup soll durchgeführt werden und wenn alles abgearbeitet ist, soll sie in den Stand-by gefahren werden. Mein Beispiel bezieht sich auf eine zusätzliche Systemverschlüsselung.
Verschlüsselung der Festplatte
Wie die externe Festplatte verschlüsselt werden kann, steht in diesem Artikel aus dem ubuntuusers-Wiki. Zuerst muss cryptsetup
installiert sein. Eine Installation von diesem Paket ist durch die Eingabe von
1
|
|
in der Konsole getan. Zusätzlich muss noch das Kernelmodul dm-crypt
geladen werden, indem
1
|
|
benutzt wird. Die ausgewählte Partition wird durch den Befehl
1
|
|
verschlüsselt. Alternativ kann man auch Twofish anstatt AES, als Verschlüsselungsalgorithmus verwenden. Dazu wird aes-xts-plain
durch twofish-xts-plain
ersetzt. Ein Zitat aus der Wikipedia:
1
|
|
Der Befehl zum Verschlüsseln ist folgendermaßen aufgebaut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
Ich nutze das Programm explain von vain. Es ist unter der Pizzaware (alternativ: Beerware) lizensiert.
Um diese Festplatte zu entschlüsseln, wird der Befehl
1
|
|
benutzt. <name>
ist durch eine frei wählbaren Zeichenfolge ersetzbar. Die soeben entschlüsselte Festplatte ist unter /dev/mapper/<name>
erreichbar. Diese kann nun ganz normal über
1
|
|
gemounted werden.
Statisches Einbinden der Festplatte
Es ist ratsam die Festplatte immer an einem bestimmten Punkt einzubinden, da sich die Gerätebezeichnung (genauer: "X" in /dev/sdX#
) verändern kann. Dazu verwende ich eigene udev-Regeln. Alle Regeln sind in /etc/udev/rules.d/nummer-name.rules
abgespeichert. Meine Regel schaut so aus:
1 2 |
|
Hinter der Variable KERNEL
wird die Partition angegeben, auf der sich das Backup befinden soll. Das Fragezeichen sollte nicht ersetzt werden, denn es steht für einen Buchstaben, der beliebig sein kann. Stattdessen wird die Festplatte durch den SYSFS{serial}
erkannt. Diesen findet man so heraus:
Durch die Eingabe von
1
|
|
werden alle angeschlossenen USB-Geräte detailliert angezeigt. Nun sucht man nach der Festplatte, die durch den Hersteller identifizierbar sein sollte. Alternativ kann man auch diesen Befehl nutzen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
In dieser Ausgabe sucht man nach iSerial
. Dahinter befindet sich die Nummer, die man für 57442D574341553439323533343336
ersetzt.
In meinem Beispiel ist durch die Variable SYMLINK
festgehalten, wie diese unter /dev angezeigt werden soll. In meinem Fall ist das /dev/backup-extern. Alle weiteren Inhalte der RUN
-Variablen werden nacheinander ausgeführt. Zum einen wird die Festplatte entschlüsselt, gemountet, "Start Backup." wird geloggt und das Backup wird gestartet.
[UPDATE]: Damit die Regel auch benutzt wird, muss man den Dienst udev
neuladen. Dies wird erreicht, indem man
1
|
|
ausführt.
Was haben wir bis jetzt? Wir haben eine verschlüsselte Festplatte, die unter /dev/backup-extern
immer erreichbar ist.
Entschlüsseln ohne Passworteingabe
Dann widmen wir uns doch den Skripten mountbackup
und backup
.
Skript /home/USER/bin/mountbackup
:
1 2 3 |
|
Mit dem mkdir
-Befehl wird das Mount-Verzeichnis erstellt, wenn dieses noch nicht existiert. Die Zeile darunter entschlüsselt meine externe Festplatte und mountet diese unter /media/backup
. Eine abschließende Ausgabe zeigt mir noch die erfolgreiche Ausführung. Allerdings wird diese nur ausgegeben, wenn man den mountbackup
-Befehl manuell in der Konsole eingibt.
Damit beim Entschlüsseln der externen Festplatte kein Passwort eingegeben werden muss, werden folgende Befehle eingegeben:
1 2 3 |
|
Dabei muss <Name_des_Ursprungsgeräts>
durch das verschlüsselte System, in meinem Fall unter /dev/mapper/ubuntu
durch ubuntu
, ersetzt werden. <Gerät>
wird durch /dev/backup-extern
ersetzt.
Zum Testen, ob es erfolgreich war, gibt man
1
|
|
ein. In meinem Beispiel würde der Befehl folgendermaßen lauten:
1
|
|
Weitere Informationen dazu ist hier zu finden.
Das heißt, wir können nun die verschlüsselte Festplatte ohne Eingabe eines Passworts entschlüsseln.
Backup und Stand-by der Festplatte
Mein Backup wird von einem Skript (Direktlink) erledigt, das im ubuntuusers-Wiki veröffentlicht wurde und ich unter ~/bin/backup.sh
gespeichert habe. Der Mountpunkt muss in unserem Beispiel zu /media/backup
verändert werden. Weitere Anpassungen sind möglich und sind im Wiki-Artikel beschrieben.
Nun kommen wir zum letzten RUN
-Befehl:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Dieses Skript überprüft, ob die externe Festplatte unter /media/backup
gemountet ist. Wenn ja, dann wird das Backup durchgeführt. Zu beachten ist die Zeile 7 sudo hdparm -y /dev/backup-extern
. Mit diesem Befehl wird die Festplatte in den Stand-by gefahren. Ich empfehle noch die Änderung, das die Festplatte nach einer gewissen Zeit in den Stand-by gefahren wird. Die notify-send
-Befehle sind Benachrichtigungen über den Status des Backups.
Nun wäre es geschafft! Die Festplatte ist verschlüsselt, wird statisch eingebunden, ein Backup wird durchgeführt und anschließend wird die Festplatte heruntergefahren. Ich hoffe, dass der Artikel verständlich war und freue mich über Kritik. Alle Skripte sind in meinem Repository veröffentlicht.