xzv

ID 616
Beiträge 15
HowTo: komplett verschlüsseltes Linux by xzv Sicherheit & Anonymität 2026-02-02 03:16

push

HowTo: komplett verschlüsseltes Linux by xzv Sicherheit & Anonymität 2026-01-21 04:37

push

HowTo: komplett verschlüsseltes Linux by xzv Sicherheit & Anonymität 2025-11-29 21:51

push

SSH Reverse Tunnel by XZV OP Sicherheit & Anonymität 2025-11-23 07:25

##SSH Reverse Tunnel ### ###VON XZV ### Vorwort######################### Nachdem ich es beiläufig erwähnte, zeigen einige User vieleicht Interesse an meiner Lösung. Deshalb möchte ich hier kurz erklären, wie man mithilfe von einSystem zugreifen kann, selbst wenn es nicht direkt zugänglich ist. Mein Ansatz nutzt Raspberry PIs (mit Raspbian) als Satelliten und einen Server mit UwUntu, der unter einer fixen Webadresse erreichbar ist. Alles läuft auf der Konsole, benötigt also kein GUI(nur für Nigger) -perfekt für den 1337-HDxH4X0r. ################################################################################## #Technologie Die Basis bildet der Befehl "ssh-R" Zitat aus der Dokumentation: "Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side. This works by allocating a socket to listen to the port on the remote side and whenever a connection is mad to this port, the connection is forwarded over the secure channel and a connection is made to the host port from the local machine" pov Payback-Casher: Ähh was...?? Nochmals deutlicher ausgedrückt und in Amtsprache: Wenn Ihr mit "ssh -R" eine Verbindung zu einer anderen Maschine aufbaut, dann könnt Ihr einen bestimmten Port dieser Maschine in Beschlag nehmen und durch die soeben aufgebaute Verbindung zu euch "entführen". Sellt es euch als Verlängerungskabel für Ports vor. "Also einfach einmal "ssh -R" aufrufen und alles ist ok?" Leider nein Ali, es gibt diverse Stolpersteine auf dem Weg dort hin. Aus diesem Grund benötige ich für meinen Fernzugriff nicht nur SSH, sondern auch Screen, ein Shell Skript und Cronlab. ################################################################################## #Zuverlässigkeit Wir kennes es alle, Technologie fällt gelegentlich aus, eine perfekte Welt gibt es nicht. Um dem entgegen zu wirken, brucht es Tricks(aka "Magie"). Problem 1: Wenn in der SSH-Verbindung nichts passiert wird die Verbindung möglichweise beendet. Dagegen hilft, oh Wunder, Aktivität. Ich setze hierbei auf den "Task Manager", welcher mit dem SEITE 2/5Emrenet.is xzv Befehl "top" aufgerufen wird. Das reicht, um die Verbindung unter normalen-Umständen aufrecht zu erhalten. Problem 2: Aber was, wenn die Verbindung anderweitig beeinträchtigt wird? In diesem Fall setze ich auf "cronlab". Dies ist ein Programm, welches in definierbaren Abständen andere Programme startet. In meinem Fall ein Skript, welches die Verbindung aufbaut, sofern dies notwendig ist. ################################################################################## #Skript "Vallah Bruder laber nich, lass rüberwachsen bruda!" Ruhig Blut Ali. DU sollst ja verstehen was das Skript macht, damit du es für deine Zwecke anpassen kannst! Trotzdem, hier: #!bin/bash running=`ps aus | grep 11111:localhost:22222 | wc -r if[$running -lt 2];then /sbin/runuser -l mamer .c'/usr/bin/screen -d -m -S tunnel ssh -p 33333 -R 11111:localhost:22222 [email protected] ' sleep 10 /sbin/runuser -l mamer .c'/usr/bin/screen -S tunnel p 0 -X stuff "top-d 5^M" fi ################################################################################## #Erklärung Dieses Bash-Skript prüft zuerst ob bereits eine Verbindung besteht: Es listet alle Prozesse auf ("ps aux"), filtert ("grep") diese nach "11111:localhost:22222", ein Ausdruck welcher später noch verwendet wird und zählt die Zeilen ("wc -l"). Dabei muss beachtet werden, dass der SUchprozess selbst auch gefunden wird, da dieselbe Zeichenkette dort mitgegeben wird. DIes ist der Grund, warum ich auf der nächsten Zeile teste, ob die Anzahl gefunder Prozesse kleiner als zwei ist. Erst dann muss nämlich eine neue Verbindung aufgebaut werden. Okay, wir haben also etabliert, dass wir eine neue Verbindung benötigen. Also auf sie mit Gebrüll? Noch nicht, fehlen noch zwei Schritte. 1. Ich möchte, dass diese Verbindung mit dem korrekten Benutzer etabliert wird. Das Skript selbst wird dazu als root ausgeführt oder als Benutzer, der die nötige Privilegien hat. Somit kann dann mithilfe von "runuser" etwas als mamer ausgeführt werden. 2. DIeses etwas ist "screen", ein Programm welches sehr vielfältig ist. Die Grundidee ist, eine Abstraktionsebene einzuführen, welche Sessions ohne direkte Verbindung an ein Terminal erlauben. Oder einfach ausgedrückt: Mit screen könnt ihr etwas starten und dann im Hintergrund weiterlaufen lassen. Ich für meinen Teil starte das Programm mit den Parametern "-d -m -S tunnel", was eine losgelöste Session mit dem Namen "tunnel" erstellt. In dieser Session wird dann "ssh -p 33333 -R 11111:localhost:22222 [email protected] ' ausgeführt, was die eigentliche Verbindung aufbaut. Das Skript ist zu diesem Zeitpunkt aber noch nicht fertig. Nach einer zehnsekündigen Pause rufe ich (wieder als mamer) "screen" erneut auf und verweise dabei auf die vorhin erstellte Session names "tunnel". Aber anstatt dass ich ein Programm starte (läuft ja noch eins), teile ich "screen" mittels "-X stuff" mit, dass ich die folgenden Zeichen "top-d 5^M" gern in die Eingangspuffer ablegen möchte. SIeht für das Programm dann so aus, als ob jemand diese Zeichen eintippen würde und ^M steht dabei für Ctrl+M = Enter. (abhängig vom Interpreter, bei euch wird vermutlich der Tab stummgeschalten.) ################################################################################## #Effekt Durch den obrigen Befehl wird nun eine SSH-Verbindung mit vic.com aufgebaut und da dort der SSH-Server nicht au dem Standardport 22 läuft sondern auf 33333, muss dieser Port explizit angegeben werden. Ebenfalls wird die Option "-R" angegeben, welche den Port 11111 bei vic.com abgreift, zum lokalen System weiterleitet und den Tunnel auf den eigenen Port 22222 ausrichtet. Dannach muss lediglich Aktivitöt garantiert werden, um die Verbindung so lange wie möglich aufrecht zu erhalten. ################################################################################## #Failsafe Wie anfangs erwähnt, streben Verbindungen hin und wieder ab. Zum Beispiel, wenn die Putze das Stromkabel auszieht oder wenn der Emrenet Sessionserver einen Schwächeanfall hat. Deshalb müssen wir dafür sorgen, dass dieses Skript hin und wieder ausgeführt wird. "sudo crontab -e" führt euch zu einer Möglichkeit, dies zu erreichen. In meinem Fall steht dort "0,10,20,30,40,50* * * * /home/pi/ssh- tunnel.sh>> /home/pi/cron.err 2>&1", was alle zehn Minuten das oben erwähnte Skript startet und normale wie Fehlerausgabe in die Datei cron.err leitet. Desweiteren wird mit einer anderen Zeile eine monatliche Synchronisation durchgeführt, dies ist aber nicht Teil dieser Anleitung. ################################################################################## #Login vic Ich kann mich nun beim entfernten System einloggen, indem ich mich augenscheinlich mit meinem eigenen System verbinde. Dazu tippe ich "ssh -p 11111 [email protected] " ein, falls ich irgendwo im weiten Neuland bin und mein Router den Port 11111 weiterleitet. Falls ich mich bereits auf diesem System befinde, kann ich mich auch mit "ssh -p 11111 vic@localhost" einloggen. DIese Anfrage wird dann durch offenen Tunnel von "ssh -R" abgefangen und zu mamer transportiert, wo ich dann beim SSH-Server auf Port 22222 lande. ################################################################################## #Login mamer Etwas was ich bis jetzt komplett ignoriert habe, ist das Thema des Einloggens. mamer hat nämlich nicht nur einen Account auf dem Raspberry Pi, sondern auch auf meinem System. Und dort muss sie sich einloggen! Dies geht entweder über ein Passwort, welches man mit "screen -X stuff" virtuell eintippen könnte. Schöner wäre es aber, wenn man SSH Schlüssel verwendet! Wie man damit umgeht, erklär ich (wenn ihr mich genug nervt). ################################################################################## #Fragen Falls noch Fragen sind, könnt ihr diese gerne mir stellen oder hier kommentieren. Dies Mausräder könnt ihr zum Kühlschrank tunneln lassen. Cheers XZV

