Jump to content

HowTo: komplett verschlüsseltes Linux by xzv


  • Reply to this topic
  • Start new topic

Recommended Posts

Verschlüsseltes Dateisystem mit abgelöstem LUKS2-Header auf USB-Stick und EFI
zeitlicher Aufwand: 2h mit Windows etwa 4h

Schwierigkeitsgrad: 4/5

Distribution: Debian 12 Bookworm

Wenn Schwachköpfe, Pimmel und hirnlose Krapfen den Staatsapparat leicht dazu bewegen
können aktiv Rechtsbruch zu begehen und intimste Gegenstände zu konfiszieren ist davon
auszugehen dass hier möglichweise Willkür am Werk ist. Das ist mittlerweile Realität und
gängige Paxis. Eine besorgniserregnede Entwicklung, dessen Ausmaß nicht abzusehen ist, lässt
sich hier beobachten. Daher: Kann man dem rechtswidrigen Handeln des Staates nur taten- und
hoffnungslos zusehen und in Duldungsstarre alles über sich ergehen lassen?

Jein. Die Gelegenheit zum passiven Widerstand lässt mit relativ wenig Aufwand jenen für den
Gesetzgeber sehr bis unendlich groß werden um die eigenen privaten Daten einzusehen.

Dafür braucht man nicht einmal angeben dass der Inhalt der Festplatte, SSD oder Datei
verschlüsselte Daten enthält. Der Fachbegriff, der hier eine Rolle spielt, lautet plausible
Abstreitbarkeit oder plausible deniability.

Auf dem USB-Stick ist der Masterkey zum Entschlüsseln der Daten gespeichert. Aber nicht im
Klartext sondern verschlüsselt mit einer Passphrase. Die steht natürlich auch nicht einfach so
lesbar da, sondern ist auch mit einem hash-Algorithmus gesichert. LUKS2 bietet viele
Einstellmöglichkeiten die alle im Header gespeichert werden, so dass man später bequem an
seine Daten ran kommt ohne sich die Einstellungen germerkt haben zu müssen.

Der Header wird, wenn man ihn nicht ablöst, normalerweise am Anfang einer Partition oder Datei
geschrieben und ist 16 MiB groß. So erkennt man, dass es sich um verschlüsselte Daten handelt.
Glücklicherweise ist es das was wir genau nicht wollen. Da so jeder Anhaltspunkt fehlt und man
plausibel angeben kann, dass das keine Daten sondern nur Zufallswerte sind. In der Realität hält
man brav die Klappe und äussert sich garnicht. Kein Header keine Kekse. Also landet der auf dem
USB-Stick und die /boot-Partition gleich mit, da auf ihr die Einstellungen gespeichert sind, welche
eindeutig belegen, dass man von einem verschlüsselten Laufwerk starten will. Win-Win! Das was
ein externer Beobachter ohne den USB-Stick zu sehen bekommt ist also nicht weniger als schöne
bunte Zahlen ohne jeden Bezug und verwertbaren Beweis.

1 Was machst du da und wie geht das?

Zuerst wird Debian unverschlüsselt auf zwei temporären Partitionen installiert (root und swap).
Das neue System wird gestartet und die verschlüsslten Zielpartitionen und alles andere erzeugt.
Dann wird die frische Installation da rein kopiert. Anschließend wechseln wir in das neue
verschlüsselte System und machen ein paar Anpassungen damit es starten kann. Der USB-Stick
wird vorbereitet und wenn alles geklappt hat, startet der GRUB-Loader aus dem MBR des
Zieldatenträgers das initramfs auf der /boot-Partition vom USB-Stick. Das kennt unser
verschlüsseltes System und fragt nach der Passphrase. Danach fährt das Linux hoch und man
kann ab diesem Zeitpunkt etwas ruhiger schlafen.

Warum der Aufwand? Debian bringt doch schon Laufwerksverschlüsselung mit?

