Files
LUKS/cryptodevice.txt
2026-02-02 00:45:17 +01:00

204 lines
7.3 KiB
Plaintext

## - urls
## -
http://wiki.ubuntuusers.de/System_verschl%C3%BCsseln
http://de.gentoo-wiki.com/DM-Crypt
## --------------------------------------------------------- ##
## - In welchem Slot befindet sich der Key mit Passwort... - ##
## --------------------------------------------------------- ##
# - bsp.: cryptsetup --verbose open --test-passphrase /dev/sda5
# -
cryptsetup --verbose open --test-passphrase <device>
## ------------------------------------------------------------- #
## - - #
## - cryptodevice einrichten - #
## - - #
## ------------------------------------------------------------- #
## -------------------------- ##
## - Cryptodevice erstellen - ##
## -------------------------- ##
## -
cryptsetup luksFormat <device i.e. "/dev/sda1">
## - oder
cryptsetup -c aes-lrw-benbi -y -s 384 luksFormat <device>
#
#cryptsetup -c aes-xts-plain -y -s 512 luksFormat <device>
cryptsetup luksFormat -c aes-xts-plain64 -s 512 -h sha512 -y <device>
## - cryptodevice erstellen mit password im keyfile
## -
## - keyfile (1024 bit groß) erstellen
head -c1024 /dev/urandom > <keyfile i.e. "/etc/.key/hostname.key">
## - crytodevice erstellen
cryptsetup -c aes-lrw-benbi -s 384 luksFormat <device> <keyfile>
# - oder (etwas neuer)
#cryptsetup -c aes-xts-plain -s 512 luksFormat <device> <keyfile>
cryptsetup -c aes-xts-plain64 -s 512 -h sha512 luksFormat <device> <keyfile>
## - cryptodevice mit einem abgeleiteten Schlüssel eines bestehenden LUKS
## - device erstellen
## -
## - /lib/cryptsetup/scripts/decrypt_derived <Name_des_Ursprungsgeräts> | cryptsetup -c aes-xts-plain -s 512 luksFormat <Gerät>
## - wobei mit <Name des Ursprungsgeräts> ist im Folgenden der Mapper-Name
## - gemeint ist, der unter /dev/mapper/ angezeigt wird - z.Bsp. root
## -
/lib/cryptsetup/scripts/decrypt_derived root | cryptsetup -c aes-xts-plain -s 512 luksFormat /dev/sda3
## ------------------------ ##
## - Cryptodevice oeffnen - ##
## ------------------------ ##
## -
cryptsetup luksOpen <device> <cryptodevice i.e. "data">
## - bzw. mit keyfileangabe
cryptsetup luksOpen <device> <cryptodevice i.e. "data"> --key-file <keyfile>
## - dateisystem erstellen
## -
## - Die "-m" Option reserviert soviel Prozent (hier: 0 Prozent) des Speichers
## - für den Superuser. Vergisst man die Option anzugeben, werden standardmäßig 5%
## - des Speicherplatzers für den Superuser reserviert.
## -
#mkfs.ext4 -m0 -E lazy_itable_init=0,lazy_journal_init=0 /dev/mapper/<cryptodevice>
mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/mapper/<cryptodevice>
## - neue crytopartition mounten
## -
mount /dev/mapper/<cryptodevice> <mountpoint i.e. "/data">
## - öffnen eines mit einem abgeleiteten Schlüssel erstellten
## - LUKS Devices
## -
## - /lib/cryptsetup/scripts/decrypt_derived <Name Des Ursprungsgeräts> | cryptsetup luksOpen <Gerät> <Name>
/lib/cryptsetup/scripts/decrypt_derived root | cryptsetup luksOpen /dev/sda3 data
## ----------------- ##
## - /etc/crypttab - ##
## ----------------- ##
## -
## - Paswortgeschütztes Device
#<Name> UUID=<UUID> none <options>
root UUID=9d323be6-7aad-4813-a0d2-8db4947c48d9 none luks
## -
## - Keyfile gechütztes Device
#<Name> UUID=<UUID> <key file> <options
home UUID=866d09f2-1b18-a00a-8d45-b2407260864c /etc/.key/luna.key luks,aes-xts-plain
## -
## - mit abgeleitetem Schlüssel erstelltes Device
#<Name> UUID=<UUID> <Ursprungsgeräts> luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived
data UUID=5f106e59-829f-4186-95b7-a0c84bb0adbd root luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived
## - Hinweis!
## - die UUID eines Gerätedevice kann mittels "blkid" ermittelt werden
## -
blkid /dev/sda2
## - Neuere Versionen von cryptsetup können die UUID auch selbst ermitteln:
## -
cryptsetup luksUUID /dev/sdxY
## - Luks ermöglicht, mit verschiedenen Schlüsseln auf die
## - Partition zuzugreifen. Folgender Befehl fügst einen
## - weiteren hinzu:
## - ein passwort hinzufügen
## -
cryptsetup luksAddKey /dev/$DEVICE
## -
## - ein passwort hinzufügen falls eine schlüsseldatei benutzt wird
## -
cryptsetup luksAddKey -d /pfad/zur/datei /dev/$DEVICE
## -
## - ein passwort hinzufügen falls eine abgeleiteter Schlüssel benutzt wird
## -
mkdir /mnt/ram && mount -t ramfs -o size=1m ramfs /mnt/ram && chmod 600 /mnt/ram
/lib/cryptsetup/scripts/decrypt_derived <Ursprungsgerät z.Bsp. root> > /mnt/ram/tmp.key
cryptsetup luksAddKey -d /mnt/ram/tmp.key /dev/$DEVICE
umount /mnt/ram && rmdir /mnt/ram
## -
## - einen abgeleiteten Schlüssel hinzufügen, falls ein Passwort benutzt wurde
## -
mkdir /mnt/ram && mount -t ramfs -o size=1m ramfs /mnt/ram && chmod 600 /mnt/ram
/lib/cryptsetup/scripts/decrypt_derived <Ursprungsgerät z.Bsp. root> > /mnt/ram/tmp.key
cryptsetup luksAddKey /dev/$DEVICE /mnt/ram/tmp.key
umount /mnt/ram && rmdir /mnt/ram
## -
## - eine Schlüsseldatei hinzufügen
## -
cryptsetup luksAddKey /dev/$DEVICE <keydatei>
## -
## - eine Schlüsseldatei hinzufügen falls eine schlüsseldatei benutzt wird
## -
cryptsetup luksAddKey -d /pfad/zur/datei /dev/$DEVICE <keydatei>
## - Analog dazu kann mit luksKillSlot ein Schlüssel wieder entfernen.
## -
cryptsetup luksKillSlot <cryptodevice> <SlotNr>
## - Täglicher Gebrauch
## - ==================
* Trage deine Cryptopartition in /etc/crypttab ein, bspw:
# <target device> <source device> <key file> <options>
$CRYPTODEVICE /dev/$DEVICE none luks,check=ext2,retry=5
# oder
<cryptodevice> <device> none luks,retry=1,cipher=aes-lrw-benbi
<cryptodevice> <device> <keykile> luks,cipher=aes-lrw-benbi
* Trage in /etc/fstab das Device (/dev/mapper/$CRYPTODEVICE $MOUNT)
mit deinen Dateisystemoptionen ein:
/dev/mapper/$CRYPTDEVICE $MOUNT auto defaults 0 0
* /etc/init.d/cryptdisks kümmert sich nun um die Initialisierung beim Booten.
Bei Falscheingabe, wirst du mehrmals (siehe retry in der /etc/crypttab)
erneut gefragt. Falls es weiterhin fehlschlägt, wird der Bootvorgang
ohne mounten fortgesetzt.
* Luks ermöglicht es dir, mit verschiedenen Schlüsseln auf die Partition
zuzugreifen. Mit folgendem Befehl fügst du einen weiteren hinzu:
cryptsetup luksAddKey /dev/$DEVICE
Dazu musst du das Passwort eines schon vorhandenen Schlüssels eingeben. Analog
dazu kannst du mit luksDelKey ein Schlüssel wieder entfernen.
Paranoia
========
Mit dmsetup info lassen sich benutzte devicemappings anzeigen.
Taucht hier ein Teil als ACTIVE auf, so hat jedermensch darauf
Zugriff (auch wenn es nicht gemountet ist, könnte - wer die
nötigen Rechte hat - das Teil ohne passendes Cryptokennwort
mounten) - es ist in diesem Zustand quasi entschlüsselt!
Deswegen immer nach dem unmounten, das mapping entfernen
(sonst gibt's (erfahrene Beamte vorausgesetzt) evtl. Stress bei
der Hausdurchsuchung):
umount $MOUNT
cryptsetup luksClose $CRYPTODEVICE
Du kannst alle mappings gleichzeitig entfernen mit:
dmsetup remove_all
! Denk dran: cryptsetup luksClose niemals nicht vergessen oder aber
Stecker ziehen (bzw. den Rechner herunterfahren) ;) !