Leserartikel [How-To] Arch Linux installieren (verschlüsselt, gehärtet, spieletauglich, modular)

@csch92 Das meiste aus dem Setup Guide bezieht sich nicht auf die Installation von Arch Linux.
Es werden eben auch Themen wie:
  • UEFI-Einstellungen
  • Windows-Kompatibilität
  • Prüfen der "Gesundheit" der SSD/HDD
  • Ändern der Sector/Page size der SSD/HDD für bessere Leistung
  • Audio Latenz-Optimierung anhand der eigenen Hardware
  • und vieles mehr
behandelt.

Da sind einige Schritte dabei, die eine Distro normalerweise nicht beachtet, wenn v.a. manuelles Eingreifen bzw. eigenes Wissen erforderlich ist.
Und dennoch kannst du jenes auf jeder x-beliebigen Distro anwenden.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Deinorius und Beelzebub23

Changelog​

  • Validated installation procedure up to and including chapter 9
    • Update: Small fixes & improvements
  • Overhaul: Trusted Platform Module (TPM2)
    … using the reworked systemd 262 implementation, see "Changes in the TPM Subsystem"
    … for measured boot & disk decryption using TPM2 PIN w/ lower entropy.
    It is recommended that you follow these steps. Also to fix the TPM errors.
  • Update: Snapper
    • New: For KDE: Integration of snapshots of the user's home
      … using KIO Snapshot
      … if you are snapshotting your home too
    • Update: Shortened snapper commands
If you like to support my work, you can that by donating e.g. ComputerBase Pro.
 
  • Gefällt mir
Reaktionen: Beelzebub23, Deinorius, Archivar und eine weitere Person
Wenn ich das richtig sehe, reicht Kapitel 5.10.1 um den neuerlichen TPM Fehler beim Boot wegzubekommen?

Dieser Kombination aus PIN+TPM2 (hat man ja auch bei Windows Hello) traue ich noch nicht so richtig. Bei meinem Heimrechner sehe ich da eher eine Schwächung. Denn wenn jemand die Festplatte in die Hände bekommt (Dieb), dann ja im ganzen Rechner komplett, inkl. dem TPM2.

Nachfrage: Für den measured boot, warum nicht einfach beim systemd-cryptenroll den Parameter --tpm2-pcrs= angeben? Auf die Frage bin ich nach einem Frage-Antwort-Spielchen mit einem künstlichen neuronalen Netzwerk gekommen. Im Standard bindet cryptenroll an keine PCRs.
 
Zuletzt bearbeitet: (Nachfrage ergänzt)
Spike S. schrieb:
Wenn ich das richtig sehe, reicht Kapitel 5.10.1 um den neuerlichen TPM Fehler beim Boot wegzubekommen?
Nur die neuen Fehler, aber nicht den Fehler "systemd-cryptsetup: No valid TPM2 token data found."

Spike S. schrieb:
Denn wenn jemand die Festplatte in die Hände bekommt (Dieb), dann ja im ganzen Rechner komplett, inkl. dem TPM2.
Dazu meine Info: Initially, you have 4 attempts to enter the TPM2 PIN, otherwise you can enter the passphrase
or the recovery key to decrypt the volume. If your attempts failed, TPM2 may go into dictionary
attack lock-out mode with reduced attempts.

TPM dient hier als 2FA. Wenn der Dieb die schwächere PIN nicht nach wenigen Versuchen richtig eingibt, muss dieser die stärkere Passphrase oder Recovery-Key herausfinden. Sprich, er wird die SSD/HDD ausbauen und bspw. den John the Ripper password cracker benutzen.

Und als Nutzer möchte man nicht unbedingt ein "langes & schweres" Passwort beim Booten jedes mal eingeben.

Spike S. schrieb:
Für den measured boot, warum nicht einfach beim systemd-cryptenroll den Parameter --tpm2-pcrs= angeben?
Aus dem Arch Wiki:
"With TPM2 it is possible to bind secrets, like the LUKS root decryption key, to a signed policy rather than raw PCR values. These policies add flexibility by allowing PCR values to vary, provided there is a valid PCR signature for these values which matches the public key enrolled with the secret. For instance, rather than simply tying the encryption key to the PCR7 value (which only checks that Secure Boot has not been disabled or tampered with) you can bind it to a PCR policy that verifies the booting of a known Unified kernel image (UKI), with all its components measured during the boot process. See systemd-cryptenroll(1) § TPM2 PCRs and policies."
Ein Secure Boot DBX Update ändert übrigens den PCR7-Wert.

Mit der Policy funktioniert standardmäßig die TPM PIN auch ohne Secure Boot.
 
Zuletzt bearbeitet:
Ich hatte bis vor zwei Wochen keine TPM Fehler, daher hatte 5.10.1 gereicht. Hatte aber noch 5.4 (Kernelsignierung) nachgeholt, bei der Gelegenheit.
Für TPM2 muss ich erstmal schauen, ob mein Board das hat und ob es aktiviert ist. Werde es dann aber noch umsetzen, falls ich TPM2 habe. Ja, das Modul ratelimited ja recht stark von selbst aus. Die LUKS Passworteingabe bremst vermutlich auch, nach einigen Fehlversuchen? Hatte es noch nie drauf ankommen lassen müssen :D