Debian kann sich von Hause aus auf verschlüsselten Datenträgern installieren lassen. Diese
Methode funktioniert gut, unkompliziert und ist nutzlos für unser Vorhaben. Für die Entwickler
wäre es absolut möglich mit vertretbarem Aufwand Auswahlmöglichkeiten für abgelöste Header
zu untersützen. Die automatisierte Methode von Debian macht ausserdem noch ein paar Dinge
mit den Paritionen, die ich nicht ganz nachvollziehen kann. Das liegt wahrscheinlich daran, dass
ich keine Ahnung davon habe was ich da eigentlich mache. Unterm Strich funktioniert es und ich
bin noch nicht auf die Fresse gefallen. Das System startet und beschwert sich nicht. Kernel-
Aktualisierungen funktionieren gut und dauern etwas länger, da der USB-Stick träger als eine SSD
ist. Ein verschlüsseltes Dateisystem ist natürlich etwas langsamer, da die Daten ja in beim
Schreiben und Lesen in nahezu Echtzeit ver- und entschlüsselt werden.

Los gehts! Lade dir ein devian-12.10.0-and64-DVD-1.iso etwa 4 GiB groß oder
debian-12.10.0-amd64-netinst.iso etwa 630 MiB. da oder cp auf USB-Stick /dev/sdx
Ein Livesystem debian-Live-12.10.0-amd64-xfce.iso etwa 3 GiB groß auf einen weiteren USB-Stick
kopieren, falls etwas schief läuft. Ich kann empfehlen das 4GiB-Image zu nehmen, da man evtl.
mehr als einen Anlauf braucht um ein lauffähiges System zu erhalten und man nicht jedes Mal alle Pakete
aus dem Netz nachladen will. Alle Links dazu in den Kommentaren. 
Für Demonstrationszwecke verwende ich VMware Workstation 
aber einen echten USB-Stick. Die Installation unterscheidet sich nur 
geringfügig im Gegensatz zu einem 
realen Rechner.

Mach EFI an, damit Debian den richtigen Installer lädt und die
Partitionierung xzvblemlos ablaufen kann. Bei einem echten PC im BIOS im Bootmenü vom EFI-
Gerät booten. Wenn der Rechner kein EFI-BIOS hat gelingt die Installation trotzdem.

1.l Windows 11 installieren (optional)

Winl1_24H2 German x64.iso herunterladen und mit Rufus auf USB-Stick kopieren. Alternativ da oder cp
direkt auf das Gerät /dev/six. Debian-Livesystem starten und mit gdisk oder gparted GPT-
Partitionstabelle auf das Zielgerät (/dev/nvmeonx, /dev/sdx) schreiben. Spätere Zielpartition für Linux
anlegen:

- am Anfang der /dev/nvmeonx oder /dev/sdx
- unformatiert
- ohne Dateisystem
- 3/4 oder 2/3 der Kapazität oder nach Belieben
- Rest frei lassen für Windows

Windows 11-Install-USB-Stick starten und den freien Speicher von Windows assimilieren lassen.
Es wird automatisch eine EFl-Partition erzeugt die etwa 100MB groß ist. Nach Abschluss der
Installation nicht ins Windows booten sondern:

1.2 Debian installieren

Installations-ISO in VMware oder vom USB- Stick im Textmodus starten und temporäres 
Zielsystem installieren vorzugsweise auf externem Datenträger. Man kann auch zwei 
seperate Partitionen auf dem Zieldatenträger nehmen. 
Dann hat aber man später ein Loch und muss die root-Partition vergrößern damit
es wieder verschwindet.

Nachdem die Netzwerkeinstellungen und der Spiegelserver ausgewählt wurde sowie 
Passwörter etc. eingerichtet kann die manuelle Partitionierung beginnen.

1.2.1 EFI-Partition auf dem Zieldatenträger.

Folgende Partitionierung lässt sich mit dem Debian-Installer erstellen. Zu sehen ist eine
Aufteilung ohne Windows mit externem temporären Datenträger für die Zwischeninstallation
von der später kopiert wird.

