DM-Crypt/Daten-Partition verschlüsseln

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche

[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

Anmerkung: Sämtliche Daten auf dieser Partition müssen vorher gesichert werden!

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:

/usr/bin/shred /dev/sda1

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

/sbin/cryptsetup -c aes-lrw-benbi:sha256 -y -s 384 luksFormat /dev/sda1

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:

/sbin/cryptsetup luksOpen /dev/sda1 media

Solltest du dem Key Beispiel folgen musst du nun

/sbin/cryptsetup luksOpen /dev/sda1 media --key-file /mnt/usb/key.sda1

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:

mke2fs -j /dev/mapper/media

Voila, die Datenpartition ist fertig und bereit zum mounten:

mount -t ext3 /dev/mapper/media /mnt/media

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
Anmerkung: Für Mehrbenutzersysteme ist das unsicher.
Restriktiver sind folgende Einträge:
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.

Persönliche Werkzeuge