Benutzer-Werkzeuge

Webseiten-Werkzeuge


thoschwiki:linux:ubuntumatebtrfsencrypted

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
thoschwiki:linux:ubuntumatebtrfsencrypted [23.11.2020 19:36]
thosch Bis Abschnitt 'Reboot' erstellt.
thoschwiki:linux:ubuntumatebtrfsencrypted [27.06.2021 19:22] (aktuell)
thosch URL 'www.mutschler.eu' -> 'mutschler.eu' wegen Zertifikatsproblmen
Zeile 1: Zeile 1:
-====== Ubuntu Mate mit verschlüsseltem Btrfs ======+====== Ubuntu Mate 20.04 auf Btrfs mit Verschlüsselung ======
  
-<note>Die Seite befindet sich im Aufbau.</note>+Bei der Installation soll ein //Ubuntu Mate 20.04.1// in einem //[[wpde>Btrfs|BTRFS-Filesystem]]// installiert und das System verschlüssel werden.
  
-Bei der Installation soll ein //Ubuntu Mate 20.04.1// in ein veschlüsseltes //[[wpde>Btrfs|BTRFS-Filesystem]]// installiert werdenDer Installationstool //[[ubuntuusers>Ubiquity]]// unterstützt die Art der Installation nicht aktiv. Daher sind diverse Vorund Nacharbeiten notwendig.+Da //Btrfs// (noch?) keinen eigenen Verschlüsselungsmechanismus hat, wird [[ubuntuusers>LUKS]] als Verschlüsselungsebene benutzt, auf der dann das //Btrfs-Filesystem// aufgesetzt wirdDa //[[ubuntuusers>GRUB]]// das Entschlüsseln von LUKS-Partitionen im Format //luks1// beherrscht, erfolgt die Verschlüsselung im //luks1//-Format.
  
-Da //[[ubuntuusers>GRUB]]// das Entschlüsseln von [[ubuntuusers>LUKS|LUKS-Partitionen]] im Format //luks1// beherrscht, erfolgt die Verschlüsselung im //luks1//-Format.+Das Installationstool //[[ubuntuusers>Ubiquity]]// unterstützt diese Art der Installation nicht aktiv. Daher sind manuelle Einriffe vor und nach der eigentlichen Installation notwendig.
  