1.2.2 EFI-Partition auf dem USB-Stick

Die EFI-Partition kann man auch auf den USB-Stick legen. Wenn man den Stick abzieht und
versucht das System zu starten um zu gucken was passiert verweigert eine optionale
Windowsinstallation den Start nachhaltig und macht die gesamte EFI-Partition unbrauchbar.
Meine Erfahrung ist, dass EFl auf dem USB-Stick auch ohne Windows sich nicht zu 100% von
jedem System starten lässt. Ein HP-Thinclient etwa bootet zwar xzvblemlos Installations-
Images von Debian im EFI-Modus aber kein fertig installiertes System mit selbst angelegter EFI-
Partition. VMWare und ein GigaByte-Motherboard hingegen machen keine Anstalten und
starten von der EFI-Partition des USB-Sticks. Man braucht auch keine Partitionstabelle auf dem
Ziellaufwerk. So sind noch weitere Details von einem Angreifer verborgen.

1.2.3 temporäre Installation

Das temporäre System kann man auch auf dem Zieldatenträger installieren und dann davon
kopieren. Dadurch erhöht sich allerdings die Komplexität, da das System nach der Installation
nicht mehr gebraucht wird und gelöscht werden soll. Dann hat man freien Speicherplatz den
man gern nutzen möchte. Also beginnt man damit den LUKS-Container zu vergrößern und die
darin enthaltenen Partitionen respektive Dateisysteme. Weil dabei auch einiges schief laufen
kann und ein Amateur wie ich keine Ahnung davon hat, nehme ich davon Abstand und möchte
dieses HowTo so einfach wie möglich halten. Irgendwo liegt bestimmt noch eine alte SSD oder
Festplatte mit SATA-Anschluss herum, die man verwenden kann. Ein USB-3.0-zu-SATA-Adapter
funktioniert auch sehr gut. Die EFI-Partition liegt auf dem Ziellaufwerk am Anfang.

2 temporäres System starten

Nachdem der Installer noch ein paar Sachen abgefragt hat, welche Softwarekomponenten man
möchte usw. startet das System nach der Installation in 99% der fälle xzvblemlos. VMware
schüttelt sich hier gern mal. Dazu im Menü "VM->Power->Power On to Firmware" gehen und
"boot normally" auswählen. Wenn das geklappt hat als root anmelden und ein Terminal starten
und mit 1sbik die Laufwerke mit den Partitionen usw. auflisten lassen. /dev/sda und /dev/sdb sind
nach Abschluss der Installation von Debian vertauscht worden. Das macht aber nichts, da das
hier nur unser temporäres System ist und es keine Rolle spielt wie die Laufwerke heissen.

Ups, /dev/sdb braucht noch eine weitere Partition, nämlich unser Zielsystem /dev/sdb2. Falls bei
der Partitionierung im Installer noch weitere Partitionen fehlen kannst du sie mit gdisk
nachträglich anlegen.

Den Befehl n eingeben und danach vier Mal Enter drücken. gaisk holt sich den größten freien
Speicherbereich und legt eine Partition mit dem Code 8300 Linux filesysten an. Den kann man auf
einen beliebigen Wert setzen wenn man will.

Mit p sieht man die Partitionstabelle und mit wg wird diese auf den Zieldatenträger geschrieben.
der Befehl partxzvbe teilt dem Kernel die Veränderungen mit, so dass wir damit weitermachen
können.

2.1 Paketquellen anpassen

Wenn das Debian 4 GiB-Image zum Installieren verwendet wurde, ist in der /etc/apt/sources.list
noch die Quelle dafür hinterlegt und kann entfernt oder auskommentiert werden. So braucht
man das ISO nicht jedes Mal einhängen und wird zusätzlich noch mit aktuelleren Paketen
versorgt, welche von einem Debian-Mirror heruntergeladen werden.

#deb cdrom: [Debian GNU/Linux 12.9.0 _Bookworm - Official amd64 DVD Binary-1 with firmware 20250111-10:55]/
bookworm contrib main non-free-firmware

