Es gibt prinzipiell 2 Möglichkeiten der Verschlüsselung, über das Programm losetup (alt, soll nicht mehr verwendet werden) und neu: cryptsetup
1. Vorbereitung (Verwendung von cryptsetup):
Entweder möchte man eine ganze Partition verschlüsseln oder man packt seine vertraulichen Daten in eine Datei.
Diese kann man dann auch als Dateisystem mounten
...
Die Partition muss hierzu nicht besonders vorbereitet werden, es sollte eine neue leere Partition angelegt werden.
Beispiel:
Partitionsname /dev/sda2
Verschlüsselungsalgorithmus: aes-cbc-essiv:sha256
Kennwortlänge 21 Zeichen (minimum 20 Zeichen !)
Name des verschlüsselten Dateisystems (wird unter /dev/mapper angelegt) \ Wiki Markup
Mountverzeichnis /daten
Code Block |
---|
#21 Zeichen von der Tastatur lesen in die Variable PASS read |
...
-s |
...
-n 21 |
...
-p "Passwort :" PASS #Passwort an cryptsetup weitergeben echo $PASS |
...
|cryptsetup |
...
-c aes-cbc-essiv:sha256 create |
...
safedisk /dev/sda2 if |
...
[ $? |
...
-ne 0 |
...
] then |
...
echo "cryptsetup fehlgeschlagen" |
...
exit 1 fi #Bitte beachten: cryptsetup kann ein falsches Kennwort nicht erkennen ! #Sollte das Kennwort nicht richtig sein, wird beim Mountbefehl das Dateisystem nicht erkannt. mount /dev/mapper |
...
/safedisk /daten
|
Wichtig: Bei der ersten Benutzung muss man noch das Dateisystem formatieren:
Hierzu unmittelbar vor dem mount-Befehl eingeben (Im Beispiel ext3-Dateisystem):
Code Block |
---|
mkfs.ext3 /dev/mapper/safedisk
|
1.2 Verschlüsseltes Dateisystem in einer Datei
Mit folgendem Befehl wird zunächst eine Datei angelegt.
Code Block |
---|
dd if=/dev/zero of=safefile.data bs=1k count=1000000 |
Beispiel:
Größe 1GB, durch den Schalter count kann die Anzahl der Blöcke gewählt werden.
Durch bs=1k kann die Blockgröße verändert werden,
of= gibt den Dateinamen an.
if=/dev/zero füllt die Datei mit nullen. Wiki Markup
read \-s \-n 21 \-p "Passwort :" PASS echo $PASS\|cryptsetup \-c aes-cbc-essiv:sha256 create $NAME $DEV if \[ $? \-ne 0 \] then echo "cryptsetup fehlgeschlagen" exit 1 fi mount /dev/mapper/$NAME $iiPrinzipiell funktioniert es genauso wie unter 1.1 beschrieben mit folgenden Änderungen:
Vor dem cryptsetup muss man noch eingeben:
Code Block |
---|
losetup /dev/loop0 safefile.data
|
Hintergrund: cryptsetup kann die Datei nicht als Blockgerät ansprechen. Mit losetup wird die Datei an ein loop-Device angeschlossen.
Statt der Datei verwendet man danach das loop-Device.
Hinweis: Natürlich sollte man sich vergewissern, dass das Gerät /dev/loop0 nicht bereits verwendet wird. Es stehen aber noch mehrere Geräte zur Verfügung (loop1, loop2, ...)
Man verwendet dann in dem o.g. Beipiel unter 1.1 statt /dev/sda2 das Gerät /dev/loop0
2. Verwendung von losetup
#21 Zeichen als Passwort einlesen
read -s -n 21 -p "Passwort :" PASS
#Kernelmodul für Verschlüsselung laden
modprobe cryptoloop
#Kennwort an losetup übergeben
echo $PASS|losetup -e aes128 /dev/loop0 safefile.data -p 0