-===== Ausgangslage =====+Grundlage für das Vorgehen ist eine [[https://mutschler.eu/linux/install-guides/ubuntu-btrfs/|Anleitung von Willi Mutschler]].
  
  
 +
 +===== Hardware =====
 +
 +Die Installation soll auf einem schon in Ehren ergrauten //[[https://thinkwiki.de/R500|Lenovo Thinkpad R500]]// (2008-2010 gebaut) mit 8 GiB RAM.
 +
 +Als Massenspeicher ist eine SDD mit 500 GB verbaut, die wie folgt aufgeteilt ist:
 +
 +^ Partition ^ Größe ^ Verwendung ^ spätere LUKS-Bezeichnung ^
 +| /dev/sda1 |  ca. 9 GiB | bestehendes //[[wp>BunsenLabs|Bunsen Labs Linux]]// (bleibt bestehen) | ohne |
 +| /dev/sda2 |  ca. 446 GiB | root-Filesystem der neuen Installation | cryptdata |
 +| /dev/sda3 |  10 GiB | Swap | cryptswap |
  
 ===== Vorarbeiten ===== ===== Vorarbeiten =====
Zeile 21: Zeile 32:
   cryptsetup luksFormat --type=luks1 /dev/sda2   cryptsetup luksFormat --type=luks1 /dev/sda2
  
-An dieser Stelle wird die künftig zu verwendende Passphrase vorgegegeben.+An dieser Stelle wird die künftig zu verwendende Passphrase vorgegeben. 
 + 
 +<note warning> 
 +In der Bootphase, in der die Passphrase abgefragt wird, **ist die Tastatur noch im US-Layout**. Dies kann bei der Eingabe der Passphrase zu Problemen führen, wenn Zeichen verwendet werden, die in den verwendeten Tastatur-Layouts auf unterschiedlichen Tasten liegen (siehe Abschnitt [[#probleme_mit_der_tastaturbelegung|Probleme mit der Tastaturbelegung]]). 
 +</note> 
  
   cryptsetup luksOpen /dev/sda2 cryptdata   cryptsetup luksOpen /dev/sda2 cryptdata
Zeile 94: Zeile 110:
  
   mount -o subvol=@,ssd,noatime,space_cache,commit=120,compress=zstd /dev/mapper/cryptdata /mnt   mount -o subvol=@,ssd,noatime,space_cache,commit=120,compress=zstd /dev/mapper/cryptdata /mnt
 +
   mount -o subvol=@home,ssd,noatime,space_cache,commit=120,compress=zstd /dev/mapper/cryptdata /mnt/home   mount -o subvol=@home,ssd,noatime,space_cache,commit=120,compress=zstd /dev/mapper/cryptdata /mnt/home
  
Zeile 99: Zeile 116:
  
   for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done   for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
 +
   sudo cp /etc/resolv.conf /mnt/etc/   sudo cp /etc/resolv.conf /mnt/etc/
 +
   sudo chroot /mnt   sudo chroot /mnt
  
Zeile 131: Zeile 150:
  
   export UUIDVDA3=$(blkid -s UUID -o value /dev/sda2) #this is an environmental variable   export UUIDVDA3=$(blkid -s UUID -o value /dev/sda2) #this is an environmental variable
 +
   echo "cryptdata UUID=${UUIDVDA3} none luks" >> /etc/crypttab   echo "cryptdata UUID=${UUIDVDA3} none luks" >> /etc/crypttab
  
Zeile 145: Zeile 165:
 ==== Swap verschlüsseln ==== ==== Swap verschlüsseln ====
  
-Die Swap-Partition sollte auch verschlüsselt werden. Ich weiche hier vom [[https://www.mutschler.eu/linux/install-guides/ubuntu-btrfs/|Vorgehen von Willi Mutschler]] mit einem zufälligen Schlüssel ab, weil ich ggf. //Hibernate// oder //Suspend-to-Disk// nutzen möchte.+Die Swap-Partition sollte auch verschlüsselt werden. Ich weiche hier vom [[https://mutschler.eu/linux/install-guides/ubuntu-btrfs/|Vorgehen von Willi Mutschler]] mit einem zufälligen Schlüssel ab, weil ich ggf. //Hibernate// oder //Suspend-to-Disk// nutzen möchte.
  
 Zunächst wird die entsprechende Partition ähnlich der root-Partition vorbereitet: Zunächst wird die entsprechende Partition ähnlich der root-Partition vorbereitet:
  
   swapoff /dev/sda3   # swap deaktivieren, falls aktiv   swapoff /dev/sda3   # swap deaktivieren, falls aktiv
 +
   cryptsetup luksFormat --type=luks1 /dev/sda3   cryptsetup luksFormat --type=luks1 /dev/sda3
  
Zeile 176: Zeile 197:
  
   export SWAPUUID=$(blkid -s UUID -o value /dev/sda3)   export SWAPUUID=$(blkid -s UUID -o value /dev/sda3)
 +
   echo "cryptswap UUID=${SWAPUUID} none luks" >> /etc/crypttab   echo "cryptswap UUID=${SWAPUUID} none luks" >> /etc/crypttab
      
Zeile 195: Zeile 217:
  
   mkdir /etc/luks   mkdir /etc/luks
 +
   dd if=/dev/urandom of=/etc/luks/boot_os.keyfile bs=4096 count=1   dd if=/dev/urandom of=/etc/luks/boot_os.keyfile bs=4096 count=1
 +
   chmod u=rx,go-rwx /etc/luks   chmod u=rx,go-rwx /etc/luks
 +
   chmod u=r,go-rwx /etc/luks/boot_os.keyfile   chmod u=r,go-rwx /etc/luks/boot_os.keyfile
  
Zeile 202: Zeile 227:
  
   cryptsetup luksAddKey /dev/sda2 /etc/luks/boot_os.keyfile   # /   cryptsetup luksAddKey /dev/sda2 /etc/luks/boot_os.keyfile   # /
 +
   cryptsetup luksAddKey /dev/sda3 /etc/luks/boot_os.keyfile   # swap   cryptsetup luksAddKey /dev/sda3 /etc/luks/boot_os.keyfile   # swap
  
-<note tip>Sofern an dieser Stelle die Meldung <code>Kein Schlüssel mit dieser Passphrase verfügbar.</code> ausgegeben wird, wurde die Passphrase nicht korrekt eingegeben.</note>+<note tip>Sofern nach dem Ausführen eines der beiden Befehle die Meldung <code>Kein Schlüssel mit dieser Passphrase verfügbar.</code> ausgegeben wird, wurde die Passphrase nicht korrekt eingegeben.</note>
  
 Anschließend -- mit dem jeweiligen Gerätenamen -- prüfen, ob dies erfolgreich war: Anschließend -- mit dem jeweiligen Gerätenamen -- prüfen, ob dies erfolgreich war:
Zeile 220: Zeile 246:
   Key Slot 6: DISABLED   Key Slot 6: DISABLED
   Key Slot 7: DISABLED   Key Slot 7: DISABLED
 +
 +Anschließend die gleiche Prüfung für ''/dev/sda3'' durchführen.
  
 Weitere Sicherungsmaßnahmen: Weitere Sicherungsmaßnahmen:
  
   echo "KEYFILE_PATTERN=/etc/luks/*.keyfile" >> /etc/cryptsetup-initramfs/conf-hook   echo "KEYFILE_PATTERN=/etc/luks/*.keyfile" >> /etc/cryptsetup-initramfs/conf-hook
 +
   echo "UMASK=0077" >> /etc/initramfs-tools/initramfs.conf   echo "UMASK=0077" >> /etc/initramfs-tools/initramfs.conf
  
Zeile 255: Zeile 284:
  
   update-initramfs -c -k all   update-initramfs -c -k all
 +
   grub-install /dev/sda   grub-install /dev/sda
 +
   update-grub   update-grub
  
Zeile 286: Zeile 317:
   reboot   reboot
  
-Da ist der Moment zum Daumendrücker, Beten, whatever...+Da ist der Moment zum Daumendrücken, Beten, whatever..
 + 
 +<note warning> 
 +In der Bootphase, in der die Passphrase abgefragt wird, **ist die Tastatur noch im US-Layout**. Dies kann bei der Eingabe der Passphrase zu Problemen führen, wenn Zeichen verwendet werden, die in den verwendeten Tastatur-Layouts auf unterschiedlichen Tasten liegen (siehe Abschnitt [[#probleme_mit_der_tastaturbelegung|Probleme mit der Tastaturbelegung]]). 
 +</note> 
 + 
 +===== Probleme mit der Tastaturbelegung ===== 
 + 
 +In der Bootphase, in der die Passphrase abgefragt wird, **ist die Tastatur noch im US-Layout**. Dies kann bei der Eingabe der Passphrase zu Problemen führen, wenn Zeichen verwendet werden, die in den verwendeten Tastatur-Layouts auf unterschiedlichen Tasten liegen. 
 + 
 +Neben den üblichen Verdächtigen (y, z sowie Umlaute ä, ö, ü und ?) betrifft es die meisten der für die Verwendung in Passworten immer wieder empfohlenen Sonderzeichen (beispielsweise "&/=?#*+-<>()[]{}", vgl [[wpde>Tastaturbelegung#USA|Tastaturbelegung USA]]). 
 + 
 +Hierfür gibt es drei Lösungsstrategien: 
 + 
 +  * Die problematischen Zeichen meiden (nur Buchstaben außer y und z sowie Zahlen verwenden) 
 +  * die Lage der problematischen Zeichen im US-Layout merken und entsprechend "blind" tippen 
 +  * die gewünschte Zeichenfolge in der "US-Tippweise" als zusätzliche Passphrase((LUKS erlaubt 8 Passphrase bzw. Schlüssel pro Volume)) vorgeben (z.B. "yulu>echo" statt "zulu:echo")  
 + 
 +Sofern man eine zusätzliche Passphrase hinzufügen möchte, kann man zuerst den Zustand der Key-Stores ermitteln: 
 + 
 +  # cryptsetup luksDump /dev/sda2 | grep "Key Slot" 
 +  Key Slot 0: ENABLED 
 +  Key Slot 1: DISABLED 
 +  Key Slot 2: DISABLED 
 +  Key Slot 3: DISABLED 
 +  Key Slot 4: DISABLED 
 +  Key Slot 5: DISABLED 
 +  Key Slot 6: DISABLED 
 +  Key Slot 7: DISABLED 
 + 
 +Die zusätzliche Passphrase wird dann folgt hinzugefügt:((Sofern nicht bereits ein Konsole mit root-Rechten geöffnet ist, muss ein ''sudo'' vorangestellt werden)): 
 + 
 +  # cryptsetup luksAddKey /dev/sda2 
 +  Geben Sie irgendeine bestehende Passphrase ein:  
 +  Geben Sie die neue Passphrase für das Schlüsselfach ein:  
 +  Passphrase bestätigen:  
 + 
 +<note tip>Sofern nach der Abfrage der bestehenden Passphrase die Meldung <code>Kein Schlüssel mit dieser Passphrase verfügbar.</code> ausgegeben wird, wurde die Passphrase nicht korrekt eingegeben.</note> 
 + 
 +Abschließend noch den Zustand des Key-Stores prüfen: 
 + 
 +  # cryptsetup luksDump /dev/sda2 | grep "Key Slot" 
 +  Key Slot 0: ENABLED 
 +  Key Slot 1: ENABLED 
 +  Key Slot 2: DISABLED 
 +  Key Slot 3: DISABLED 
 +  Key Slot 4: DISABLED 
 +  Key Slot 5: DISABLED 
 +  Key Slot 6: DISABLED 
 +  Key Slot 7: DISABLED 
 + 
 +Es sollte nun ein Key-Slot mehr belegt sein. 
 + 
 +<note tip>Wurde für die verschlüsselte Swap-Partition eine [[#schluesseldatei_implementieren_optional|Schlüsseldatei eingerichtet]], dann ist es ausreichend nur für das root-Filesystem eine weitere Passphrase vorzugeben.</note> 
 +===== Fazit ===== 
 + 
 +Als ich die [[https://mutschler.eu/linux/install-guides/ubuntu-btrfs/|Anleitung von Willi Mutschler]] das erste Mal durchlas, war ich erschlagen und ging davon aus, dass ich das Konzept -- wenn überhaupt -- nur 1:1, Zeile für Zeile nachbauen könnte. 
 + 
 +Da in dem Artikel ausreichend Hintergrundinformationen enthalten sind ((Die im vorliegenden Artikel teilweise fehlen.)), konnte ich mir Stück für die Stück die Thematik erarbeiten. Dazu trug sicherlich bei, dass ich parallel mein Vorgehen im vorliegenden Artikel dokumentierte und es dafür sprachlich aufbereiten musste. 
 + 
 +Gegen Ende war mir dann schon möglich, ein eigene, von der Vorlage abweichendes Vorgehen für die Swap-Partition zu erarbeiten und umzusetzen.
  
 ===== Quellen ===== ===== Quellen =====
  
-  * [[https://www.mutschler.eu/linux/install-guides/ubuntu-btrfs/|Willi Mutschler -- Ubuntu 20.04 with btrfs-luks full disk encryption including /boot and auto-apt snapshots with Timeshift]]+  * [[https://mutschler.eu/linux/install-guides/ubuntu-btrfs/|Willi Mutschler -- Ubuntu 20.04 with btrfs-luks full disk encryption including /boot and auto-apt snapshots with Timeshift]]
   * [[https://cryptsetup-team.pages.debian.net/cryptsetup/encrypted-boot.html|Full disk encryption, including /boot: Unlocking LUKS devices from GRUB]]   * [[https://cryptsetup-team.pages.debian.net/cryptsetup/encrypted-boot.html|Full disk encryption, including /boot: Unlocking LUKS devices from GRUB]]
thoschwiki/linux/ubuntumatebtrfsencrypted.1606156592.txt.gz · Zuletzt geändert: 23.11.2020 19:36 von thosch