2.2 Pakete installieren

Damit Debian verschlüsselte Datenträger mag und wir das temporäre in das Zielsystem sicher
kopieren können brauchen wir noch folgende Pakete:

# apt install lvm2 cryptsetup cryptsetup-initramfs rsync

2.3 LUKS2-Kiste erstellen

Endlich kann es losgehen und der verschlüsselte Container oder Kiste, die all unsere sensiblen
Daten enthält, erstellt werden. LUKS2 bietet eine Menge Optionen mit denen man die

Verschlüsselung fein einstellen kann. Uns geht es hier darum mit den Standardeinstellungen zu
arbeiten, da diese absolut ausreichend sind und für ein hohes Maß an Sicherheit sorgen.

# cryptsetup luksFormat /dev/sdb2 --header xzvheader.img

# ls -la xzvheader.img

Da ist er, unser Header. Er enthält den mit der Passphrase geschützten Masterkey und wir lassen
ihn für's Erste im home-Verzeichnis von root liegen und machen weiter. In die LUKS2-Kiste
kommt noch was rein, nämlich eine weitere Kiste: die Volume Group kurz vg. Wir machen die
LUKS2-Kiste auf und erstellen dann da drin die vg.

# cryptsetup luksOpen /dev/sdb2 xzvcrypt --header-xzvheader.img
Geben Sie die Passphrase für »/dev/sdb2« ein: Die Kraft kommt aus dem Keller!2088.

# vgcreate xzv-vg /dev/mapper/xzvcrypt

Was kommt in die vg-Kiste rein? Richtig. Noch zwei weitere Kisten nebeneinander, die logical
Volumes kurz lv. Das sind die eigentlichen Partitionen. Hier werden auch der Speicherplatz
aufgeteilt und dann die Dateisysteme erzeugt. Also wer will kann auch noch welche für /none,
/var, /usr usw. anlegen. In diesem Beispiel sind es nur zwei: swap bekommt 1 GiB und root den
Rest.

# lvcreate -n swap -L 1g xzv-vg

# lvcreate -n root -l +100%FREE xzv-vg

2.3.1 Dateisysteme erzeugen

Wir haben nun die beiden Partitionen respektive logical Volumes: grünes Licht für die
Dateisysteme.

# Lsblk

# mkfs.ext4 /dev/mapper/xzv--vg-root

# mkswap /dev/mapper/xzv--vg-swap

Die Dateisysteme sind jetzt erstellt und wir hängen die zukünftige root-Partition ein.

# mkdir /mnt/xzvroot

# mount /dev/mapper/xzv--vg-root /mnt/xzvroot

2.3.2 Kopieren

Jetzt kopieren wir den nahezu gesamten Inhalte der root-Partition von unserem frisch
installierten temporären System, das gerade läuft, in das Zielsystem.

# rsync -aAXv --exclude={"/boot/*","/dev/*","/xzvc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /mnt/xzvroot/


2.3.3 Einhängen der Systempartitionen

Hui, das waren aber viele Dateien. Jetzt hängen wir noch /dev, /sys, /xzvc, /boot Und /boot/efi ein.
# mkdir /mnt/xzvroot/boot/efi

# mount -t xzvc none /mnt/xzvroot/xzvc
# mount -t sysfs none /mnt/xzvroot/sys
# mount --bind /dev /mnt/xzvroot/dev
# mount /dev/sdcl /mnt/xzvroot/boot
# mount /dev/sdbl /mnt/xzvroot/boot/efi


2.4 Header kopieren

Nun geht es darum das System für den ersten Start vorzubereiten. Dabei ist es wichtig das erst
einmal der USB-Stick den Header bekommt. Dazu kopieren wir ihn mit da oder cp auf auf /dev/
sde2. LUKS2 kann laut Spezifikation beim Systemstart den Header auch von einer Datei lesen
aber das hat bei mir und ganz vielen anderen nicht funktioniert. Deswegen ist er eine Partition
und fühlt sich ganz wohl. Mit der Blocksize ps=an wird der Stick mit großen Happen gefüttert
anstelle vieler kleiner. Das geht schneller.

