Einführung

Mit dm-crpyt kann man unter Linux Festplatten bzw. Dateisysteme verschlüsseln. LUKS (Linux Unified Key Setup) erweitert dm-crypt um einige Funktionen. LUKS ermöglicht zum Beispiel das Verwalten von mehreren Schlüsseln, sowie das automatische erkennen und einbinden von verschlüsselten Geräten ins Dateisystem. LUKS wird mit dem Tool cryptsetup eingerichtet.

Logical Volume verschlüsseln

10 GB grosses Logical Volume mit dem Namen seucre in der Volume Group rootvg anlegen:

lvcreate -n secure -L 100G rootvg

Logical Volume verschlüsseln (sicheres Passwort auswählen):

cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/mapper/rootvg-secure

Verschlüsseltes Logical Volume öffnen (Passwort eingeben):

cryptsetup luksOpen /dev/mapper/rootvg-secure secure

Dateisystem anlegen:

mkfs.ext4 /dev/mapper/secure

Mountpoint erstellen:

mkdir /home/emanuel/secure

Filesystem mounten:

mount /dev/mapper/secure /home/emanuel/secure

Jetzt werden alle Dateien für den Benutzer transparent verschlüsselt.

Dateisystem aushängen:

umount /home/emanuel/secure

Verschlüsseltes Logical Volume schliessen (erst dann ist das Logical Volume wieder geschützt!!!):

cryptsetup luksClose /dev/mapper/secure

Verschlüsseltes Logical Volume verwenden

Folgende Schritte sind immer nötig um das Logical Volume verwenden zu können:

Filesystem einbinden:

cryptsetup luksOpen /dev/mapper/rootvg-secure secure
mount /dev/mapper/secure /home/emanuel/secure

Filesystem aushängen:

umount /home/emanuel/secure
cryptsetup luksClose /dev/mapper/secure

Automatisch mounten

Das verschlüsselte Dateisystem kann beim Booten automatisch gemountet werden. Man wird während dem Bootvorgang nach dem Passwort gefragt.

Label anlegen:

tune2fs -L secure /dev/mapper/secure

Datei /etc/crypttab bearbeiten:

vi /etc/crypttab
secure          /dev/mapper/rootvg-secure      ASK

Datei /etc/fstab bearbeiten:

vi /etc/fstab
/dev/mapper/secure /home/emanueL/secure ext4 defaults 0 1

Logical Volume über ein Skript mounten

Ich mounte mein verschlüsseltes Dateisystem lieber bei Gebrauch mit einem kleinen Skript:

#!/usr/bin/env bash
########################################################################
#
# securelv
# Mountet ein LUKS verschuesseltes Device
#
# Copyright 2011 Emanuel Duss
# Licensed under GNU General Public License
#
# 2011-03-14; Emanuel Duss; Erste Version
#
########################################################################
########################################################################
# Variabeln
MOUNTPATH="/home/emanuel/secure"
LV="/dev/mapper/rootvg-secure"
NAME="secure"
########################################################################
# Funktionen
usage () {
echo "Usage:
  $0 { mount | umount }"
}
########################################################################
# Main
case $1 in
  mount)
    cryptsetup luksOpen $LV $NAME
    mount /dev/mapper/secure $MOUNTPATH
    ;;
  umount)
    umount $MOUNTPATH
    cryptsetup luksClose /dev/mapper/$NAME
    ;;
  *)
    usage
    ;;
esac
#EOF

Weitere Aufgaben

Status vom verschlüsseltem Logical Volumes abfragen:

cryptsetup status secure

Weiteres Passwort hinzufügen:

cryptsetup luksDelKey /dev/mapper/rootvg-secure

Links für weitere Informationen