Arbeitet jemand mit Kicksecure OS? Sicherheit & Anonymität 2025-11-23 07:12

ja aber benutzte secureblue da anfänger probleme haben mit kernel morphing

HowTo: komplett verschlüsseltes Linux by xzv Sicherheit & Anonymität 2025-11-23 07:07

push

HowTo: komplett verschlüsseltes Linux by xzv Sicherheit & Anonymität 2025-07-26 03:50

push

HowTo: komplett verschlüsseltes Linux by xzv Sicherheit & Anonymität 2025-07-18 16:42

push

HowTo: komplett verschlüsseltes Linux by xzv Sicherheit & Anonymität 2025-06-16 20:53

push

Ultimate Guide - Szene-Laptop Aufsetzen Sicherheit & Anonymität 2025-05-03 17:47

ProtonVPN ist kein guter VPN

HowTo: komplett verschlüsseltes Linux by xzv Sicherheit & Anonymität 2025-05-03 16:14

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!

HowTo: komplett verschlüsseltes Linux by xzv Sicherheit & Anonymität 2025-05-03 16:13

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

HowTo: komplett verschlüsseltes Linux by xzv Sicherheit & Anonymität 2025-05-03 16:12

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

HowTo: komplett verschlüsseltes Linux by xzv OP Sicherheit & Anonymität 2025-05-03 16:12

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:

FakeShop Kosten / Benötigungen Abfrage Fraud 2025-05-03 16:08

Hosting und Domain sind die Kosten ca 40€