Mit den signed PCRs ist das dann also ein neuerer, "smarterer" Weg. Mit den alten PCRs direkt als Parameter, warnte mich die KI auch, dass das schnell fragil wird, bei zu vielen davon. Ein BIOS Update und ein neuer Kernel (je nach Auswahl natürlich) und schwupps, wird es nicht mehr akzeptiert.
Ich sehe es nur für mich als Heimanwender, nicht so gewinnbringend. Wenn man mir die Technik klaut, dann den ganzen Rechner inklusive Boot-Pfad. Und das ist äußerst unwahrscheinlich, das der Dieb dann mehr versucht, als mal kurz booten um zu gucken ob man was findet. Geht nicht, platt machen, verkaufen. Bin ja keine Person of interest.
Werde es aber früher oder später trotzdem einrichten, einfach weil man es kann :D

Danke für deine wiederkehrenden Updates zu dem Build und den Neuentwicklungen :)
 
  • Gefällt mir
Reaktionen: agon

Changelog​

  • Removed: Also snapshot the ESP
    And in "Restoring / (subvolume @) to its previous snapshot", the UKIs will be generated in chroot now. So remove the hook & backups:
    # rm /etc/pacman.d/hooks/95-efibackup.hook; rm -rf /.efibackup/;
  • Update: Automount keyfile encrypted disk
    System startup time is reduced because the system does not wait for the drive to mount
  • Removed: Steam > Update default compatibility tool (yearly)
    … since Proton Experimental is now the default tool
  • New: More Kernel Hardening > Disable kexec
    This is also required by EAC Linux v2

 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Deinorius, Raknar, h-the und 3 andere
KeepassXC 2.8 ist da und es gibt eine Änderung in der Konfiguration die wegen Firejail relevant ist. Die keepassxc.ini die unter ~/.cache/keepassxc lag und sich Einstellungen und letzte Datenbank gemerkt hatte gibt es nicht mehr. Stattdessen wird das jetzt unter ~/.local/state/keepassrc gespeichert (Config.cpp migriert von Cache nach XDG_STATE_HOME).
Man muss also entsprechende Einträge in seiner keepassxc.local hinzufügen (und die alten .cache löschen)
INI:
mkdir ${HOME}/.local/state/keepassxc
whitelist ${HOME}/.local/state/keepassxc
whitelist ${HOME}/.local/state/KeePassXCstaterc
 
  • Gefällt mir
Reaktionen: agon und Beelzebub23
firejail v0.9.82 ist nun in den Arch Repos mit den KeePassXC & Steam Fixes.
Code:
# Enable Whitelisting
## NOTE: You MUST store your database in ~/Documents/KeePassXC/<foo.kdbx>
mkdir ${HOME}/Documents/KeePassXC
whitelist ${HOME}/Documents/KeePassXC

## FireFox
mkdir ${HOME}/.config/mozilla/native-messaging-hosts
mkdir ${HOME}/.mozilla/native-messaging-hosts
mkfile ${HOME}/.config/mozilla/native-messaging-hosts/org.keepassxc.keepassxc_browser.json
mkfile ${HOME}/.mozilla/native-messaging-hosts/org.keepassxc.keepassxc_browser.json
whitelist ${HOME}/.config/mozilla/native-messaging-hosts/org.keepassxc.keepassxc_browser.json
whitelist ${HOME}/.mozilla/native-messaging-hosts/org.keepassxc.keepassxc_browser.json

## Basic
mkdir ${HOME}/.cache/keepassxc
mkdir ${HOME}/.config/keepassxc
mkdir ${HOME}/.local/state/keepassxc
whitelist ${HOME}/.cache/keepassxc
whitelist ${HOME}/.config/keepassxc
whitelist ${HOME}/.config/KeePassXCrc
whitelist ${HOME}/.local/state/keepassxc
include whitelist-common.inc


# Hardware Security Key (Nitrokey, YubiKey)
ignore private-dev
# Allow access to pcscd socket (Smartcards)
whitelist /run/pcscd
 
  • Gefällt mir
Reaktionen: Spike S.
@agon Weil ich gerade wieder deine "kurze" keepassxc.local sehe, Autostart (zumindest nicht aus KeepassXC heraus aktiviert) und Tray Icon nutzt du nicht? Den SSH-Agent auch nicht.
Weil, ohne Einträge zu diesen drei Themen funktionieren die alle nicht bei mir. Ich habe aber irgendwie im Hinterkopf, Tray Icon hast du trotzdem?
 
Ich lass mal meine zusätzlichen optionalen QoL Einstellungen da. Für das Auto-Type unter Wayland (geht mit 2.8 endlich), braucht es auch einen Eintrag in der .local. Autostart habe ich auskommentiert, weil ich mir dachte damit kann man im schlimmsten Fall mir eine Überraschung beim nächsten Systemstart bereiten. Daher nutze ich doch lieber den System Autostart in den Systemeinstellungen.
Code:
## Autostart ("Beim Systemstart starten" in den Einstellungen)
## disable-common.inc blacklistet ${HOME}/.config/autostart, blacklist gewinnt gegen whitelist -> noblacklist ist zwingend.
#noblacklist ${HOME}/.config/autostart
#mkdir ${HOME}/.config/autostart
#whitelist ${HOME}/.config/autostart

## Tray icon
dbus-user.talk org.kde.StatusNotifierWatcher

## Auto-Type unter Wayland (XDG RemoteDesktop Portal)
## Muss nach "dbus-user filter" aus dem Hauptprofil stehen, deshalb hier.
dbus-user.talk org.freedesktop.portal.Desktop

# SSH: KeePassXC schiebt die Keys nur ueber den Agent-Socket in den bereits laufenden ssh-agent (SSHAgent.cpp).
# ssh-agent.socket via systemd liegt in $XDG_RUNTIME_DIR (nicht mehr /tmp/ssh-*). Für Flatpak-Anwendungen wird ein Legacy-Pfad zusätzlich benötigt.
whitelist ${RUNUSER}/ssh-agent.socket
 
Zurück
Oben