DM-Crypt/Daten-Partition verschlüsseln
Aus Gentoo Linux Wiki
[Bearbeiten] Daten-Partition verschlüsseln
Als erstes benötigen wir eine Partition, in meinem Beispiel ist es eine S-ATA Festplatte mit einer Partition. Achtung: Soll sowieso eine komplette Platte verschlüsselt werden, wird natürlich KEINE Partition benötigt. Statt z.B. /dev/sda1 wird dann /dev/sda verwendet.
[Bearbeiten] LUKS Partiton erstellen
Als erstes braucht man eine zu verschlüsselnde Partition, in meinem Fall habe ich /dev/sda1 gewählt. Wer alle vorhandenen Daten komplett unwiederherstellbar vernichten will, führt folgendes aus:
Wenn es die komplette Festplatte sein darf, dann /usr/bin/shred /dev/sda.
Diese Partition wird nun initialisiert, in diesem Fall habe beträgt Verschlüsselungstiefe 256bit, also -s 256 und den Chiffriermodus AES und LRW-BENBI gewählt. Dabei muss man ein Passwort angeben, mit dem man später die Partition öffnen kann. Natürlich ist eine Verschlüsselung unnütz, wenn man Standardpasswörter aus anderen Bereichen verwendet. Mehr zu Thema sichere Passwörter lesen sie hier
Statt einem Passwort kann auch ein Keyfile übergeben werden welches sich zum Beispiel auf einem USB Stick befindet oder anderweitig gesichert ist. Dadurch wird eine Passwortabfrage umgangen
| Code: Key |
head -c1024 /dev/urandom >/mnt/usb/key.sda1 /sbin/cryptsetup -c aes-lrw-benbi:sha256 -s 384 luksFormat /dev/sda1 /mnt/usb/key.sda1 |
Auf dem Device-Mapper-Blockdevice muss nun ein Dateisystem erstellt werden, dazu muss man sie zuerst öffnen bzw. freigeben:
Solltest du dem Key Beispiel folgen musst du nun
Dabei wird das Mapper-Device /dev/mapper/media angelegt. Persönlicher Kreativität sind keine Grenzen gesetzt.Nun das Anlegen des Dateisystems, in meinen Fall mit ext3:
Voila, die Datenpartition ist fertig und bereit zum mounten:
Nach einem Unmounten ist es ratsam, die Partition zu schließen:
| Code: Partition unmounten/schließen |
umount /mnt/media /sbin/cryptsetup luksClose media |
Zum erneuten Öffnen und Mounten:
| Code: Partition öffnen/mounten |
/sbin/cryptsetup luksOpen /dev/sda1 media mount -t ext3 /dev/mapper/media /mnt/media |
[Bearbeiten] Täglicher Gebrauch
Ärgerlich ist es im täglichen Gebrauch, dass man dazu Root sein muss. Ich habe mir einen sudo Eintrag erstellt:
EDIT: Dies kann durch benutzung von pam_mount umgangen werden! LINK: pam_mount[1]
| Code: visudo |
%users ALL= NOPASSWD: /sbin/cryptsetup |
| Code: visudo |
%users ALL= NOPASSWD: /sbin/cryptsetup luksOpen * %users ALL= NOPASSWD: /sbin/cryptsetup luksClose * %users ALL= NOPASSWD: /sbin/cryptsetup -y luksAddKey * %users ALL= NOPASSWD: /sbin/cryptsetup luksDelKey * |
Und einen passenden fstab Eintrag:
| Datei: /etc/fstab |
/dev/mapper/media /mnt/media ext3 noatime,noexec,nodev,noauto,user 0 0 |
Und nun folgendes Bash-Skript:
| Code: Bashscript |
#! /bin/sh
##### Config #####
SUDO="/usr/bin/sudo"
CRYPTSETUP="/sbin/cryptsetup"
DEV="/dev/sda1"
MAPPER="media"
MOUNT="/mnt/media"
##### Do Not Change Below #####
if [[ "$UID" == "0" ]] ; then
SUDO=""
fi
case $1 in
-m) $SUDO $CRYPTSETUP luksOpen $DEV $MAPPER
mount $MOUNT
;;
-u) umount $MOUNT
$SUDO $CRYPTSETUP luksClose $MAPPER
;;
-a) $SUDO $CRYPTSETUP -y luksAddKey $DEV
;;
-d) if [[ -z "$2" ]] ; then
echo "usage: -d <nr> - del key"
else
$SUDO $CRYPTSETUP luksDelKey $DEV $2
fi
;;
*) echo "usage: -m - mount and open encrypted device"
echo " -u - umount and close encrypted device"
echo " -a - add key"
echo " -d <nr> - del key"
;;
esac
|
Diese Vorgehensweise ist nicht die sicherste, ein Angreifer mit Benutzerrechten kann durch Entfernen sämtlicher Key Slots die LUKS Partition unbrauchbar machen. Wer auf Nummer sicher gehen will, lässt das Recht einen Key zu entfernen weg.