Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung | ||
thoschwiki:linux:ubuntumatebtrfsencrypted [23.11.2020 14:58] thosch Dokumentation bis Ende Vorarbeiten |
thoschwiki:linux:ubuntumatebtrfsencrypted [28.08.2022 17:58] (aktuell) thosch Umstellung Links auf mutschler.dev |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Ubuntu Mate mit verschlüsseltem | + | ====== Ubuntu Mate 20.04 auf Btrfs mit Verschlüsselung |
- | Bei der Installation soll ein //Ubuntu Mate 20.04.1// in ein veschlüsseltes | + | Bei der Installation soll ein //Ubuntu Mate 20.04.1// in einem // |
- | Da // | + | Da //Btrfs// (noch?) keinen eigenen Verschlüsselungsmechanismus hat, wird [[ubuntuusers> |
- | ===== Ausgangslage ===== | + | Das Installationstool // |
+ | Grundlage für das Vorgehen ist eine [[https:// | ||
+ | |||
+ | |||
+ | ===== Hardware ===== | ||
+ | |||
+ | Die Installation soll auf einem schon in Ehren ergrauten // | ||
+ | |||
+ | 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 // | ||
+ | | /dev/sda2 | ca. 446 GiB | root-Filesystem der neuen Installation | cryptdata | | ||
+ | | /dev/sda3 | 10 GiB | Swap | cryptswap | | ||
===== Vorarbeiten ===== | ===== Vorarbeiten ===== | ||
Zeile 19: | Zeile 32: | ||
cryptsetup luksFormat --type=luks1 /dev/sda2 | cryptsetup luksFormat --type=luks1 /dev/sda2 | ||
- | An dieser Stelle wird die künftig zu verwendende Passphrase | + | An dieser Stelle wird die künftig zu verwendende Passphrase |
+ | |||
+ | <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 [[# | ||
+ | </ | ||
cryptsetup luksOpen /dev/sda2 cryptdata | cryptsetup luksOpen /dev/sda2 cryptdata | ||
- | Nach der Eingabe der Passphrase sollte die folgende Ausgabe erscheinen: | + | Die eben vorgegebene |
+ | |||
+ | Eine kurze Kontrolle: | ||
+ | |||
+ | ls / | ||
+ | |||
+ | Es sollte die folgende | ||
control | control | ||
+ | |||
+ | Es wurde das zusätzliche Volume angelegt. | ||
Im nächsten Schritt wird das Btrfs-Filesystem erstellen: | Im nächsten Schritt wird das Btrfs-Filesystem erstellen: | ||
Zeile 31: | Zeile 57: | ||
mkfs.btrfs / | mkfs.btrfs / | ||
- | An der Stelle ist darauf hinzuweisen, | + | < |
+ | |||
+ | ==== Mount-Option für SSD anpassen (Optional) ==== | ||
Da die Installation auf einer SSD erfolgt, können/ | Da die Installation auf einer SSD erfolgt, können/ | ||
Zeile 58: | Zeile 87: | ||
* Zeite 56: < | * Zeite 56: < | ||
- | Sofern man im vorherigen Schritt Anpassungen an den Optionen vorgenommen hat (hier : '' | + | <note important> |
+ | |||
+ | ===== Installation durchführen ===== | ||
+ | |||
+ | Für die eigentliche Installation kann das Installationstool // | ||
+ | |||
+ | ubiquity --no-bootloader | ||
+ | |||
+ | Entsprechend dem obigen Layout der SSD sind bei den zu verwendenden Partitionen die folgenden Vorgaben zu machen: | ||
+ | |||
+ | ^ Gerät ^ Formieren als ^ Mountpoint ^ | ||
+ | | ''/ | ||
+ | | ''/ | ||
+ | |||
+ | Am Ende der Installation startet mn **nicht** ins das frisch intsallierte system, sondern lässt das Fenster des Installationsprogrammes offen oder wählt //Weiter ausprobieren// | ||
+ | |||
+ | ===== Nacharbeiten ===== | ||
+ | |||
+ | Nach der eigentlichen Installation sind sind noch Anpassungen am Krypto-Setup vorzunehmen und der Bootloader einzurichten. | ||
+ | |||
+ | Als erste Schritt wechselt man in eine // | ||
+ | |||
+ | mount -o subvol=@, | ||
+ | |||
+ | mount -o subvol=@home, | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done | ||
+ | |||
+ | sudo cp / | ||
+ | |||
+ | sudo chroot /mnt | ||
+ | |||
+ | |||
+ | Eine kurze Kontrolle, ob alles richtig steht: | ||
+ | |||
+ | Alles richtig gemountet? | ||
+ | |||
+ | mount -av | ||
+ | |||
+ | Ergebnis: | ||
+ | |||
+ | / : ignoriert | ||
+ | /home : bereits eingehängt | ||
+ | none : ignoriert | ||
+ | |||
+ | Und die Btrfs-Subvolumes: | ||
+ | |||
+ | btrfs subvolume list / | ||
+ | |||
+ | Ergebnis: | ||
+ | |||
+ | ID 256 gen 160 top level 5 path @ | ||
+ | ID 257 gen 14 top level 5 path @home | ||
+ | |||
+ | < | ||
+ | |||
+ | ==== cryptab für das root-Filesystem erstellen ==== | ||
+ | |||
+ | Die Einträge für die ''/ | ||
+ | |||
+ | export UUIDVDA3=$(blkid -s UUID -o value /dev/sda2) #this is an environmental variable | ||
+ | |||
+ | echo " | ||
+ | |||
+ | Und die ''/ | ||
+ | |||
+ | cat / | ||
+ | |||
+ | Ausgabe: | ||
+ | |||
+ | cryptdata UUID=8a06f062-cd19-4b53-917e-65461f5e27c7 none luks | ||
+ | |||
+ | < | ||
+ | |||
+ | ==== Swap verschlüsseln ==== | ||
+ | |||
+ | Die Swap-Partition sollte auch verschlüsselt werden. Ich weiche hier vom [[https:// | ||
+ | |||
+ | Zunächst wird die entsprechende Partition ähnlich der root-Partition vorbereitet: | ||
+ | |||
+ | swapoff / | ||
+ | |||
+ | cryptsetup luksFormat --type=luks1 /dev/sda3 | ||
+ | |||
+ | An dieser Stelle wird die künftig zu verwendende Passphrase vorgegegeben. | ||
+ | |||
+ | cryptsetup luksOpen /dev/sda3 cryptswap | ||
+ | |||
+ | Die eben vorgegebene Passphrase ist einzugeben. | ||
+ | |||
+ | Eine kurze Kontrolle: | ||
+ | |||
+ | ls / | ||
+ | |||
+ | Es sollte die folgende //Ausgabe// erscheinen: | ||
+ | |||
+ | control | ||
+ | |||
+ | Es wurde ein zusätzliche Volume angelegt. | ||
+ | |||
+ | |||
+ | Im nächsten Schritt wird das Volume als Swap initialisiert: | ||
+ | |||
+ | mkswap / | ||
+ | |||
+ | Wiederum die Einträge für ''/ | ||
+ | |||
+ | export SWAPUUID=$(blkid -s UUID -o value / | ||
+ | |||
+ | echo " | ||
+ | |||
+ | Abschließend ist die geänderte Swap-Konfiguration noch in die ''/ | ||
+ | |||
+ | Editor mit ''/ | ||
+ | |||
+ | nano / | ||
+ | |||
+ | Entsprechende Zeile wie folgt ändern: | ||
+ | |||
+ | / | ||
+ | |||
+ | ==== Schlüsseldatei implementieren (Optional) ==== | ||
+ | |||
+ | Bei diesem Stand der Konfiguration würde(n) die Passphrase(n) mehrfach abgefragt werden. Um dies zu vermeiden kann man das Entschlüsseln beim Mounten auf eine Schlüsseldatei umstellen. Diese Schlüsseldatei liegt abgesichert im root-Filesystem, | ||
+ | |||
+ | Anlegen und Sichern der Schlüsseldatei im neuen Verzeichnis ''/ | ||
+ | |||
+ | mkdir /etc/luks | ||
+ | |||
+ | dd if=/ | ||
+ | |||
+ | chmod u=rx,go-rwx /etc/luks | ||
+ | |||
+ | chmod u=r,go-rwx / | ||
+ | |||
+ | Nun wird der Schlüssel jeweils in den zweiten // | ||
+ | |||
+ | cryptsetup luksAddKey /dev/sda2 / | ||
+ | |||
+ | cryptsetup luksAddKey /dev/sda3 / | ||
+ | |||
+ | <note tip> | ||
+ | |||
+ | Anschließend -- mit dem jeweiligen Gerätenamen -- prüfen, ob dies erfolgreich war: | ||
+ | |||
+ | cryptsetup luksDump /dev/sda2 | grep "Key Slot" | ||
+ | |||
+ | Erwartete // | ||
+ | |||
+ | 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 | ||
+ | |||
+ | Anschließend die gleiche Prüfung für ''/ | ||
+ | |||
+ | Weitere Sicherungsmaßnahmen: | ||
+ | |||
+ | echo " | ||
+ | |||
+ | echo " | ||
+ | |||
+ | Abschließend nocht die ''/ | ||
+ | |||
+ | sed -i " | ||
+ | |||
+ | Die ''/ | ||
+ | |||
+ | cryptdata UUID=8a06f062-cd19-4b53-917e-65461f5e27c7 / | ||
+ | cryptswap UUID=9bd99c32-3d25-42a3-95d5-d819b153d5b2 / | ||
+ | |||
+ | < | ||
+ | </ | ||
+ | |||
+ | ==== Bootloader GRUB installieren ==== | ||
+ | |||
+ | Abschließend it noch der Bootloader //GRUB// zu installieren. | ||
+ | |||
+ | Verschlüsselung //GRUB// aktivieren: | ||
+ | |||
+ | echo " | ||
+ | |||
+ | Kernelbezogene Software aktualisieren/ | ||
+ | |||
+ | apt install -y --reinstall grub-efi-amd64-signed linux-generic linux-headers-generic linux-generic-hwe-20.04 linux-headers-generic-hwe-20.04 | ||
+ | |||
+ | < | ||
+ | |||
+ | // | ||
+ | |||
+ | update-initramfs -c -k all | ||
+ | |||
+ | grub-install /dev/sda | ||
+ | |||
+ | update-grub | ||
+ | |||
+ | Prüfen, ob die rechte auf die ''/ | ||
+ | |||
+ | stat -L -c " | ||
+ | |||
+ | Erwartete // | ||
+ | |||
+ | -rw------- | ||
+ | |||
+ | Prüfen, ob Schlüsseldatei einthalten ist: | ||
+ | |||
+ | lsinitramfs / | ||
+ | |||
+ | Erwartete // | ||
+ | |||
+ | cryptroot/ | ||
+ | |||
+ | ===== Reboot ===== | ||
+ | |||
+ | An dieser Stelle sollte alles fertig sein und man kann das neue System zum ersten Mal booten. | ||
+ | |||
+ | Sofern noch in der Change-root-Umgebung ist, muss man diese verlassen: | ||
+ | |||
+ | exit | ||
+ | |||
+ | Dann der Reboot | ||
+ | |||
+ | reboot | ||
+ | |||
+ | Da ist der Moment zum Daumendrücken, | ||
+ | |||
+ | <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 ===== | ||
+ | |||
+ | 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 "&/ | ||
+ | |||
+ | 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 " | ||
+ | * die gewünschte Zeichenfolge in der " | ||
+ | |||
+ | 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: | ||
+ | |||
+ | # 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> | ||
+ | |||
+ | 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> | ||
+ | ===== Fazit ===== | ||
+ | Als ich die [[https:// | ||
+ | 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/ | + | * [[https:// |
* [[https:// | * [[https:// |