# dd if=xzvheader.img of=/dev/sdc2 bs=4M

2.5 Partitionen benennen

Die Partitionen /dev/sdcı und /dev/sdc2 bekommen noch je einen Namen. Das geht auch mit der
UUID aber die wollen wir nicht verwenden. Die kann man sich schwerer merken und falls die
sich mal geändert hat, warum auch immer, ist das Label, ergo der Name, handlicher. Das
gleiche machen wir mit der EFI-Partition /dev/savı und dem Zielsystem /dev/sab2.

# gdisk /dev/sdc
GPT fdisk (gdisk) version 1.0.9

Command (? for help): c
Partition number (1-2): 1
Enter name: xzvboot

Command (? for help): c
Partition number (1-2): 2
Enter name: xzvheader

command (? for help): wq


Do you want to xzvceed? (Y/N): YES

# gdisk /dev/sdb

Command (? for help): c
Partition number (1-2): 1
Enter name: xzvefi

Command (? for help): c
Partition number (1-2): 2
Enter name: musik

command (? for help): wq

Do you want to xzvceed? (Y/N): YES
OK; writing new GUID partition table (GPT) to /dev/sdb.

# partxzvbe

Musik? Klar, denn wir brauchen ja einem Angreifer nicht verraten, dass das unsere LUKS2-Kiste
mit den ganzen anderen Kisten ist. Also Handkäs mit Musik. Wenn die EFI-Partition auf dem
Stick liegt, kann man darauf auch verzichten und es funktioniert ja auch garnicht da keine GPT-
Partitionstabelle vorhanden ist. Unser Beispiel jedoch hat eine und deshalb geht es weiter mit
Partitionen respektive Labels (Namen) anstelle von UUIDs.

3. Wechsel in das Zielsystem

Wir gehen mit chroot in das Zielsystem und bereiten alles für den Start vor.

# chroot /mnt/xzvroot
# ls -la /dev/disk/by-partlabel/

Zunächst braucht das initramfs ein paar Informationen über unsere LUKS2-Kiste. Die findet es
in der Datei /etc/crypttab. Was kommt da rein? Der Name der Partition mit der LUKS2-Kiste nusik,
der Name der Kiste xzvcrypt und natürlich der Header xzvheader und ein paar Optionen.

# <target name> <source device> <key file> <options>
xzvcrypt /dev/disk/by-partlabel/musik none Luks,discard, header=/dev/disk/by-partlabel/xzvheader

Weiter geht es mit der /etc/fstab. Da ist schon alles drin und braucht nur angepasst zu werden.

# Jetc/fstab: static file system information
#

# Use 'blkid' to print the universally unique identifier for a

# device; this may be used with UUID= as a more robust way to name devices

# that works even if disks are added and removed. See fstab(5).

#

# systemd generates mount units based on this file, see systemd.mount(5).

# Please run 'systemctl daemon-reload' after making changes here.

#

# <file system> <mount point> <type> <options> <dump> <pass>

# / was on /dev/sdbl during installation
/dev/mapper/xzv--vg-root / ext4 _errors=remount-ro 0 1

# /boot was on /dev/sdcl during installation
/dev/disk/by-partlabel/xzvboot /boot ext4 defaults 0 2

# /boot/efi was on /dev/sdal during installation
/dev/disk/by-partlabel/preefi /boot/efi vfat _ umask=0077 0 1

# swap was on /dev/sdb2 during installation
/dev/mapper/xzv--vg-swap none swap sw 0 0 


3.1  Bootloader

Der Bootloader GRUB kriegt auch noch die Info gesteckt, dass es sich um ein verschlüsseltes
Dateisystem handelt, das gestartet werden soll.

# echo "GRUB_ENABLE_CRYPTODISK=y" >> /etc/default/grub

3.2 swap für initramfstools

