Vorwort
Dieses HowTo soll erklären wie man relativ leicht ein verschlüsseltes Dateisystem mit einem USB-Stick als Keyhüter und einem Passwort aufsetzt. Am Ende dieses HowTo's werden wir eine verschlüsselte /home, swap und tmp-Partition haben.
ACHTUNG: Nur unter Debian SID getestet!
Vorbereitungen
Um loslegen zu können brauchen wir folgendes im Kernel oder als Modul.
Code: Alles auswählen
Code maturity level options ---> <*> Prompt for development and/or incomplete code/drivers
General setup ---> <*> Support for hot-pluggable devices
Device Drivers > *Multi-device support (RAID and LVM).
<M/*> Device mapper support
<M/*> Crypt target support
Code: Alles auswählen
Cryptographic options ---> <*> AES cipher algorithms
Code: Alles auswählen
apt-get install cryptsetup
Code: Alles auswählen
modprobe aes
modprobe dm-crypt
modprobe dm-mod
Also:
Code: Alles auswählen
modprobe sd_mod
modprobe usb_storage
Jetzt erzeugen wir auf dem USB-Stick (er darf NICHT gemountet sein.) ein neues Cryptofilesystem:
Code: Alles auswählen
cryptsetup luksFormat --verify-passphrase /dev/sda1
Er fragt uns nun nach einem Passwort, dass man sich unbedingt merken sollte.
Nun öffnen wir das neue Cryptofs:
Code: Alles auswählen
cryptsetup luksOpen /dev/sda1 dongle
Jetzt sollte unter /dev/mapper/ das Device dongle sein.
In diesem erstellen wir nun ein neues Filesystem, hier im Beispiel xfs
Code: Alles auswählen
mkfs.xfs /dev/mapper/dongle
Code: Alles auswählen
mount -t xfs /dev/mapper/dongle /tmp/usb
Code: Alles auswählen
head -c 1024 /dev/random > /tmp/usb/key
Cryptopartitionen erzeugen
Nun legen wir unsere Partitionen an die verschlüsselt werden sollen.
Ich gehe hier davon aus, dass hdb1 die zu verschlüsselnde Partition ist.
ACHTUNG: Auch hier gehen wieder alle Daten verloren!
Code: Alles auswählen
cryptsetup luksFormat /dev/hdb1 /tmp/usb/key
Dann öffnen wir die Partition wieder.
Code: Alles auswählen
cryptsetup luksOpen /dev/hdb1 home --key-file=/tmp/usb/key
Code: Alles auswählen
mkf.xfs /dev/mapper/home
Code: Alles auswählen
mount -t xfs /dev/mapper/home /home
Danach erzeugen wir in /home ein Verzeichniss .tmp.
Code: Alles auswählen
mkdir /home/.tmp
Crypttab und fstab modifizieren.
Jetzt verändern wir diverse Konfigurationsdateien damit unsere Partitionen beim booten gemountet werden.
Als erstes verändern wir /etc/crypttab und geben hier unsere crypto-Partition, die key-Partition und die swap-Partition an.
Code: Alles auswählen
echo "dongle /dev/sda1 none luks" >> /etc/crypttab
echo "home /dev/hdb1 /media/.usb/key luks" >> /etc/crypttab
echo "swap /dev/hda2 /dev/random swap,cipher=aes,size=128,hash=ripemd160
" >> /etc/crypttab
Code: Alles auswählen
CRYPTDISKS_MOUNT="/media/.usb"
Der USB-Stick mit dem Key
Code: Alles auswählen
/dev/mapper/dongle /media/.usb xfs defaults 0 0
Code: Alles auswählen
/dev/mapper/home /home xfs defaults,auto 0 0
Code: Alles auswählen
/dev/mapper/swap none swap sw 0 0
Zusätzlich leiten wir /tmp auf /home.tmp um:
Code: Alles auswählen
/home/.tmp /tmp none bind,user,auto 0 0
Nach einem Reboot dürfte alles automatisch gemountet werden ,wenn du das Passwort für deinen Dongle (in unserem Fall der USB-Stick) hast.
Feedback ist immer willkommen (vor allem Rechtschreibfehler etc.).
mfg Benjamin