Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung Nächste Überarbeitung Beide Seiten, nächste Überarbeitung | ||
thoschwiki:linux:ubuntumatebtrfsencrypted [23.11.2020 16:55] thosch Zwischenstand |
thoschwiki:linux:ubuntumatebtrfsencrypted [27.06.2021 17:06] thosch Befehlsequenzen in Einzelzeilen aufgebrochen. |
||
---|---|---|---|
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 einem //[[wpde>Btrfs|BTRFS-Filesystem]]// |
- | Bei der Installation soll ein //Ubuntu Mate 20.04.1// in ein veschlüsseltes | + | Da //Btrfs// (noch?) keinen eigenen Verschlüsselungsmechanismus hat, wird [[ubuntuusers>LUKS]] als Verschlüsselungsebene benutzt, auf der dann das //Btrfs-Filesystem// |
- | Da // | + | Das Installationstool |
- | ===== Ausgangslage ===== | + | 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 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 | + | 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 86: | Zeile 110: | ||
mount -o subvol=@, | mount -o subvol=@, | ||
+ | |||
mount -o subvol=@home, | mount -o subvol=@home, | ||
Zeile 91: | 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 / | sudo cp / | ||
+ | |||
sudo chroot /mnt | sudo chroot /mnt | ||
Zeile 118: | Zeile 145: | ||
< | < | ||
- | ==== cryptab erstellen ==== | + | ==== cryptab |
- | Die Einträge für die '' | + | Die Einträge für die '' |
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 " | echo " | ||
Zeile 133: | Zeile 161: | ||
cryptdata UUID=8a06f062-cd19-4b53-917e-65461f5e27c7 none luks | cryptdata UUID=8a06f062-cd19-4b53-917e-65461f5e27c7 none luks | ||
- | (Die angezeigte [[wpde> | + | < |
==== Swap verschlüsseln ==== | ==== Swap verschlüsseln ==== | ||
- | Die Swap-Partition sollte auch verschlüsselt werden. Ich weiche hier vom [[https:// | + | 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 /dev/sda3) | export SWAPUUID=$(blkid -s UUID -o value /dev/sda3) | ||
+ | |||
+ | echo " | ||
| | ||
+ | Abschließend ist die geänderte Swap-Konfiguration noch in die ''/ | ||
+ | |||
+ | Editor mit ''/ | ||
+ | |||
+ | nano /etc/fstab | ||
+ | |||
+ | 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 ===== |