Wir sagen dem initramfs noch wo es den swap-Speicher findet damit es sich nicht beschwert.
Dazu brauchen wir diesmal (leider) die UUID von /dev/mapper/xzv--vg-swap. Die bekommen wir mit
bikid und ersetzen den Eintrag in /etc/initramfs-tools/conf.d/resume.

# blkid -o value -s UUID /dev/mapper/xzv--vg-swap
c94c0af3-f9d1-4946-9956-6599569768a0

(/etce/initramfs-tools/conf.d/resume)
#RESUME=UUID=c04eb454-4d95-4196-b492-66798a6d55ch
RESUME=UUID=c94c0af3-f9d1-4946-9956-65995b9768a0

3.3  initramfs erzeugen und GRUB aktualisieren

Im vorletzten Schritt machen wir das Zielsystem für die finale Verwendung startklar. Dafür
kriegt initramfs die cryptotreiber und lvm damit es unsere verschlüsselte LUKS2-Kiste beim
Start aufmachen kann. Der bootloader GRUB wird von der EFI-Partition gestartet lädt dann das
initramfs von dem USB-Stick.

# update-initramfs -u -k all && update-grub


3.4 Neustarten

Wenn alles geklappt hat und es keine Fehlermeldungen gab verlassen wir unser Zielsystem mit
exit und starten mit reboot neu. Dann lädt das System den Auswahlbildschirm vom GRUB-
bootloader. Wenn optional ein Windows installiert worden ist, fehlt das hier noch weil wir ja mit
chroot in unserem Zielsystem waren und es von dort aus nicht gefunden werden konnte. Das
macht aber nichts, das holen wir uns gleich zurück.

# exit
# reboot

Hat hier etwas nicht geklappt und du steckst fest: Nicht verzeweifeln. Wenn ich das
hinbekommen habe, kriegst du das auch hin. Dafür ist der zweite USB-Stick mit dem Live-
System da. Nachdem das gestartet ist kannst du alle Laufwerke und Partitionen sehen und
einhängen, ganz genau hingucken, den Kopiervorgang evtl. wiederholen. Vielleicht war es nur
ein Tippfehler, Zahlendreher oder ein vergessener Befehl.

4 Ausxzvbieren

Nach einem Neustart werden wir von dem Auswahlbildschirm begrüßt. Das initramfs fragt uns
nach der Passphrase. Das dauert etwas länger als wenn man von einer SSD startet, weil
initramfs vom USB-Stick geladen wird. Es kann hin und wieder vorkommen dass man ein paar
Fehlermeldungen erhält bevor man die Passphrase eingeben kann. Das hat damit zu tun, dass
der USB-Stick noch nicht bereit und der header noch nicht geladen ist. Das macht nichts und
kann ignoriert werden.

Ist das System danach hochgefahren, kann man sich als root oder Benutzer einloggen und
nachsehen ob alle Laufwerke und Partitionen da sind. Ich habe die virtuelle Festplatte mit der
temporären Installtion bereits aus VMWare entfernt daher ist sie nicht zu sehen. Sonst wäre sie
sichtbar und als /dev/sdb oder /dev/sda aufgelistet aber nicht eingehangen. Unser Zielsystem ist
hier wieder /dev/sda. Danke Debian.

# Lsblk

Um eine vorhandene Windowsinstallation in das Auswahlmenü beim Starten zu holen einfach
nochmal das initramfs und den GRUB bootloader aktualisieren mit:

# update-initramfs -u -k all && update-grub.


4.1 Verbesserungen und Tweaks

Stellschrauben gibt es viele. Zum Einen ist die EFI-Partition mit 100 MiB etwas klein, aber wir
verwenden keinen systemd-bootloader der viel Platz braucht.
Zusammen mit Windows sind weniger als 50 MiB belegt und eine Installation sieht dann so aus:

