Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:linuxclient:home_verschluesselung]] 

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
anwenderwiki:linuxclient:home_verschluesselung [2022/02/10 21:56] – [Verschlüsselung des home-Verzeichnisses] martin.resanwenderwiki:linuxclient:home_verschluesselung [2022/03/13 10:29] (aktuell) tobias
Zeile 7: Zeile 7:
   - **systemd-homed** - für home-Verzeichnisse (in Entwicklung)   - **systemd-homed** - für home-Verzeichnisse (in Entwicklung)
 Zusätzlich zum home sollte auch die swap-Auslagerung (falls vorhanden) und das /tmp-Verzeichnis verschlüsselt werden. Zusätzlich zum home sollte auch die swap-Auslagerung (falls vorhanden) und das /tmp-Verzeichnis verschlüsselt werden.
 +
 +
 +===== Alternative 1: Verschlüsselung eines home-Verzeichnisses mit ecrptfs =====
  
 Da das Betriebssystem Ubuntu und die home-Partition bei meiner Konfiguration (Sync mit LINBO) auch unverschlüsselte Daten enthalten, kam nur die Verschlüsselung ecryptfs in Frage. Da das Betriebssystem Ubuntu und die home-Partition bei meiner Konfiguration (Sync mit LINBO) auch unverschlüsselte Daten enthalten, kam nur die Verschlüsselung ecryptfs in Frage.
Zeile 12: Zeile 15:
  
  
-===== Verschlüsselung eines home-Verzeichnisses mit ecrptfs ===== +Am einfachsten ist es die Verschlüsselung beim Neuanlegen eines Benutzers gleich mit zu  installieren. Bei Anmeldung an Ubuntu wird dann das Anmeldepasswort auch zum Entsprerren einer Passphrase verwendet und mit der Passphrase das home entschlüsselt.\\
-Am einfachsten ist es die Verschlüsselung beim Neuanlegen eines Benutzers gleich mit zu installieren. Bei Anmeldung an Ubuntu wird dann das Anmeldepasswort auch zum Entsprerren einer Passphrase verwendet und mit der Passphrase das home entschlüsselt.\\+
 Verschlüsselung installieren: Verschlüsselung installieren:
   sudo apt install ecryptfs-utils cryptsetup   sudo apt install ecryptfs-utils cryptsetup
Zeile 51: Zeile 53:
 **Problem:** Das ''/tmp''-Verzeichnis hat hier eine maximale Größe von 300 MB - beim einem großen Update des Systems brach dieses bei mir ab, da der update-Prozess in ''/tmp'' nicht genügend Speicherplatz für alle neuen Pakete hatte. Ggf. die Größe der Container-Datei verändern. **Problem:** Das ''/tmp''-Verzeichnis hat hier eine maximale Größe von 300 MB - beim einem großen Update des Systems brach dieses bei mir ab, da der update-Prozess in ''/tmp'' nicht genügend Speicherplatz für alle neuen Pakete hatte. Ggf. die Größe der Container-Datei verändern.
  
