Verschlüsselung von USB-Festplatte
Bei neuen USB Datenträger als nächstes sollte eine neue Partition mit einem Partitions-Programm erstellt werden.
sudo gparted /dev/sdX # oder über Konsole sudo parted /dev/sdX mklabel gpt sudo parted -a optimal -- /dev/sdX mkpart primary 0% 100% sudo mkfs.ext4 /dev/sdX1 |
Gerät -> Partitionstabelle -> dabei sollte als Typ gpt gewählt werden als Dateisystem sollte ext4 gewählt werden. Anschließend kann eine LUKS-Partition mit cryptsetup angelegt werden:
sudo cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/sdX1 # auf Frage ob die Festplatte überschrieben werden soll mit YES beantworten und danach Entschlüsselung Passwort eingeben. sudo cryptsetup luksOpen /dev/sdX1 usb1 # danach die Festplatte mit ext4 Formatieren sudo mkfs.ext4 /dev/mapper/usb1 |
Die neue Partition kann nun in einen beliebigen Verzeichnispfad eingebunden werden:
# wenn Verzeichnis nicht existiert dann ein einlegen. sudo mkdir /mnt/usb # ans sudo mount /dev/mapper/usb1 /mnt/usb # sudo umount /mnt/usb sudo cryptsetup luksClose /dev/mapper/usb1 |
Moderne Linux-Systeme wie Linux Mint erkennen automatisch verschlüsselte Datenträger (z.B. USB-Sticks oder externe Festplatten) und öffnen ein entsprechendes Dialog-Fenster zur Passworteingabe.
Von Hand lässt sich eine bestehende LUKS-Partition nach folgendem Schema in ein laufendes System einbinden („mounten“):
sudo cryptsetup luksOpen /dev/sdX1 usb1 sudo mount /dev/mapper/usb1 /media/crypt |
Hierbei muss wiederum anstelle von X1 die konkrete Device-Bezeichnung angegeben werden. Sowohl der beim Öffnen der Partition vergebene Crypt-Name als auch der beim Mounten festgelegte Einhänge-Punkt sind frei wählbar. Das Aushängen einer – von keinem Programm benutzten – LUKS-Partition erfolgt durch ein Anklicken des Datenträger-Icons auf dem Desktop mit der rechten Maustaste oder in einem Shell-Fenster nach folgendem Schema:
sudo umount /media/crypt sudo cryptsetup luksClose /dev/mapper/usb1 |
Auto Mount – Damit Server die USB Festplatte automatisch Moute kann folgende schritte gemacht werden.
# mit Befehl wir eine Schlüsse erzeugte und unter root Verzeichnis gespeichert dd if=/dev/urandom of=/root/usb_secret_key bs=512 count=8 cryptsetup -v luksAddKey /dev/sdX1 /root/usb_secret_key sudo cryptsetup luksDump /dev/sdX1 # To verify that the key is working, the following command can be executed manually cryptsetup -v luksOpen /dev/sdX1 usb1 --key-file=/root/usb_secret_key mount /dev/mapper/usb2 /mnt/crypt/ sudo cryptsetup luksDump /dev/sdd1 | grep "UUID" cryptsetup -v luksClose usb2 |
Using the UUID and the key file name, the volume can be added to the crypttab. Edit the /etc/crypttab configuration file and add the encrypted volume in the following format.
cat /etc/crypttab
# <target name> <source device> <key file> <options> usb1 UUID=1aa4eb77-bd42-4165-a7c3-adcf2e98d412 /root/usb_secret_key luks usb2 UUID=b0f2dfed-231c-47fe-8089-b1229febdeca /root/usb_secret_key luks |
Danach kann Einbindung automatisch gestartet oder gestoppt werden.
chmod 600 /root/disk_secret_key sudo cryptdisks_start usb1 sudo cryptdisks_stop usb1 |
Anzeigen welche USB Festlatte an System angeschlossen ist:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #!/bin/bash usbuuid=`blkid | grep crypto | awk '{print $2}' | sed 's/"//g'` crypttab=`grep -Ev '^(#|$)' /etc/crypttab | grep usb1 | awk '{print $2}'` echo "$usbuuid" echo "$crypttab" if [ "$usbuuid" == "$crypttab" ] then echo "usb1" cryptdisks_start usb1 mount /dev/mapper/usb1 /mnt/usb if [ -d /mnt/usb/lost+found ] then rsync -av -H --delete /backup /mnt/usb fi /bin/bash /backup/etc/usb/me.usb.sh sleep 4 umount /mnt/usb cryptdisks_stop usb1 echo "exit" else echo "usb2" cryptdisks_start usb2 mount /dev/mapper/usb2 /mnt/usb if [ -d /mnt/usb/lost+found ] then rsync -av -H --delete /backup/ /mnt/usb/backup/ fi /bin/bash /backup/etc/usb/me.usb.sh sleep 4 umount /mnt/usb fi |