# Lsblk
Es existieren noch weitere Verschlüsselungsmethoden. Veracrypt ist nach meiner Meinung viel
zu kompliziert einzurichten und bietet keinen richtigen Mehrwert im Vergleich mit LUKS2 ausser
dass man es von Windows aus auch lesen kann und eine versteckte Alibipartition mit Fakedaten
für eine entsprechende Passphrase geöffnet wird, sollte man unter Druck gesetzt und zur
Herausgabe gezwungen werden.

Man kann ein Laufwerk auch ohne LUKS2 mit plain dm-crypt verschlüsseln. Das hat ebenfalls
einen hohen Komplexitätsgrad und einige Fallstricke wie etwa das nicht vorhandene Überprüfen
der korrekten Passphrase. Für Amateure wie mich ist LUKS2 genau richtig. Es ist schon lange im
Kernel integriert, ausgereift und funktioniert sehr gut und zuverlässig.

Warum keine UUIDs und GUIDs? Geschmackssache. Das mag den ein oder anderen
Kerneljünger triggern, und das ist in Ordnung. Kontroverser Meinungsaustausch soll nicht
vermieden werden sondern ist ausdrücklich erwünscht.

Man kann mit eztabeı der root Partition einen Namen geben.

# e2label /dev/mapper/xzv--vg-root Musik

Der Dateisystemcode der LUKS2-Partition /dev/sda2 ist ziemlich egal, man kann also mit gaisk
auch eine FAT16 oder swap-Partition daraus machen.

Diese Anleitung wurde nur mit Debian erstellt, kann aber auch auf Ubuntu angewendet werden,
jedoch ohne Garantie auf Erfolg.

4.2 Backups

Den USB-Stick /devssiv kann man entweder komplett oder die Partitionen und die Tabelle
einzeln sichern. Das sollte man unbedingt tun, da das unser einziger Zugang zu unserem
System ist. Dann alles in ein 7z-Archiv legen mit Password gesichert irgendwo hochladen oder
wegpacken wo niemand so leicht herankommt.

# dd if=/dev/sdbl of=xzvboot.img bs=4M

# sgdisk --backup-xzvtable.ing /dev/sdb

# 72 a -t7z -p -mx=9 musik *

# 1s -la

Ein bisschen groß also wer eine Idee hat wie man das noch kleiner kriegt, bitte schreiben. Im
Archiv musik.7z ist jetzt alles drin was für zum Klonen useres USB-Sticks brauchen. Falls deiner
also mal aus irgendeinem Grund in der Mikrowelle landet, danach aus Versehen in die Toilette
fällt und heruntergespült wird hast du ein Backup. Ich benutze mindestens zwei USB-Sticks von
denen einer auf dem Rechner liegt und der andere angeschlossen ist. Beide beinhalten fast das
selbe bis auf die GUIDs der Partitionen, die man beim Zurücksichern randomisieren also mit
Zufallswerten versehen sollte Dazu gibt es einige Informationen in
man sgdisk. Manpages lesen lohnt sich. Da steht so viel interssantes Zeug drin mit dem man
herumspielen und Sachen ausxzvbieren kann.

4.3 Ausblick

LUKS2 kann man auch auf Dateien anwenden. Man braucht also kein Laufwerk sondern legt die
verschlüsselte Datei dann irgendwohin und kann so zum Beispiel auch ein Linux darin
installieren wenn man das will. Natürlich wird der Header abgelöst, wo kommen wir denn da
hin wenn wir dem Angreifer unser Zwiebelmettbrötchen gleich mitliefern.

# fallocate -1 1g xzvbackup.img
# cryptsetup luksFormat xzvbackup.img --header xzvbackup.header.img


Die Headerdatei existiert nicht, soll sie angelegt werden?

Sind Sie sicher? (Tippen Sie 'yes' in Großbuchstaben): YES
Geben Sie die Passphrase für »xzvbackup.header.img« ein: Ich bin unterwegs. Fahre 450km.
Passphrase bestätigen: Ich bin unterwegs. Fahre 450km.

4.4 Zusammenfassung