-===== Links (Stand Feb'2022) ====+==== Links (Stand Feb'2022) ====
 https://wiki.ubuntuusers.de/ecryptfs/Einrichten/ \\ https://wiki.ubuntuusers.de/ecryptfs/Einrichten/ \\
 https://gist.github.com/intrd/46c7d087a08386b17da47e69bf5cab54 \\ https://gist.github.com/intrd/46c7d087a08386b17da47e69bf5cab54 \\
 https://wiki.ubuntuusers.de/LUKS/ \\ https://wiki.ubuntuusers.de/LUKS/ \\
 https://curius.de/2016/01/das-verhalten-entscheidet-ueber-die-wahl-der-verschluesselungsmethode/ https://curius.de/2016/01/das-verhalten-entscheidet-ueber-die-wahl-der-verschluesselungsmethode/
 +
 +===== Alternative 2: Verschlüsselung des Home und tmp mit LUKS =====
 +
 +In meiner Variante wird das Unterverzeichnis eines Benutzers mit frei wählbarem Benutzernamen, z.B. `tobias` auf einer eigenen Partition verschlüsselt. Ebenso wird tmp als eigene Partition verschlüsselt.
 +
 +Ich partitioniere daher den Client so:
 +<code>
 +/dev/nvme0n1p1 260MB EFI (/boot)
 +/dev/nvme0n1p2 16MB reserved MS
 +/dev/nvme0n1p3 15 GB LINBO-Cache
 +/dev/nvme0n1p4 35 GB Ubuntuclient (inkl. home für linuxadmin & alex)
 +/dev/nvme0n1p5 1 GB  /tmp
 +/dev/nvme0n1p6 ca. 180 GB (Rest)  home-crypt
 +</code>
 +
 +
 +  * lokaler Vor-Installations-Benutzer ''alex'' (1066) wird angelegt - unverschlüsselt mit Passwort ''Muster!'', er bekommt sudo-Rechte für das turnkey-skript und die Linuxadmin-Umgebung
 +
 +  # groupadd -g 1066 alex
 +  # useradd -d /home/alex -k /home/linuxadmin -s /bin/bash -m -u 1066 -N -g 1066 alex
 +  # echo 'alex:Muster!' | chpasswd
 +
 +  * ''/var/tmp'' wird auf ''/tmp'' verlinkt und beim Boot automatisch immer neu verschlüsselt
 +
 +  mv /var/tmp/* /tmp/
 +  mv /var/tmp/.??* /tmp/
 +  rmdir /var/tmp/
 +  ln -s /tmp /var/tmp
 +  echo "tmp  /dev/nvme0n1p5 /dev/urandom tmp,cipher=aes-xts-plain64,size=256" >> /etc/crypttab
 +  echo "/dev/mapper/tmp /tmp ext4 defaults 0 2" >> /etc/fstab
 +
 +  * das turnkey-Skript auf dem Desktop von Alexander, das per sudo folgende Aktionen durchführt:
 +    * Abfrage von Benutzername und Passwort für das neue Konto (uid/gid: 1067)
 +    * Abfrage, ob ein Administrationsschlüssel hinterlegt werden sollte (''/admin.key'')
 +    * Benutzer- und Gruppe werden angelegt: $newuser mit $newpw
 +
 +  # groupadd -g 1067 $newuser
 +  # useradd -m -d /home/${newuser} -s /bin/bash -N -g 1067 -G $othergroups -k /home/linuxadmin $newuser 
 +  # echo '$newuser:$newpw' | chpasswd
 +
 +  * Containerverschlüsselung der Homepartition erstellt
 +
 +  # cryptsetup luksFormat --use-random -c aes-xts-plain64 -s 512 -h sha512 -y /dev/nvme0n1p6 
 +    
 +  WARNUNG!
 +  ========
 +  Hiermit werden die Daten auf »/dev/nvme0n1p6« unwiderruflich überschrieben.
 +  
 +  Sind Sie sicher? (Tippen Sie 'yes' in Großbuchstaben): YES
 +  Geben Sie die Passphrase für »/dev/nvme0n1p6« ein: <starkes Passwort>
 +  Passphrase bestätigen: <starkes Passwort>
 +
 +  * Eventuell Administrationsschlüssel hinterlegen:
 +
 +  #  printf $newpw | cryptsetup luksAddKey /dev/nvme0n1p6 /admin.key
 + 
 +  * Container öffnen und formatieren
 +
 +  # printf $newpw | cryptsetup luksOpen /dev/nvme0n1p6 cryptohome
 +  # mkfs.ext4 /dev/mapper/cryptohome
 +
 +  * sudo-Rechte bei Wunsch vergeben
 +  * Deaktivierung von Konto "alex", Löschen des Adminkeys auf dem Gerät: ''/admin.key''
 +  * Damit das Home-Verzeichnis bei der Anmeldung auch geöffnet und als /home/$newuser gemountet wird, verwende ich momentan (noch) pam_mount nach folgender Vorlage: Der Vorlagennutzer "wilhelm", der durch $newuser ersetzt werden sollte:  
 +
 +<code>
 +
 +<?xml version="1.0" encoding="utf-8" ?>
 +<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
 +<pam_mount>
 +  <debug enable="0" />
 +  <volume user="wilhelm" fstype="crypt" path="/dev/nvme0n1p6" mountpoint="/home/wilhelm" options="crypto_name=cryptohome,allow_discard,fstype=ext4">
 +    <user>                                                                                                                                                    
 +      wilhelm                                                                                                                                                 
 +    </user>
 +  </volume>
 +
 +    <mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />
 +    <mntoptions require="nosuid,nodev" />
 +   <logout wait="1000" hup="0" term="1" kill="1" />
 +    <mkmountpoint enable="1" remove="true" />
 +</pam_mount>
 +
 +</code>
 +
 +==== Skriptvorschlag ====
  
  
 +==== Links (Stand: März 2022) ====
 +  * Siehe Diskussion und Skriptvorschlag hier: https://ask.linuxmuster.net/t/dienstgeraete-verschluesselung-des-home/8477/21?u=tobias
 +  * https://wiki.archlinux.org/title/Dm-crypt/Encrypting_a_non-root_file_system
 +  * https://unix.stackexchange.com/questions/119805/how-can-i-get-a-hash-of-the-luks-master-key?rq=1
 +  * https://wiki.archlinux.org/title/Dm-crypt/Mounting_at_login (für eine Alternative zu pam_mount)
 +  * https://wiki.archlinux.org/title/Pam_mount (für pam_mount)
 [[anwenderwiki:linuxclient:home_verschluesselung]] anwenderwiki/linuxclient/home_verschluesselung.txt · Zuletzt geändert: 2022/03/13 10:29 von tobias