In dieser Doku geht es um die Installation einer Linux Distrubtion mit anschließender Festplattenverschlüsselung. Als Distrubtion habe ich mich für Kubuntu entschieden. Ich würde grundsätzlich jedem empfehlen erst einmal über die Live Funktion das OS zu testen, bevor man es installiert. Es gibt viele verschiedene Linux Distrubtionen, die sich in der Softwareauswahl, der Benutzeroberfläche und der Zielgruppe unterscheiden. Kubuntu ist eine benutzerfreundliche Distrubtion, die auf Ubuntu basiert und die KDE Plasma Desktop-Umgebung verwendet. Es bietet eine gute Balance zwischen Stabilität und Aktualität der Software, was es zu einer guten Wahl für Einsteiger und erfahrene Benutzer macht. Auf eine Linux neben Windows Installation gehe ich hier nicht ein, da es hier zu viele Fehlerquellen gibt, auf die ich hier nicht weiter eingehen will.
Ziel ist es die Festplatten mit dem LUKS zu versch,-entschlüsseln und den Schlüssel im TPM zu speichern. Dadurch wird die Festplatte automatisch beim Booten entschlüsselt, ohne dass ihr ein Passwort eingeben müsst. Das ist besonders praktisch, wenn ihr euren Laptop häufig benutzt und nicht jedes Mal ein Passwort eingeben wollt. Es bietet eine sehr gute Sicherheit, da der Schlüssel im TPM sicher gespeichert ist und nicht von einem Angreifer ausgelesen werden kann, Im Anschluss zeige ich euch noch wie ihr den bootloader (Grub) per Passwort schützt damit niemand unbefugt Änderungen am Bootprozess vornehmen kann.
⚠️ Verliert ihr das Passwort von Grub, könnt ihr bei Bootproblemen nicht mehr in die Recovery Konsole von Grub gelangen, um das Problem zu beheben. ⚠️
Wenn ihr eine Vollverschlüsselung mit TPM nutzen wollt, müsst ihr vor der Installation im Bios TPM aktivieren. Während der Installation müsst ihr dann die Option "Festplattenverschlüsselung" auswählen und das OS wie gewohnt installieren.
ls /dev/tpm*
/dev/tpm0 /dev/tpmrm0
which cryptsetup
/usr/sbin/cryptsetup
# Cryptsetup ist installiert, falls kein Pfad zurückgegeben wird, müsst ihr es installieren:
sudo apt install cryptsetup
...
lsblk -o | grep root
/dev/mapper/crypt_root: LABEL="root_crypt" UUID="ebf63db3-43b3-4c2a-a1ff-6913ba81xxxx" BLOCK_SIZE="4096" TYPE="ext4"
/dev/nvme0n1p3: UUID="239d2fb3-868e-4d90-879b-24204995xxxx" TYPE="crypto_LUKS" PARTLABEL="root_crypt" PARTUUID="a74b86d1-02ed-4772-aa8c-2349afb4xxxx"
# Die UUID der SSD ist die von /dev/nvme0n1p3 in diesem Fall: 239d2fb3-868e-4d90-879b-24204995xxxx
sudo vim /etc/crypttab
#
root_crypt UUID=239d2fb3-868e-4d90-879b-24204995xxxx none initramfs
# ist Git installiert?
which git
/usr/bin/git
# Git ist installiert, falls kein Pfad zurückgegeben wird, müsst ihr es installieren:
sudo apt install git
...
# TPM2LUKS installieren
git clone https://github.com/kelderek/TPM2-LUKS.git
cd TPM2-LUKS
chmod +x tpm2-luks-unlock.sh
sudo ./tpm2-luks-unlock.sh
vim /etc/crypttab
#
root_crypt UUID=239d2fb3-868e-4d90-879b-24204995xxxx none initramfs,keyscript=/usr/local/sbin/tpm2-getkey
sudo update-initramfs -k all -u && sudo update-grub
Der Grub Passwortschutz schützt den Bootloader vor unbefugten Zugriffen. Dadurch wird verhindert, dass jemand ohne das Passwort Änderungen am Bootprozess vornehmen kann, wie z. B. das Booten von einem anderen Betriebssystem oder das Ändern von Boot-Optionen. Es bietet eine zusätzliche Sicherheitsebene, insbesondere wenn ihr euren Laptop häufig benutzt und nicht jedes Mal ein Passwort eingeben wollt.
sudo grub-mkpasswd-pbkdf2
Enter password:
Reenter password:
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.XXXXXXXXXXXXXXXX
sudo vim /etc/grub.d/40_custom
# Am Ende der Datei hinzufügen:
set superusers="userxy"
password_pbkdf2 userxy grub.pbkdf2.sha512.10000.XXXXXXXXXXXXXXXX
sudo update-initramfs -k all -u && sudo update-grub
sudo vim /etc/grub.d/10_linux
# Suchen nach der Zeile:
...
CLASS="--class gnu-linux --class gnu --class os"
...
# Ändern nach:
...
CLASS="--class gnu-linux --class gnu --class os --unrestricted"
...
sudo update-initramfs -k all -u && sudo update-grub
sudo mv /etc/xdg/plasma-workspace/env/ksshaskpass.sh /etc/xdg/plasma-workspace/env/ksshaskpass.sh.disabled