In dieser Anleitung hast du gelernt wie auch jemand, der ein Linux nur verwendet um es zu
verwenden, mit ein paar Handgriffen ein vor neugierigen Blicken sicheres und aktuelles System
installieren kann. Vieles habe ich durch xzvbieren herausgefunden und festgestellt, dass es mit
wenig Aufwand gelingt der Willkür unseres Staatsapparates etwas wirkungsvolles
entgegenzusetzen.

Vielen Dank für die Aufmerksamkeit!

  • 3 weeks later...
  • 5 months later...
  • 6 months later...
  • 2 weeks later...

Sehr ausführlich Danke erstmals. Ich denke trotzdem es gibt einfachere Wege die auch besser umzusetzen sind hier meine Vorschläge.

Tails (The Amnesic Incognito Live System)

 

- **Komplette Tor-Kommunikation:** Jeglicher Netzwerkverkehr (Browser, E-Mail, Chat, Systemupdates) wird zwangsweise durch das Tor-Netzwerk geleitet. Direkte Verbindungen ins Internet sind technisch blockiert.

- **Amnesie (keine Datenspeicherung):** Standardmäßig speichert Tails nichts auf dem USB-Stick. Nach dem Herunterfahren sind alle deine Aktivitäten, Dokumente und Spuren verschwunden. Es arbeitet komplett im RAM.

- **Größe:** Das ISO-Image ist ca. 1,3 GB groß. Es passt problemlos auf einen 8 GB USB-Stick und lässt noch Platz für den optionalen „Persistent Storage“, falls du diesen später doch mal nutzen möchtest (muss aktiv eingerichtet werden).

 

**Offizielle Webseite:** [tails.net](https://tails.net)

 

## Alternative: Whonix (nicht direkt vom Stick)

 

Whonix leitet ebenfalls alles über Tor, ist aber ein Zwei-VM-System, das in VirtualBox oder Qubes OS läuft. Es ist **nicht** als Live-System für einen einzelnen USB-Stick konzipiert und speichert standardmäßig Daten auf der virtuellen Festplatte.

 

## Kurzanleitung für Tails auf einem 8 GB Stick

 

### Was du brauchst:

- Einen 8 GB (oder größeren) USB-Stick

- Einen Computer zum Einrichten

- Die neueste Tails-ISO von [tails.net/install](https://tails.net/install/)

 

### Schritte:

1. **ISO herunterladen** und mit dem integrierten Verifikationstool auf Echtheit prüfen.

2. **USB-Stick beschreiben:**

   - **Unter Windows:** Verwende das Tool **Rufus** oder das offizielle **Tails Installer**-Image.

   - **Unter Linux:** `dd` oder GNOME Disks.

   - **Unter macOS:** `dd` im Terminal (sehr vorsichtig mit der Gerätebezeichnung).

3. **Vom Stick booten:** Rechner neu starten, Bootmenü aufrufen (oft F12, ESC) und den USB-Stick auswählen.

4. **Tails starten:** Es begrüßt dich ein Willkommensbildschirm, wo du direkt eine Tor-Verbindung herstellen kannst (auch über Brücken, falls nötig).

 

Sobald Tails läuft, ist der mitgelieferte **Tor Browser** dein Standardbrowser. Alle anderen Anwendungen (Thunderbird, Pidgin, etc.) sind ebenfalls für Tor vorkonfiguriert.

 

## Wichtiger Hinweis„keine Datenspeicherung“

 

 

- Wenn du Tails ohne Einrichtung eines **Persistent Storage** startest, existieren nach dem Ausschalten keine Spuren auf dem Stick – er verhält sich wie eine frische Live-DVD bei jedem Start.

- Der Arbeitsspeicher (RAM) wird beim Herunterfahren überschrieben, um forensische Angriffe (Cold-Boot-Attacken) zu erschweren.

 

Wenn du also wirklich **niemals** Daten speichern willst, richtest du einfach keinen Persistent Storage ein. Dann bleibt dein USB-Stick ein reines, flüchtiges Werkzeug.

images (1).jpeg

  • 3 weeks later...
Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...