Verschlüsselung von Festplatten(partitionen).
Grundlage bzw. siehe auch:
Inhaltsverzeichnis
Vollverschlüsselung
Partitionierung, Vollverschlüsselung, etc. für die Installation eines neuen Systems.
Ziel: Alle wesentlichen Daten auf dem Rechner verschlüsseln. Beim Boot wird dann nach einem Passwort gefragt.
Siehe auch / Quellen:
UEFI vs Legacy BIOS
Siehe auch:
Bei Neuinstallationen vorzugsweise UEFI verwenden.
Achtung: Bestimmte (ältere) Hardware ist evtl. nicht UEFI-Kompatibel. Bei der Grafikkarte kann dies z. B. dazu führen, dass der Rechner nach dem Einschalten kein Bild zeigt. Abhilfe: Eine kompatible Grafikkarte einbauen und im BIOS wieder die Einstellung auf Legacy (bzw. UEFI, je nachdem, was funktionier) ändern.
Partitionierung
Für ein reines Linux-System (ggf. mit VirtualBox) ist es egal, welche Variante im Folgenden gewählt wird.
Soll zusätzlich ein Windows (bzw. andere Systeme) installiert werden (Multi-Boot), so müssen die Partitionen natürlich entsprechend freigehalten werden.
GPT vs. MBR
Wenn nicht zwingend ein MBR erforderlich ist, lieber die moderne Variante GPT verwenden.
LVM nutzen?
LVM ermöglicht Snapshots und andere schöne Dinge.
Ist aber auch mehr Arbeit, dieses zu nutzen.
LVM on LUKS vs LUKS on LVM
Es gibt verschiedene Varianten
- Kein LVM nutzen
- Komplette Festplatte mit LVM verwalten, einzelne Partitionen verschlüsseln (LUKS on LVM)
- Eine "reguläre" Partition verschlüsseln und darin LVM installieren (LVM on LUKS) - empfohlen
Aufteilung des Speichers (LVM on LUKS)
Empfehlung für 120 GiB
- 100 MB UEFI Partition
- 512 MB Boot-Partition
- 104 GB LVM on LUKS
- Ca. 15 GB unpartitioniert (siehe unten)
LVM-Aufteilung:
- 32 GB / (root)
- 8 GB /var
- 64 GB (bzw. mehr) /home
Für den unpartitionierten Bereich gibe es zwei Gründe:
- Die SSD hält länger (Wear-Leveling)
- Es ist noch Platz für spätere Änderungen, ggf. ein weiteres Betriebssystem (Multi-Boot)
Eine Swap-Partition wird bei ausreichend RAM nicht benötigt.
Ramdisks
Manche Teile des Dateisystems lassen sich auf Ramdisks auslagern.
Quelle:
https://michael-herbst.com/linux-ssds-and-disk-encryption.html
Für weitere Verzeichnisse braucht es ein extra-Skript:
Skript: varFolders-Skript:
https://gist.githubusercontent.com/mfherbst/c38d5acb0b6c48e90054c53d805f73e7/raw/35218ca60bd1012bc1128b8cec8d7aee71ba359c/varFolders
Dateisysteme
Ext4 ist ok
Quelle:
https://superuser.com/questions/729551/linux-luks-and-choice-of-filesystem
Mount-Optionen
noatime (um keine Schreibzugriffe bei Lesezugriffen zu erzeugen)
Programm-Konfiguration
Firefox legt beim surfen temporäre Datein ab. Diese können auch auf eine Ramdisk verschoben werden (siehe Artikel von Michael Herbst).
Auswahl eines Algorithmus
Auf jeden Fall ESSIV oder XTS verwenden, um Fingerprinting-Angriffe zu vereiteln
Interessant:
Cipher: Standard: aes-xts-plain64
Erforderliche Pakete
apt-get install cryptsetup
Los geht's ...
Voraussetzung: Gerätedatei (Partition, Festplatte, LVM-Volume) ist vorhanden.
cryptsetup luksFormat --cipher aes-xts-plain64 --key-size 512 /dev/xvda2
Partition mit Mapper mounten
cryptsetup luksOpen /dev/xvda2 daten
Dateisystem erzeugen (irgendwo gelesen, dass ext3 besser für Luks-Partitionen ist):
mkfs.ext3 /dev/mapper/daten
Dieser Schritt dauert erfahrungsgemäß einige Minuten.
Optional: Reservierte Blöcke reduzieren
tune2fs -m 0 /dev/mapper/daten
Optional: Für automatisches Entschlüsseln beim Booten, eine Zeile in die Datei /etc/crypttab eintragen:
daten /dev/xvda2 none luks
Optional: In die /etc/fstab eintragen:
/dev/mapper/daten /fass ext3 defaults 0 2
Und all die anderen, selbstverständlichen Kleinigkeiten, die ein guter Sysadmin von selbst macht ;-)
Zum Beispiel ein einfaches Skript erzeugen, dass die Partition mountet
Befehlsreferenz
Partition unmounten (Entschlüsselung deaktivieren):
cryptsetup close daten