Vollständige Festplattenverschlüsselung von Windows Linux-installierten Systemen. Verschlüsselter Multiboot

Vollständige Festplattenverschlüsselung von Windows Linux-installierten Systemen. Verschlüsselter Multiboot
Eigene Anleitung zur Festplattenverschlüsselung in Runet V0.2 aktualisiert.

Cowboy-Strategie:

[A] Windows 7 blockiert die Systemverschlüsselung des installierten Systems;
[B] GNU/Linux-Blocksystemverschlüsselung (Debian) installiertes System (einschließlich /boot);
[C] GRUB2-Setup, Bootloader-Schutz mit digitaler Signatur/Authentifizierung/Hashing;
[D] Reinigung – Zerstörung unverschlüsselter Daten;
[E] Universelles Backup des verschlüsselten Betriebssystems;
[F] Angriff <auf [C6]> Ziel – GRUB2-Loader;
[G] Hilfreiche Dokumentation.

╭───Schema #Raum 40# :
├──╼ Windows 7 installiert – vollständige Systemverschlüsselung, nicht versteckt;
├──╼ GNU/Linux installiert (Debian und abgeleitete Distributionen) - Die vollständige Systemverschlüsselung ist nicht ausgeblendet(/, einschließlich /boot; swap);
├──╼ unabhängige Bootloader: VeraCrypt-Bootloader im MBR installiert, GRUB2-Bootloader in der erweiterten Partition installiert;
├──╼ Eine Installation/Neuinstallation des Betriebssystems ist nicht erforderlich.
└──╼ verwendete kryptografische Software: VeraCrypt; Kryptosetup; gnupg; Seepferdchen; Hashdeep; GRUB2 – Frei/Frei.

Das obige Schema löst teilweise das Problem des „Remote-Bootens auf ein Flash-Laufwerk“, ermöglicht es Ihnen, verschlüsselte Windows-/Linux-Betriebssysteme zu nutzen und Daten über einen „verschlüsselten Kanal“ von einem Betriebssystem zum anderen auszutauschen.

PC-Bootreihenfolge (eine der Optionen):

  • Einschalten der Maschine;
  • Laden Sie den VeraCrypt-Bootloader herunter (Bei korrekter Passworteingabe wird Windows 7 weiterhin gestartet.);
  • Durch Drücken der „Esc“-Taste wird der GRUB2-Bootloader geladen;
  • GRUB2-Bootloader (Wahl der Distribution/GNU/Linux/CLI), erfordert eine Authentifizierung des GRUB2-Superusers <Login/Passwort>;
  • Nach erfolgreicher Authentifizierung und Auswahl der Distribution müssen Sie eine Passphrase eingeben, um „/boot/initrd.img“ zu entsperren;
  • Nach Eingabe korrekter Passwörter in GRUB2 ist die Eingabe eines Passworts „erforderlich“. (Dritter in Folge, BIOS-Passwort oder GNU/Linux-Benutzerkonto-Passwort – nicht berücksichtigt) zum Entsperren und Booten des GNU/Linux-Betriebssystems oder automatische Ersetzung des geheimen Schlüssels (zwei Passwörter + Schlüssel oder Passwort + Schlüssel);
  • Ein externer Eingriff in die GRUB2-Konfiguration friert den GNU/Linux-Bootvorgang ein.

Ärgerlich? Ok, lasst uns Prozesse automatisieren.

Beim Partitionieren einer Festplatte (MBR-Tabelle) Ein PC kann nicht mehr als 4 Hauptpartitionen oder 3 Hauptpartitionen und eine erweiterte sowie einen nicht zugewiesenen Bereich haben. Ein erweiterter Abschnitt kann im Gegensatz zum Hauptabschnitt Unterabschnitte enthalten. (logische Laufwerke=erweiterte Partition). Mit anderen Worten: Die „erweiterte Partition“ auf der Festplatte ersetzt LVM für die aktuelle Aufgabe: die vollständige Systemverschlüsselung. Wenn Ihre Festplatte in 4 Hauptpartitionen unterteilt ist, müssen Sie lvm oder transform verwenden (mit Formatierung) Abschnitt vom Hauptabschnitt zum Fortgeschrittenenabschnitt oder nutzen Sie alle vier Abschnitte kompetent und lassen Sie alles so, wie es ist, um das gewünschte Ergebnis zu erzielen. Auch wenn Sie nur eine Partition auf Ihrer Festplatte haben, hilft Ihnen Gparted bei der Partitionierung Ihrer Festplatte (für zusätzliche Abschnitte) ohne Datenverlust, aber dennoch mit einem geringen Preis für solche Aktionen.

Das Layoutschema der Festplatte, in Bezug auf das der gesamte Artikel verbalisiert wird, ist in der folgenden Tabelle dargestellt.

Vollständige Festplattenverschlüsselung von Windows Linux-installierten Systemen. Verschlüsselter Multiboot
Tabelle (Nr. 1) der Abschnitte 1 TB.

Sie sollten etwas Ähnliches haben.
sda1 – Hauptpartition Nr. 1 NTFS (verschlüsselt);
sda2 – erweiterter Abschnittsmarker;
sda6 – logisches Laufwerk (der GRUB2-Bootloader ist darauf installiert);
sda8 – Swap (verschlüsselte Auslagerungsdatei / nicht immer);
sda9 – logische Festplatte testen;
sda5 – logisches Laufwerk für Neugierige;
sda7 – GNU/Linux-Betriebssystem (portiertes Betriebssystem auf ein verschlüsseltes logisches Laufwerk);
sda3 – Hauptpartition Nr. 2 mit Windows 7 (verschlüsselt);
sda4 – Hauptpartition Nr. 3 (es enthielt unverschlüsseltes GNU/Linux, wurde für Backups verwendet/nicht immer).

[A] Windows 7 blockiert die Systemverschlüsselung

A1. VeraCryptVollständige Festplattenverschlüsselung von Windows Linux-installierten Systemen. Verschlüsselter Multiboot

Herunterladen von offizielle Seiteoder aus einem Spiegel Quellschmiede Installationsversion der kryptografischen Software VeraCrypt (zum Zeitpunkt der Veröffentlichung von v1.24-Update3 ist die portable Version von VeraCrypt nicht für die Systemverschlüsselung geeignet). Überprüfen Sie die Prüfsumme der heruntergeladenen Software

$ Certutil -hashfile "C:VeraCrypt Setup 1.24.exe" SHA256

und vergleichen Sie das Ergebnis mit dem veröffentlichten CS auf der Website des VeraCrypt-Entwicklers.

Wenn die HashTab-Software installiert ist, noch einfacher: RMB (VeraCrypt-Setup 1.24.exe)-properties-Hash-Summe der Dateien.

Um die Signatur des Programms zu überprüfen, müssen die Software und der öffentliche PGP-Schlüssel des Entwicklers im System installiert sein gnuPG; gpg4win.

A2. Installieren/Starten der VeraCrypt-Software mit AdministratorrechtenVollständige Festplattenverschlüsselung von Windows Linux-installierten Systemen. Verschlüsselter Multiboot

A3. Auswählen der Systemverschlüsselungsoptionen für die aktive PartitionVeraCrypt – System – Systempartition/Laufwerk verschlüsseln – Normal – Windows-Systempartition verschlüsseln – Multiboot – (Warnung: „Unerfahrenen Benutzern wird die Verwendung dieser Methode nicht empfohlen“ und es stimmt, stimmen Sie zu „Ja“) - Boot-Diskette („ja“, auch wenn nicht, immer noch „ja“) – Anzahl der Systemlaufwerke „2 oder mehr“ – Mehrere Systeme auf einem Laufwerk „Ja“ – Nicht-Windows-Bootloader „Nein“ (Tatsächlich „Ja“, aber die VeraCrypt/GRUB2-Loader teilen den MBR nicht untereinander. Genauer gesagt wird nur der kleinste Teil des Loader-Codes im MBR/Boot-Track gespeichert, der Hauptteil befindet sich in der Datei System) – Multiboot – Verschlüsselungseinstellungen…

Wenn Sie von den oben genannten Schritten abweichen (Blocksystem-Verschlüsselungsschemata), dann gibt VeraCrypt eine Warnung aus und lässt die Verschlüsselung der Partition nicht zu.

Der nächste Schritt zum gezielten Datenschutz besteht darin, einen „Test“ durchzuführen und einen Verschlüsselungsalgorithmus auszuwählen. Wenn Sie eine veraltete CPU haben, ist der Twofish-Verschlüsselungsalgorithmus höchstwahrscheinlich der schnellste. Wenn die CPU leistungsstark ist, werden Sie den Unterschied bemerken: Die AES-Verschlüsselung wird den Testergebnissen zufolge um ein Vielfaches schneller sein als ihre Krypto-Konkurrenten. AES ist ein beliebter Verschlüsselungsalgorithmus, die Hardware moderner CPUs ist speziell für „Geheimnis“ und „Hacking“ optimiert.

VeraCrypt unterstützt die Möglichkeit, Festplatten mit AES-Kaskade zu verschlüsseln(zwei Fische)/ und andere Kombinationen. Auf einer alt-nuklearen Intel-CPU vor zehn Jahren (keine AES-Hardwareunterstützung, A/T-Kaskadenverschlüsselung) Leistungseinbußen sind im Wesentlichen nicht wahrnehmbar. (Bei AMD-CPUs der gleichen Ära/~Parameter ist die Leistung leicht reduziert). Das Betriebssystem arbeitet dynamisch und der Ressourcenverbrauch für die transparente Verschlüsselung ist nicht wahrnehmbar. Anders als beispielsweise ein spürbarer Leistungsabfall aufgrund der im Test installierten instabilen Desktop-Umgebung Mate v1.20.1 (oder v1.20.2, ich erinnere mich nicht genau) in GNU/Linux, oder aufgrund des Betriebs der Telemetrieroutine in Windows7 ↑. Normalerweise führen erfahrene Benutzer vor der Verschlüsselung Hardware-Leistungstests durch. Beispielsweise wird in Aida64 / Sysbench / systemd-analyze die Schuld gegeben und mit den Ergebnissen derselben Tests verglichen, nachdem das System verschlüsselt wurde, wodurch der Mythos „Systemverschlüsselung ist schädlich“ für sich selbst widerlegt wird. Die Verlangsamung der Maschine und die Unannehmlichkeiten machen sich beim Sichern/Wiederherstellen verschlüsselter Daten bemerkbar, da der Vorgang „Systemdatensicherung“ selbst nicht in ms gemessen wird und das gleiche <Entschlüsseln/Verschlüsseln im laufenden Betrieb> hinzugefügt wird. Letztendlich stellt jeder Benutzer, der sich mit der Kryptographie beschäftigen darf, eine Balance zwischen dem Verschlüsselungsalgorithmus in Bezug auf die Befriedigung der Aufgaben, dem Grad seiner Paranoia und der Benutzerfreundlichkeit.

Es ist besser, den PIM-Parameter auf der Standardeinstellung zu belassen, damit Sie nicht bei jedem Start des Betriebssystems die genauen Iterationswerte eingeben. VeraCrypt verwendet eine große Anzahl von Iterationen, um einen wirklich „langsamen Hash“ zu erstellen. Ein Angriff auf eine solche „Kryptoschnecke“ mittels der Brute-Force-/Rainbow-Tables-Methode macht nur mit einer kurzen „einfachen“ Passphrase und einer persönlichen Charset-Liste des Opfers Sinn. Bezahlen für die Stärke des Passworts – die Verzögerung bei der Eingabe des richtigen Passworts beim Laden des Betriebssystems (Das Mounten von VeraCrypt-Volumes unter GNU/Linux ist deutlich schneller).
Kostenlose Software für Brute-Force-Angriffe (Extraktion der Passphrase aus dem VeraCrypt/LUKS-Festplattenheader) Hashcat. John the Ripper weiß nicht, wie man „Veracrypt“ „knackt“, und wenn er mit LUKS arbeitet, versteht er die Twofish-Kryptographie nicht.

Aufgrund der kryptografischen Stärke von Verschlüsselungsalgorithmen entwickeln unaufhaltsame Cypherpunks Software mit einem anderen Angriffsvektor. Zum Beispiel das Extrahieren von Metadaten/Schlüsseln aus dem RAM (Cold Shoe/DMA-Angriff), Zu diesem Zweck gibt es spezielle freie und unfreie Software.

Am Ende der Konfiguration/Erzeugung „eindeutiger Metadaten“ der verschlüsselten aktiven Partition bietet VeraCrypt an, den PC neu zu starten und die Leistung seines Bootloaders zu testen. Nach dem Neustart/Start von Windows wird VeraCrypt im Standby-Modus geladen, es bleibt nur noch die Bestätigung des Verschlüsselungsvorgangs - Y.

Im letzten Schritt der Systemverschlüsselung bietet VeraCrypt an, eine Sicherungskopie des Headers der aktiven verschlüsselten Partition in der Form „veracrypt Rescue Disk.iso“ zu erstellen – Sie müssen es tun – In dieser Software ist ein solcher Vorgang erforderlich (in LUKS als Voraussetzung – dies wird leider weggelassen, aber in der Dokumentation unterstrichen). Die Rettungsdiskette ist für jeden nützlich, aber für jemanden mehr als einmal. Verlust (Header-Umschreibung/MBR) Die Header-Sicherung verweigert dauerhaft den Zugriff auf die entschlüsselte Partition unter dem Betriebssystem Windows.

A4. Erstellen Sie einen Rettungs-USB/Datenträger für VeraCryptStandardmäßig bietet VeraCrypt an, „Metadaten ~2-3 MB“ auf eine CD zu brennen, aber nicht alle Leute haben Disketten oder DWD-ROM-Laufwerke, und das Erstellen eines bootfähigen Flash-Laufwerks „VeraCrypt Rescue Disk“ wird für jemanden eine technische Überraschung sein: Rufus / GUIdd-ROSA ImageWriter und andere ähnliche Software – werden der Aufgabe nicht gewachsen sein, da Sie zusätzlich zum Kopieren der verschobenen Metadaten auf ein bootfähiges Flash-Laufwerk das Dateisystem des USB-Laufwerks aus dem Image kopieren/einfügen müssen. Kurz gesagt, kopieren Sie den MBR/die Straße korrekt in den Schlüsselbund. Unter dem GNU/Linux-Betriebssystem können Sie mit dem Dienstprogramm „dd“ ein bootfähiges Flash-Laufwerk erstellen, indem Sie sich dieses Schild ansehen.

Vollständige Festplattenverschlüsselung von Windows Linux-installierten Systemen. Verschlüsselter Multiboot

Das Erstellen einer Rettungsdiskette in einer Windows-Umgebung ist anders. Der Entwickler von VeraCrypt hat die Lösung für dieses Problem nicht in die offizielle Version aufgenommen Dokumentation auf der „Rettungsdiskette“, schlug aber eine andere Lösung vor: Er veröffentlichte in seinem VeraCrypt-Forum zusätzliche Software zum Erstellen einer „USB-Rettungsdiskette“ im freien Zugang. Der Archivar für diese Windows-Software ist „USB-Veracrypt-Rettungsdiskette erstellen“. Nach dem Speichern von „recue disk.iso“ beginnt der Prozess der Blocksystemverschlüsselung der aktiven Partition. Während der Verschlüsselung stoppt der Betrieb des Betriebssystems nicht, ein Neustart des PCs ist nicht erforderlich. Nach Abschluss des Verschlüsselungsvorgangs wird die aktive Partition vollständig verschlüsselt und Sie können sie verwenden. Wenn der VeraCrypt-Bootloader beim Starten des PCs nicht angezeigt wird und die Wiederherstellung des Headers nicht hilft, überprüfen Sie das „Boot“-Flag. Es muss auf die Partition gesetzt sein, auf der Windows vorhanden ist (unabhängig von Verschlüsselung und anderen Betriebssystemen, siehe Tabelle Nr. 1).
Damit ist die Beschreibung der Blocksystemverschlüsselung unter Windows abgeschlossen.

[B]LUKS. GNU/Linux-Verschlüsselung (~Debian) installiertes Betriebssystem. Algorithmus und Schritte

Um eine installierte Debian-/abgeleitete Distribution zu verschlüsseln, müssen Sie die vorbereitete Partition einem virtuellen Blockgerät zuordnen, sie auf ein zugeordnetes GNU/Linux-Laufwerk verschieben und GRUB2 installieren/konfigurieren. Wenn Sie keinen nackten Server haben und Ihre Zeit schätzen, müssen Sie die GUI verwenden. Die meisten der unten beschriebenen Terminalbefehle sind für die Ausführung im „Chuck-Norris-Modus“ gedacht.

B1. PC-Boot von Live-USB-GNU/Linux

„Führen Sie einen Kryptotest zur Hardwareleistung durch“

lscpu && сryptsetup benchmark

Vollständige Festplattenverschlüsselung von Windows Linux-installierten Systemen. Verschlüsselter Multiboot

Wenn Sie glücklicher Besitzer eines leistungsstarken Autos mit AES-Hardware-Unterstützung sind, sehen die Zahlen wie auf der rechten Seite des Terminals aus. Wenn Sie zufrieden sind, sehen sie bei antikem Eisen jedoch wie auf der linken Seite aus.

B2. Festplattenlayout. Mounten/Formatieren der fs der logischen Festplatte der Festplatte in Ext4 (Gparted)

B2.1. Erstellen eines verschlüsselten sda7-PartitionsheadersUm die Partitionsnamen im Folgenden zu beschreiben, werde ich mich an meine oben dargelegte Partitionstabelle halten. Entsprechend Ihrem Festplattenlayout müssen Sie Ihre eigenen Partitionsnamen ersetzen.

Verschlüsselungszuordnung für logische Laufwerke (/dev/sda7 > /dev/mapper/sda7_crypt).
#Einfache Erstellung einer „LUKS-AES-XTS-Partition“

cryptsetup -v -y luksFormat /dev/sda7

Optionen:

* luksFormat – LUKS-Header-Initialisierung;
* -y -passphrase (nicht Schlüssel/Datei);
* -v – Verbalisierung (Ausgabe von Informationen im Terminal);
* /dev/sda7 – Ihr logisches Laufwerk aus der erweiterten Partition (wo GNU/Linux-Portierung/Verschlüsselung geplant ist).

Standardverschlüsselungsalgorithmus <LUKS1: aes-xts-plain64, Schlüssel: 256 Bit, LUKS-Header-Hashing: sha256, RNG: /dev/urandom> (hängt von der Cryptsetup-Version ab).

#Проверка default-алгоритма шифрования
cryptsetup  --help #самая последняя строка в выводе терминала.

Wenn auf der CPU keine Hardware-Unterstützung für AES vorhanden ist, ist die Erstellung einer erweiterten „LUKS-Twofish-XTS-Partition“ die beste Wahl.

B2.2. Erweiterte Erstellung der „LUKS-Twofish-XTS-Partition“

cryptsetup luksFormat /dev/sda7 -v -y -c twofish-xts-plain64 -s 512 -h sha512 -i 1500 --use-urandom

Optionen:
* luksFormat – LUKS-Header-Initialisierung;
* /dev/sda7 ist Ihr zukünftiges verschlüsseltes logisches Laufwerk;
* -v verbalisieren;
* -y Passphrase;
* -c Auswahl des Datenverschlüsselungsalgorithmus;
* -s Verschlüsselungsschlüsselgröße;
* -h Hashing-Algorithmus/Kryptofunktion, RNG wird verwendet (--use-urandom) um einen eindeutigen logischen Festplatten-Header-Verschlüsselungs-/Entschlüsselungsschlüssel, sekundären Header-Schlüssel (XTS), zu generieren; ein einzigartiger Hauptschlüssel, der im verschlüsselten Festplattenheader gespeichert ist, ein sekundärer XTS-Schlüssel, alle diese Metadaten und eine Verschlüsselungsroutine, die unter Verwendung des Hauptschlüssels und des sekundären XTS-Schlüssels alle Daten auf der Partition ver-/entschlüsselt (außer der Abschnittsüberschrift) werden in ca. 3 MB auf der ausgewählten Festplattenpartition gespeichert.
* -i Iterationen in Millisekunden, statt „Betrag“ (Die Zeitverzögerung bei der Verarbeitung der Passphrase wirkt sich auf die Auslastung des Betriebssystems und die kryptografische Stärke der Schlüssel aus.) Um das Gleichgewicht der kryptografischen Stärke bei einem einfachen Passwort wie „Russisch“ aufrechtzuerhalten, ist es erforderlich, den Wert -(i) zu erhöhen, bei einem komplexen Passwort wie „?8dƱob/øfh“ kann der Wert verringert werden.
* --use-urandom Zufallszahlengenerator, generiert Schlüssel und Salt.

Nach der Zuordnung der Partition sda7 > sda7_crypt (Der Vorgang ist schnell, da ein verschlüsselter Header mit ~3 MB Metadaten erstellt wird und das war’s), müssen Sie das Dateisystem sda7_crypt formatieren und mounten.

B2.3. Kartierung

cryptsetup open /dev/sda7 sda7_crypt
#выполнение данной команды запрашивает ввод секретной парольной фразы.

Optionen:
* öffnen – den Abschnitt „mit dem Namen“ abgleichen;
* /dev/sda7 – logisches Laufwerk;
* sda7_crypt – Namenszuordnung, die zum Mounten der verschlüsselten Partition oder zum Initialisieren beim Booten des Betriebssystems verwendet wird.

B2.4. Formatieren des sda7_crypt-Dateisystems auf ext4. Mounten einer Festplatte im Betriebssystem(Hinweis: Gparted funktioniert nicht mehr mit einer verschlüsselten Partition)

#форматирование блочного шифрованного устройства
mkfs.ext4 -v -L DebSHIFR /dev/mapper/sda7_crypt 

Optionen:
* -v – Verbalisierung;
* -L – Datenträgerbezeichnung (die im Explorer neben anderen Datenträgern angezeigt wird).

Als nächstes sollten Sie das virtuell verschlüsselte Blockgerät /dev/sda7_crypt in das System einbinden

mount /dev/mapper/sda7_crypt /mnt

Beim Arbeiten mit Dateien im Ordner /mnt werden Daten in sda7 automatisch verschlüsselt/entschlüsselt.

Bequemeres Zuordnen und Mounten einer Partition im Datei-Explorer (Nautilus/Caja-GUI), die Partition befindet sich bereits in der Festplattenauswahlliste, Sie müssen nur noch eine Passphrase eingeben, um die Festplatte zu öffnen/entschlüsseln. Der zugeordnete Name wird automatisch ausgewählt und nicht „sda7_crypt“, sondern etwa /dev/mapper/Luks-xx-xx…

B2.5. Sicherung des Disc-Headers (Metadaten ~3 MB)Einer der am meisten wichtig Vorgänge, die unverzüglich ausgeführt werden müssen – eine Sicherungskopie des Headers „sda7_crypt“. Wenn der Header überschrieben/beschädigt wird (z. B. Installation von GRUB2 auf der sda7-Partition usw.), gehen die verschlüsselten Daten dauerhaft verloren und es gibt keine Möglichkeit, sie wiederherzustellen, da es nicht möglich ist, dieselben Schlüssel erneut zu generieren, da die Schlüssel eindeutig erstellt werden.

#Бэкап заголовка раздела
cryptsetup luksHeaderBackup --header-backup-file ~/Бэкап_DebSHIFR /dev/sda7 

#Восстановление заголовка раздела
cryptsetup luksHeaderRestore --header-backup-file <file> <device>

Optionen:
* luksHeaderBackup --header-backup-file – Sicherungsbefehl;
* luksHeaderRestore --header-backup-file – Wiederherstellungsbefehl;
* ~/Backup_DebSHIFR – Sicherungsdatei;
* /dev/sda7 – die Partition, deren verschlüsselter Festplattenheader gesichert werden soll.
Mit diesem Schritt ist das <Erstellen und Bearbeiten einer verschlüsselten Partition> abgeschlossen.

B3. Migration des GNU/Linux-Betriebssystems (sda4) auf die verschlüsselte Partition (sda7)

Erstellen Sie den Ordner /mnt2 (Hinweis – wir arbeiten immer noch mit Live-USB, sda7_crypt ist in /mnt gemountet), und mounten Sie unser GNU/Linux in /mnt2, das verschlüsselt werden muss.

mkdir /mnt2
mount /dev/sda4 /mnt2

Die korrekte Übertragung des Betriebssystems führen wir mit der Rsync-Software durch

rsync -avlxhHX --progress /mnt2/ /mnt

Rsync-Optionen werden in Abschnitt E1 beschrieben.

Ferner notwendig Defragmentieren einer Festplattenpartition

e4defrag -c /mnt/ #после проверки, e4defrag выдаст, что степень дефрагментации раздела~"0", это заблуждение, которое может вам стоить существенной потери производительности!
e4defrag /mnt/ #проводим дефрагментацию шифрованной GNU/Linux

Machen Sie es sich zur Regel, von Zeit zu Zeit e4defrag auf verschlüsseltem GNU/LInux durchzuführen, wenn Sie eine Festplatte haben.
Die Migration und Synchronisierung [GNU/Linux > GNU/Linux-verschlüsselt] ist mit diesem Schritt abgeschlossen.

UM 4. GNU/Linux auf einer verschlüsselten sda7-Partition einrichten

Nach einer erfolgreichen Betriebssystemübertragung /dev/sda4 > /dev/sda7 müssen Sie sich bei GNU/Linux auf einer verschlüsselten Partition anmelden und weitere Konfigurationen durchführen (ohne PC-Neustart) bezüglich des verschlüsselten Systems. Das heißt, in Live-USB zu sein, aber Befehle „relativ zum Stammverzeichnis des verschlüsselten Betriebssystems“ auszuführen. Simulieren Sie eine ähnliche Situation mit „Chroot“. Um schnell Informationen darüber zu erhalten, an welchem ​​Betriebssystem Sie gerade arbeiten (verschlüsselt oder nicht, da die Daten in sda4 und sda7 synchronisiert sind), desynchronisieren Sie die Betriebssysteme. In Stammverzeichnissen erstellen (sda4/sda7_crypt) leere Tokendateien, wie z. B. /mnt/encryptedOS und /mnt2/decryptedOS. Überprüfen Sie schnell, welches Betriebssystem Sie verwenden (auch für die Zukunft):

ls /<Tab-Tab>

B4.1. „Simulation der Anmeldung an einem verschlüsselten Betriebssystem“

mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt

B4.2. Überprüfung, ob die Arbeit relativ zum verschlüsselten System ausgeführt wird

ls /mnt<Tab-Tab> 
#и видим файл "/шифрованнаяОС"

history
#в выводе терминала должна появиться история команд su рабочей ОС.

B4.3. Erstellen/Konfigurieren eines verschlüsselten Swaps, Bearbeiten von crypttab/fstabDa die Auslagerungsdatei bei jedem Start des Betriebssystems formatiert wird, macht es keinen Sinn, die Auslagerungsdatei jetzt zu erstellen und der logischen Festplatte zuzuordnen und Befehle einzugeben, wie in Abschnitt B2.2. Für Swap werden bei jedem Start automatisch ihre temporären Verschlüsselungsschlüssel generiert. Lebenszyklus von Swap-A-Schlüsseln: Aushängen/Aushängen einer Swap-Partition (+RAM löschen); oder starten Sie das Betriebssystem neu. Tauschen Sie das Setup aus und öffnen Sie die Datei, die für die Konfiguration blockverschlüsselter Geräte verantwortlich ist (Ähnlich der fstab-Datei, aber verantwortlich für Krypto).

nano /etc/crypttab 

Regel

#"Zielname" "Quellgerät" "Schlüsseldatei" "Optionen"
swap /dev/sda8 /dev/urandom swap,cipher=twofish-xts-plain64,size=512,hash=sha512

Optionen
* swap – zugeordneter Name beim Verschlüsseln von /dev/mapper/swap.
* /dev/sda8 – Verwenden Sie Ihre logische Partition für den Austausch.
* /dev/urandom – Generator zufälliger Verschlüsselungsschlüssel für Swap (Bei jedem neuen Betriebssystemstart werden neue Schlüssel erstellt. Der /dev/urandom-Generator ist weniger zufällig als /dev/random, schließlich wird /dev/random verwendet, wenn unter gefährlichen paranoiden Umständen gearbeitet wird. Beim Booten des Betriebssystems verlangsamt /dev/random den Ladevorgang um einige ± Minuten (siehe systemd-analyze).
* swap,cipher=twofish-xts-plain64,size=512,hash=sha512: -partition kennt den Swap und ist entsprechend formatiert; Verschlüsselungsalgorithmus.

#Открываем и правим fstab
nano /etc/fstab

Regel

# swap war während der Installation auf / dev / sda8
/dev/mapper/swap none swap sw 0 0

/dev/mapper/swap ist der in crypttab angegebene Name.

Alternativer verschlüsselter Austausch
Wenn Sie aus irgendeinem Grund nicht eine ganze Partition als Auslagerungsdatei bereitstellen möchten, können Sie einen alternativen und besseren Weg wählen: Erstellen einer Auslagerungsdatei in einer Datei auf einer verschlüsselten Betriebssystempartition.

fallocate -l 3G /swap #создание файла размером 3Гб (почти мгновенная операция)
chmod 600 /swap #настройка прав
mkswap /swap #из файла создаём файл подкачки
swapon /swap #включаем наш swap
free -m #проверяем, что файл подкачки активирован и работает
printf "/swap none swap sw 0 0" >> /etc/fstab #при необходимости после перезагрузки swap будет постоянный

Die Einrichtung der Swap-Partition ist abgeschlossen.

B4.4. Einrichten von verschlüsseltem GNU/Linux (Bearbeiten von crypttab/fstab-Dateien)Die Datei /etc/crypttab beschreibt, wie ich oben geschrieben habe, verschlüsselte Blockgeräte, die beim Systemstart konfiguriert werden.

#правим /etc/crypttab 
nano /etc/crypttab 

wenn Sie den Abschnitt sda7>sda7_crypt wie in Absatz B2.1 abgeglichen haben

# „Zielname“ „Quellgerät“ „Schlüsseldatei“ „Optionen“
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 none luks

wenn Sie den Abschnitt sda7>sda7_crypt wie in Absatz B2.2 abgeglichen haben

# „Zielname“ „Quellgerät“ „Schlüsseldatei“ „Optionen“
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 none cipher=twofish-xts-plain64,size=512,hash=sha512

Wenn Sie den Abschnitt sda7>sda7_crypt wie in Absatz B2.1 oder B2.2 abgeglichen haben, das Kennwort jedoch nicht erneut eingeben möchten, um das Betriebssystem zu entsperren und zu starten, können Sie anstelle des Kennworts den geheimen Schlüssel bzw. die Zufallsdatei verwenden

# „Zielname“ „Quellgerät“ „Schlüsseldatei“ „Optionen“
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 /etc/skey luks

Beschreibung
*none – Gibt an, dass beim Hochfahren des Betriebssystems eine geheime Passphrase erforderlich ist, um den Root zu entsperren.
* UUID – Partitionskennung. Um Ihren Ausweis herauszufinden, geben Sie ihn in das Terminal ein (Erinnern Sie sich daran, dass Sie von nun an in einem Terminal in einer Chroot-Umgebung arbeiten und nicht in einem anderen Live-USB-Terminal).

fdisk -l #проверка всех разделов
blkid #должно быть что-то подобное 

/dev/sda7: UUID=«81048598-5bb9-4a53-af92-f3f9e709e2f2» TYPE=«crypto_LUKS» PARTUUID=«0332d73c-07»
/dev/mapper/sda7_crypt: LABEL=«DebSHIFR» UUID=«382111a2-f993-403c-aa2e-292b5eac4780» TYPE=«ext4»

Diese Zeile ist sichtbar, wenn blkid von einem Live-USB-Terminal mit gemountetem sda7_crypt angefordert wird.
Die UUID wird von Ihrem sdaX übernommen (nicht sdaX_crypt!, UUID sdaX_crypt – verschwindet automatisch, wenn die grub.cfg-Konfiguration generiert wird).
* cipher=twofish-xts-plain64,size=512,hash=sha512 -luks Verschlüsselung im erweiterten Modus.
* /etc/skey – geheime Schlüsseldatei, die automatisch ersetzt wird, um den Betriebssystemstart zu entsperren (anstatt das 3. Passwort einzugeben). Sie können jede Datei mit bis zu 8 MB angeben, die Daten werden jedoch <1 MB gelesen.

#Создание "генерация" случайного файла <секретного ключа> размером 691б.
head -c 691 /dev/urandom > /etc/skey

#Добавление секретного ключа (691б) в 7-й слот заголовка luks
cryptsetup luksAddKey --key-slot 7 /dev/sda7 /etc/skey

#Проверка слотов "пароли/ключи luks-раздела"
cryptsetup luksDump /dev/sda7 

Es wird ungefähr so ​​aussehen:

(Machen Sie es selbst und überzeugen Sie sich selbst).

cryptsetup luksKillSlot /dev/sda7 7 #удаление ключа/пароля из 7 слота

/etc/fstab enthält beschreibende Informationen zu verschiedenen Dateisystemen.

#Правим /etc/fstab
nano /etc/fstab

# „Dateisystem“ „Einhängepunkt“ „Typ“ „Optionen“ „Dump“ „Pass“
# / war während der Installation auf / dev / sda7
/dev/mapper/sda7_crypt / ext4errors=remount-ro 0 1

Option
* /dev/mapper/sda7_crypt ist der Name der sda7>sda7_crypt-Zuordnung, die in der Datei /etc/crypttab angegeben ist.
Die Einrichtung von crypttab/fstab ist nun abgeschlossen.

B4.5. Bearbeiten von Konfigurationsdateien. SchlüsselmomentB4.5.1. Bearbeiten der Konfiguration /etc/initramfs-tools/conf.d/resume

#Если у вас ранее был активирован swap раздел, отключите его. 
nano /etc/initramfs-tools/conf.d/resume

und auskommentieren (falls vorhanden) „#“-Zeile „Fortsetzen“. Die Datei muss vollständig leer sein.

B4.5.2. Bearbeiten der Konfiguration /etc/initramfs-tools/conf.d/cryptsetup

nano /etc/initramfs-tools/conf.d/cryptsetup

sollte passen

# /etc/initramfs-tools/conf.d/cryptsetup
CRYPTSETUP=ja
CRYPTSETUP exportieren

B4.5.3. Bearbeiten der /etc/default/grub-Konfiguration (Diese Konfiguration ist für die Möglichkeit verantwortlich, grub.cfg zu generieren, wenn mit verschlüsseltem /boot gearbeitet wird.)

nano /etc/default/grub

Fügen Sie die Zeile „GRUB_ENABLE_CRYPTODISK=y“ hinzu.
auf „y“ gesetzt, prüfen grub-mkconfig und grub-install nach verschlüsselten Laufwerken und generieren zusätzliche Befehle, die für den Zugriff auf diese beim Booten erforderlich sind (insmods ).
dürfte ähnlich sein

GRUB_DEFAULT = 0
GRUB_TIMEOUT = 1
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="acpi_backlight=vendor"
GRUB_CMDLINE_LINUX="quiet Splash noautomount"
GRUB_ENABLE_CRYPTODISK=y

B4.5.4. Bearbeiten der Konfiguration /etc/cryptsetup-initramfs/conf-hook

nano /etc/cryptsetup-initramfs/conf-hook

Überprüfen Sie, ob die Zeile auskommentiert <#>.
In der Zukunft (Und selbst jetzt hat dieser Parameter keinen Wert, aber manchmal stört er die Aktualisierung des initrd.img-Images).

B4.5.5. Bearbeiten der Konfiguration /etc/cryptsetup-initramfs/conf-hook

nano /etc/cryptsetup-initramfs/conf-hook

hinzufügen

KEYFILE_PATTERN="/etc/skey"
UMASK=0077

Dadurch wird der geheime Schlüssel „skey“ in die initrd.img gepackt. Der Schlüssel wird benötigt, um den Root beim Booten des Betriebssystems zu entsperren (Wenn Sie das Passwort nicht erneut eingeben möchten, wird es automatisch durch die Taste „skey“ ersetzt.)

B4.6. Aktualisieren Sie /boot/initrd.img [Version]Um den privaten Schlüssel in initrd.img zu packen und die cryptsetup-Korrekturen anzuwenden, aktualisieren Sie das Image

update-initramfs -u -k all

beim Aktualisieren von initrd.img (Wie das Sprichwort sagt: „Vielleicht, aber nicht sicher“) Es werden Warnungen im Zusammenhang mit Cryptsetup oder beispielsweise eine Benachrichtigung über den Verlust von Nvidia-Modulen angezeigt – das ist normal. Überprüfen Sie nach dem Aktualisieren der Datei regelmäßig, ob sie tatsächlich aktualisiert wurde (relativ zur Chroot-Umgebung ./boot/initrd.img). Achtung! Stellen Sie vor [update-initramfs -u -k all] sicher, dass Cryptsetup /dev/sda7 geöffnet hat sda7_crypt - Dies ist der Name, der in /etc/crypttab erscheinen sollte, andernfalls nach dem Neustart ein Busybox-Fehler)
Mit diesem Schritt ist die Einrichtung der Konfigurationsdateien abgeschlossen.

[С] GRUB2/Protection installieren und konfigurieren

C1. Formatieren Sie bei Bedarf die dedizierte Partition für den Bootloader (mindestens 20 MB reichen für die Partition)

mkfs.ext4 -v -L GRUB2 /dev/sda6

C2. Hängen Sie /dev/sda6 in /mnt einDa wir in einer Chroot-Umgebung arbeiten, gibt es im Stammverzeichnis kein /mnt2-Verzeichnis und der Ordner /mnt ist leer.
Mounten Sie die GRUB2-Partition

mount /dev/sda6 /mnt

Wenn Sie eine ältere Version von GRUB2 installiert haben, in /mnt/boot/grub/i-386-pc (möglicherweise andere Plattform, z. B. nicht „i386-pc“) keine Kryptomodule (Kurz gesagt, der Ordner sollte Module enthalten, einschließlich dieser .mod: cryptodisk; luks; gcry_twofish; gcry_sha512; signatur_test.mod), In einem solchen Fall muss GRUB2 geschüttelt werden.

apt-get update
apt-get install grub2 

Wichtig! Wenn Sie beim Aktualisieren des GRUB2-Pakets aus dem Repository gefragt werden, wo der Bootloader installiert werden soll, müssen Sie die Installation verweigern (Grund: Versuch, GRUB2 zu installieren – im „MBR“ oder auf Live-USB). Andernfalls beschädigen Sie den VeraCrypt-Header/Loader. Nach der Aktualisierung der GRUB2-Pakete und dem Abbruch der Installation muss der Bootloader manuell auf einem logischen Laufwerk und nicht im „MBR“ installiert werden. Wenn Ihr Repository eine veraltete Version von GRUB2 hat, versuchen Sie es aktualisieren es von der offiziellen Website - nicht überprüft (funktionierte mit neuen GRUB 2.02 ~BetaX-Bootloadern).

C3. GRUB2 auf erweiterter Partition installieren [sda6]Sie müssen eine Partition gemountet haben [p.C.2]

grub-install --force --root-directory=/mnt /dev/sda6

Optionen
* --force – Installiert den Bootloader, umgeht alle Warnungen, die fast immer vorhanden sind, und blockiert die Installation (erforderliche Flagge).
* --root-directory – Verzeichnisinstallation zur Wurzel von sda6.
* /dev/sda6 – Ihre sdaX-Partition (Überspringen Sie nicht das <Leerzeichen> zwischen /mnt /dev/sda6).

C4. Erstellen einer Konfigurationsdatei [grub.cfg]Vergessen Sie den Befehl „update-grub2“ und verwenden Sie den Befehl zur vollständigen Generierung der Konfigurationsdatei

grub-mkconfig -o /mnt/boot/grub/grub.cfg

Nach Abschluss der Generierung/Aktualisierung der Datei grub.cfg sollten im Ausgabeterminal Zeilen (a) mit dem auf der Festplatte gefundenen Betriebssystem vorhanden sein („grub-mkconfig“ wird das Betriebssystem wahrscheinlich von Live-USB finden und abrufen, wenn Sie ein Multi-Boot-Flash-Laufwerk mit Windows 10 und einer Reihe von Live-Distributionen haben – das ist normal). Wenn das Terminal „leer“ ist und die Datei „grub.cfg“ nicht generiert wird, ist dies der Fall, wenn GRUB-Bugs im System vorhanden sind (und höchstwahrscheinlich ein Loader aus dem Testzweig des Repositorys), Installieren Sie GRUB2 von vertrauenswürdigen Quellen neu.
Die Installation der „einfachen Konfiguration“ und die GRUB2-Konfiguration sind nun abgeschlossen.

C5. Proof-Test des verschlüsselten GNU/Linux-BetriebssystemsSchließen Sie die Kryptomission korrekt ab. Verschlüsseltes GNU/Linux vorsichtig verlassen (Verlassen Sie die Chroot-Umgebung).

umount -a #размонтирование всех смонтированных разделов шифрованной GNU/Linux
Ctrl+d #выход из среды chroot
umount /mnt/dev
umount /mnt/proc
umount /mnt/sys
umount -a #размонтирование всех смонтированных разделов на live usb
reboot

Nach dem Neustart des PCs sollte der VeraCrypt-Bootloader geladen werden.
Vollständige Festplattenverschlüsselung von Windows Linux-installierten Systemen. Verschlüsselter Multiboot

*Eingabe des Passworts für die aktive Partition – Windows beginnt mit dem Laden.
*Durch Drücken der „Esc“-Taste wird die Steuerung an GRUB2 übertragen. Wenn Sie verschlüsseltes GNU/Linux auswählen, benötigen Sie ein Passwort (sda7_crypt), um /boot/initrd.img zu entsperren (wenn Grub2 uuid „nicht gefunden“ sagt – das ist ein Problem mit dem Bootloader grub2, er sollte neu installiert werden, zum Beispiel aus dem Testzweig/stable und pd).
Vollständige Festplattenverschlüsselung von Windows Linux-installierten Systemen. Verschlüsselter Multiboot

*Je nachdem, wie Sie das System eingerichtet haben (siehe Abschnitt B4.4/4.5), benötigen Sie nach Eingabe des richtigen Passworts zum Entsperren des /boot/initrd.img-Images ein Passwort zum Booten des Betriebssystemkernels/Root bzw Der geheime Schlüssel wird automatisch durch „skey“ ersetzt, sodass die Passphrase nicht erneut eingegeben werden muss.
Vollständige Festplattenverschlüsselung von Windows Linux-installierten Systemen. Verschlüsselter Multiboot
(Screenshot „Automatische Ersetzung des Geheimschlüssels“).

*Als nächstes startet der bekannte GNU/Linux-Bootvorgang mit Benutzerkonto-Authentifizierung.
Vollständige Festplattenverschlüsselung von Windows Linux-installierten Systemen. Verschlüsselter Multiboot

*Nach der Benutzerautorisierung und Anmeldung am Betriebssystem müssen Sie /boot/initrd.img erneut aktualisieren (siehe Frage 4.6).

update-initramfs -u -k all

Und im Falle zusätzlicher Zeilen im GRUB2-Menü (vom Pickup OS-m mit Live-USB) Sie loswerden

mount /dev/sda6 /mnt
grub-mkconfig -o /mnt/boot/grub/grub.cfg

Eine kurze Zusammenfassung der GNU/Linux-Systemverschlüsselung:

  • GNU/Linuxinux ist vollständig verschlüsselt, einschließlich /boot/kernel und initrd;
  • Der geheime Schlüssel ist in initrd.img verpackt.
  • aktuelles Autorisierungsschema (Eingabe eines Passworts zum Entsperren von initrd; Passwort/Schlüssel zum Booten des Betriebssystems; Passwort für die Autorisierung des Linux-Kontos).

Die Blockpartitionssystemverschlüsselung „Einfache GRUB2-Konfiguration“ ist abgeschlossen.

C6. Erweiterte GRUB2-Konfiguration. Bootloader-Schutz mit digitaler Signatur + AuthentifizierungsschutzGNU/Linux ist vollständig verschlüsselt, aber der Bootloader kann nicht verschlüsselt werden – diese Bedingung wird vom BIOS vorgegeben. Aus diesem Grund ist ein verschlüsselter Kettenstart mit GRUB2 nicht möglich, ein einfacher Kettenstart ist jedoch möglich/verfügbar, was aus Sicherheitsgründen nicht erforderlich ist [siehe unten]. P. F.].
Für den „anfälligen“ GRUB2 haben die Entwickler den Bootloader-Schutzalgorithmus „Signierung/Authentifizierung“ implementiert.

  • Wenn der Bootloader mit „seiner eigenen digitalen Signatur“ geschützt ist, führt eine externe Änderung von Dateien oder der Versuch, zusätzliche Module in diesen Bootloader zu laden, dazu, dass der Bootvorgang blockiert wird.
  • Wenn Sie den Bootloader mit Authentifizierung schützen, müssen Sie den Benutzernamen und das Passwort des Superuser-GRUB2 eingeben, um den Start eines Distributionskits auszuwählen oder zusätzliche Befehle in die CLI einzugeben.

C6.1. Schützen des Bootloaders durch AuthentifizierungStellen Sie sicher, dass Sie ein Terminal mit einem verschlüsselten Betriebssystem verwenden

ls /<Tab-Tab> #обнаружить файл-маркер

Erstellen Sie ein Superuser-Passwort zur Autorisierung in GRUB2

grub-mkpasswd-pbkdf2 #введите/повторите пароль суперпользователя. 

Holen Sie sich den Passwort-Hash. Etwas wie das

grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8

Mounten Sie die GRUB-Partition

mount /dev/sda6 /mnt 

Bearbeiten Sie die Konfiguration

nano -$ /mnt/boot/grub/grub.cfg 

Überprüfen Sie bei der Dateisuche, dass in „grub.cfg“ („-unrestricted“ „-user“) keine Flags vorhanden sind.
ganz am Ende hinzufügen (vor Zeile ### END /etc/grub.d/41_custom ###)
„set superusers="root"
passwort_pbkdf2 Root-Hash".

Sollte so etwas sein

# Diese Datei bietet eine einfache Möglichkeit, benutzerdefinierte Menüeinträge hinzuzufügen. Geben Sie einfach das ein
# Menüeinträge, die Sie nach diesem Kommentar hinzufügen möchten. Achten Sie darauf, dass Sie sich nicht ändern
# die 'exec tail' Zeile oben.
### ENDE /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; Dann
Quelle ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; Dann
Quelle $prefix/custom.cfg;
fi
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### ENDE /etc/grub.d/41_custom ###
#

Wenn Sie den Befehl „grub-mkconfig -o /mnt/boot/grub/grub.cfg“ häufig verwenden und nicht jedes Mal Änderungen an grub.cfg vornehmen möchten, geben Sie die obigen Zeilen ein (Login: Passwort) zum GRUB-Benutzerskript ganz unten

nano /etc/grub.d/41_custom 

Katze<<EOF
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
EOF

Beim Generieren der Konfiguration „grub-mkconfig -o /mnt/boot/grub/grub.cfg“ werden die für die Authentifizierung verantwortlichen Zeilen automatisch zu grub.cfg hinzugefügt.
Mit diesem Schritt ist die Einrichtung der GRUB2-Authentifizierung abgeschlossen.

C6.2. Schutz des Bootloaders mit einer digitalen SignaturEs wird davon ausgegangen, dass Sie bereits über Ihren persönlichen PGP-Verschlüsselungsschlüssel verfügen (oder einen solchen Schlüssel erstellen). Auf dem System muss kryptografische Software installiert sein: gnuPG; Kleopatra/GPA; Seepferdchen. Krypto-Software wird Ihnen in all diesen Fällen das Leben erheblich erleichtern. Seahorse – stabile Version des Pakets 3.14.0 (Die oben genannten Versionen, zum Beispiel V3.20, sind minderwertig und weisen erhebliche Fehler auf).

Der PGP-Schlüssel muss nur in der su-Umgebung generiert/ausgeführt/hinzugefügt werden!

Generieren Sie einen persönlichen Verschlüsselungsschlüssel

gpg - -gen-key

Exportieren Sie Ihren Schlüssel

gpg --export -o ~/perskey

Hängen Sie das logische Laufwerk im Betriebssystem ein, falls es noch nicht gemountet ist

mount /dev/sda6 /mnt #sda6 – раздел GRUB2

Bereinigen Sie die GRUB2-Partition

rm -rf /mnt/

Installieren Sie GRUB2 in sda6, indem Sie Ihren privaten Schlüssel in das Haupt-GRUB-Image „core.img“ einfügen.

grub-install --force --modules="gcry_sha256 gcry_sha512 signature_test gcry_dsa gcry_rsa" -k ~/perskey --root-directory=/mnt /dev/sda6

Optionen
* --force – Installiert den Bootloader und umgeht alle Warnungen, die immer vorhanden sind (erforderliche Flagge).
* --modules="gcry_sha256 gcry_sha512 signatur_test gcry_dsa gcry_rsa" – weist GRUB2 an, die erforderlichen Module beim PC-Start vorab zu laden.
* -k ~/perskey – Pfad zum „PGP-Schlüssel“ (Nachdem der Schlüssel in ein Bild gepackt wurde, kann er gelöscht werden.)
* --root-directory -Setzen Sie das Boot-Verzeichnis auf das SDA6-Root-Verzeichnis
/dev/sda6 ist Ihre sdaX-Partition.

grub.cfg generieren/aktualisieren

grub-mkconfig  -o /mnt/boot/grub/grub.cfg

Fügen Sie die Zeile „trust /boot/grub/perskey“ am Ende der Datei „grub.cfg“ hinzu (Die Verwendung des PGP-Schlüssels erzwingen.) Da wir GRUB2 mit einer Reihe von Modulen installiert haben, einschließlich des Signaturmoduls „signature_test.mod“, entfällt die Notwendigkeit, der Konfiguration Befehle wie „set check_signatures=enforce“ hinzuzufügen.

Sollte ungefähr so ​​aussehen (Endzeilen in der Datei grub.cfg)

### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; Dann
Quelle ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; Dann
Quelle $prefix/custom.cfg;
fi
vertraue /boot/grub/perskey
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### ENDE /etc/grub.d/41_custom ###
#

Der Pfad zu „/boot/grub/perskey“ muss nicht auf eine bestimmte Festplattenpartition verweisen, zum Beispiel hd0,6, denn der Bootloader selbst ist „root“ der Standardpfad der Partition, auf der GRUB2 installiert ist (siehe set rot=..).

GRUB2 signieren (alle Dateien in allen /GRUB-Verzeichnissen) mit Ihrem „Perskey“-Schlüssel.
Einfache Lösung zum Unterschreiben (für Nautilus/Caja Explorer): Installieren Sie die „Seahorse“-Erweiterung für den Explorer aus dem Repository. Ihr Schlüssel muss der su-Umgebung hinzugefügt werden.
Öffnen Sie den Explorer über sudo „/mnt/boot“ – RMB – signieren. Auf dem Bildschirm sieht es so aus

Vollständige Festplattenverschlüsselung von Windows Linux-installierten Systemen. Verschlüsselter Multiboot

Der Schlüssel selbst ist „/mnt/boot/grub/perskey“ (in das Grub-Verzeichnis kopieren) muss ebenfalls mit seiner eigenen Unterschrift unterzeichnet werden. Überprüfen Sie, ob die Dateisignaturen [*.sig] im Verzeichnis/in den Unterverzeichnissen angezeigt werden.
Auf die oben beschriebene Weise signieren wir „/boot“ (unser Kernel, initrd). Wenn Ihre Zeit etwas wert ist, dann macht diese Methode das Schreiben eines Bash-Skripts zum Signieren „vieler Dateien“ überflüssig.

Zum Entfernen aller Bootloader-Signaturen (falls etwas schief gelaufen ist)

rm -f $(find /mnt/boot/grub -type f -name '*.sig')

Um den Bootloader nach dem Update des Systems nicht zu signieren, frieren wir alle Update-Pakete im Zusammenhang mit GRUB2 ein.

apt-mark hold grub-common grub-pc grub-pc-bin grub2 grub2-common

Mit diesem Schritt <Schutz des Bootloaders mit einer digitalen Signatur> ist die erweiterte Konfiguration von GRUB2 abgeschlossen.

C6.3. Proof-Test des GRUB2-Bootloaders, geschützt durch digitale Signatur und AuthentifizierungGRUB2. Bei der Auswahl einer GNU/Linux-Distribution oder beim Aufrufen der CLI (Befehlszeile) Superuser-Autorisierung ist erforderlich. Nach Eingabe des korrekten Logins/Passwortes benötigen Sie das Passwort von initrd

Vollständige Festplattenverschlüsselung von Windows Linux-installierten Systemen. Verschlüsselter Multiboot
Screenshot, erfolgreiche Authentifizierung des GRUB2-Superusers.

Wenn Sie eine der GRUB2-Dateien fälschen / Änderungen an grub.cfg vornehmen oder die Datei / Signatur löschen, laden Sie die schädliche module.mod, dann wird eine entsprechende Warnung angezeigt. Der GRUB2-Start wird angehalten.

Vollständige Festplattenverschlüsselung von Windows Linux-installierten Systemen. Verschlüsselter Multiboot
Screenshot, ein Versuch, „von außen“ in GRUB2 einzugreifen.

Bei „normalem“ Start „kein Eingriff“ ist der System-Exit-Code-Status „0“. Daher ist nicht bekannt, ob der Schutz funktioniert oder nicht. (d. h. „mit oder ohne Bootloader-Schutz mit Signatur“, beim normalen Booten ist der Status derselbe „0“ – das ist schlecht).

Wie überprüfe ich den Schutz digitaler Signaturen?

Unbequeme Möglichkeit zur Überprüfung: Fälschen/Entfernen Sie das von GRUB2 verwendete Modul, entfernen Sie beispielsweise die Signatur luks.mod.sig und erhalten Sie eine Fehlermeldung.

Der richtige Weg besteht darin, zur CLI des Bootloaders zu gehen und den Befehl einzugeben

trust_list

Als Antwort sollten sie einen „perskey“-Fingerabdruck erhalten. Wenn der Status „0“ ist, funktioniert der Signaturschutz nicht. Überprüfen Sie Abschnitt C6.2 noch einmal.
Mit diesem Schritt ist die erweiterte Einstellung „GRUB2 mit digitaler Signatur und Authentifizierung schützen“ beendet.

C7 Alternative Methode zum Sichern des GRUB2-Bootloaders mit HashingDie oben beschriebene Methode „Schutz des CPU-Laders / Authentifizierung“ ist ein Klassiker. Aufgrund der Unvollkommenheit von GRUB2 ist es unter paranoiden Bedingungen einem echten Angriff ausgesetzt, auf den ich weiter unten in Absatz [F] eingehen werde. Darüber hinaus ist es nach der Aktualisierung des Betriebssystems/Kernels erforderlich, den Bootloader neu zu signieren.

Schutz des GRUB2-Bootloaders durch Hashing

Vorteile gegenüber den Klassikern:

  • Höhere Zuverlässigkeit (Hashing/Überprüfung erfolgt nur von einer verschlüsselten lokalen Ressource. Die gesamte zugewiesene Partition unter GRUB2 wird auf Änderungen kontrolliert, und alles andere ist verschlüsselt, im klassischen Schema mit CPU-Loader-Schutz/Authentifizierung werden nur Dateien kontrolliert, aber nicht frei Raum, in dem „etwas Unheimliches“ hinzugefügt werden kann).
  • Verschlüsselte Protokollierung (Dem Schema wird ein lesbares, persönliches, verschlüsseltes Protokoll hinzugefügt.)
  • Geschwindigkeit (Der Schutz/die Überprüfung der gesamten für GRUB2 zugewiesenen Partition erfolgt fast sofort).
  • Automatisierung aller kryptografischen Prozesse.

Nachteile der Klassiker.

  • Unterschriftenfälschung (Theoretisch ist es möglich, eine bestimmte Hash-Funktionskollision zu finden).
  • Erhöhter Schwierigkeitsgrad (im Vergleich zu den Klassikern sind etwas mehr Kenntnisse des GNU/Linux-Betriebssystems erforderlich).

So funktioniert die GRUB2/Partition-Hashing-Idee

Der GRUB2-Abschnitt ist „signiert“, beim Laden des Betriebssystems wird der Bootloader-Abschnitt auf Unveränderlichkeit überprüft, gefolgt von der Protokollierung in einer sicheren Umgebung (verschlüsselt). Wenn der Bootloader oder seine Partition kompromittiert ist, wird zusätzlich zum Invasionsprotokoll Folgendes angezeigt

Ding.Vollständige Festplattenverschlüsselung von Windows Linux-installierten Systemen. Verschlüsselter Multiboot

Eine ähnliche Prüfung findet viermal täglich statt, wodurch die Systemressourcen nicht belastet werden.
Mit dem Befehl „-$ check_GRUB“ erfolgt jederzeit eine sofortige Prüfung ohne Protokollierung, aber mit Informationsausgabe an die CLI.
Mit dem Befehl „-$ sudo GRUB_signature“ wird der GRUB2-Bootloader/die GRUBXNUMX-Partition sofort neu signiert und seine Protokollierung aktualisiert (wird nach dem Betriebssystem-/Boot-Update benötigt) und das Leben geht weiter.

Implementierung der Hashing-Methode des Bootloaders und seiner Partition

0) Signieren wir den GRUB-Bootloader/die GRUB-Partition, indem wir sie zunächst unter /media/username mounten

-$ hashdeep -c md5 -r /media/username/GRUB > /podpis.txt

1) Wir erstellen ein Skript ohne Erweiterung im Stammverzeichnis des verschlüsselten Betriebssystems ~/podpis und wenden die erforderlichen Rechte 744 Sicherheit und Schutz vor dem „Narren“ an.

Mit Inhalt füllen

#!/bin/bash

#Проверка всего раздела выделенного под загрузчик GRUB2 на неизменность.
#Ведется лог "о вторжении/успешной проверке каталога", короче говоря ведется полный лог с тройной вербализацией. Внимание! обратить взор на пути: хранить ЦП GRUB2 только на зашифрованном разделе OS GNU/Linux. 
echo -e "******************************************************************n" >> '/var/log/podpis.txt' && date >> '/var/log/podpis.txt' && hashdeep -vvv -a -k '/podpis.txt' -r '/media/username/GRUB' >> '/var/log/podpis.txt'

a=`tail '/var/log/podpis.txt' | grep failed` #не использовать "cat"!! 
b="hashdeep: Audit failed"

#Условие: в случае любых каких-либо изменений в разделе выделенном под GRUB2 к полному логу пишется второй отдельный краткий лог "только о вторжении" и выводится на монитор мигание gif-ки "warning".
if [[ "$a" = "$b" ]] 
then
echo -e "****n" >> '/var/log/vtorjenie.txt' && echo "vtorjenie" >> '/var/log/vtorjenie.txt' && date >> '/var/log/vtorjenie.txt' & sudo -u username DISPLAY=:0 eom '/warning.gif' 
fi

Führen Sie das Skript aus su, das Hashing der GRUB-Partition und ihres Bootloaders wird überprüft, speichern Sie das Protokoll.

Erstellen oder kopieren wir beispielsweise eine „schädliche Datei“ [virus.mod] auf die GRUB2-Partition und führen eine temporäre Prüfung/Test durch:

-$ hashdeep -vvv -a -k '/podpis.txt' -r '/media/username/GRUB

Die CLI sollte eine Invasion unserer Hochburg erleben.#Anmeldung in der CLI entfernt

Ср янв  2 11::41 MSK 2020
/media/username/GRUB/boot/grub/virus.mod: Moved from /media/username/GRUB/1nononoshifr
/media/username/GRUB/boot/grub/i386-pc/mda_text.mod: Ok
/media/username/GRUB/boot/grub/grub.cfg: Ok
hashdeep: Audit failed
   Input files examined: 0
  Known files expecting: 0
          Files matched: 325
Files partially matched: 0
            Files moved: 1
        New files found: 0
  Known files not found: 0

#Wie Sie sehen können, wurde „Dateien verschoben: 1 und Prüfung fehlgeschlagen“ angezeigt, was bedeutet, dass die Prüfung fehlgeschlagen ist.
Aufgrund der Besonderheiten des getesteten Bereichs wird statt „Neue Dateien gefunden“ > „Dateien verschoben“

2) Fügen Sie das GIF hier ein > ~/warning.gif, setzen Sie die Berechtigungen auf 744.

3) Konfigurieren von fstab zum automatischen Mounten der GRUB-Partition beim Booten

-$ sudo nano /etc/fstab

LABEL=GRUB /media/username/GRUB ext4 ist standardmäßig 0 0

4) Wir drehen den Stamm

-$ sudo nano /etc/logrotate.d/podpis 

/var/log/subpis.txt {
Unterricht
drehen 50
Größe 5M
Datumsangabe
komprimieren
verzögernkomprimieren
altes Verzeichnis /var/log/old
}

/var/log/vtorjenie.txt {
monatlich
drehen 5
Größe 5M
Datumsangabe
altes Verzeichnis /var/log/old
}

5) Einen Job zu Cron hinzufügen

-$ sudo crontab -e

rebooten '/Abonnement'
0 */6 * * * '/subpis

6) Erstellen Sie permanente Aliase

-$ sudo su
-$ echo "alias подпись_GRUB='hashdeep -c md5 -r /media/username/GRUB > /podpis.txt'" >> /root/.bashrc && bash
-$ echo "alias проверка_GRUB='hashdeep -vvv -a -k '/podpis.txt' -r /media/username/GRUB'" >> .bashrc && bash

Nach dem Betriebssystem-Update -$ apt-get upgrade Neusignierung unserer GRUB-Partition
-$ подпись_GRUB
Mit diesem Schritt ist der Hash-Schutz der GRUB-Partition abgeschlossen.

[D] Bereinigung – Vernichtung unverschlüsselter Daten

Löschen Sie Ihre persönlichen Dateien so vollständig, dass „nicht einmal Gott sie lesen kann“, so Trey Gowdy, Sprecher von South Carolina.

Wie üblich gibt es verschiedene „Mythen und Legenden“, über die Wiederherstellung von Daten nach dem Löschen von der Festplatte. Wenn Sie an Cyber-Hexerei glauben oder Mitglied der Dr. Web-Community sind und noch nie versucht haben, Daten nach dem Löschen/Überschreiben wiederherzustellen (z. B. Wiederherstellung mit R-Studio)Wenn die vorgeschlagene Methode wahrscheinlich nicht zu Ihnen passt, verwenden Sie diejenige, die Ihnen am nächsten liegt.

Nach erfolgreicher Migration von GNU/Linux auf eine verschlüsselte Partition muss die alte Kopie dauerhaft gelöscht werden. Universelle Reinigungsmethode: Software für Windows/Linux, kostenlose GUI-Software BleachBit.
Быстро Formatieren der Partition, die Daten, die Sie vernichten möchten (mit Gparted), Führen Sie BleachBit aus, wählen Sie „Freien Speicherplatz bereinigen“ – wählen Sie eine Partition aus (Ihr sdaX mit einer früheren Kopie von GNU/Linux), der Reinigungsvorgang beginnt. BleachBit – löscht die Festplatte in einem Durchgang – das ist es, was „wir brauchen“, aber! Dies funktioniert nur theoretisch, wenn Sie das Laufwerk formatiert und mit der BB v2.0-Software gereinigt haben.

Achtung! BB löscht die Festplatte und hinterlässt Metadaten und Dateinamen, wenn Daten zerstört werden (Ccleaner – hinterlässt keine Metadaten).

Und der Mythos über die Möglichkeit der Datenwiederherstellung ist nicht wirklich ein Mythos.Bleachbit V2.0-2 ehemaliges instabiles Betriebssystem-Debian-Paket (und jede andere ähnliche Software: sfill; Wipe-Nautilus – wurden auch in diesem schmutzigen Geschäft gesehen) Hatte tatsächlich einen kritischen Fehler: die Funktion „Freiraum löschen“. es funktioniert falsch auf Festplatten/Flash-Laufwerken (ntfs/ext4). Software dieser Art überschreibt beim Bereinigen des freien Speicherplatzes nicht die gesamte Festplatte, wie viele Benutzer denken. Und einige (viel) gelöschte Daten Das Betriebssystem/die Software behandelt diese Daten als nicht gelöschte/Benutzerdaten und überspringt diese Dateien beim Löschen des Betriebssystems/Betriebssystems. Das Problem ist, dass die Festplatte nach so langer Zeit gereinigt wird „Gelöschte Dateien“ können wiederhergestellt werden auch nach mehr als 3 Durchgängen des Scheibenwischens.
Auf GNU/Linux in Bleachbit 2.0-2 Die Funktionen zum dauerhaften Löschen von Dateien und Verzeichnissen funktionieren zuverlässig, jedoch nicht zum Freimachen von freiem Speicherplatz. Zum Vergleich: Unter Windows in der CCleaner-Software funktioniert die Funktion „OSB für NTFS“ einwandfrei und Gott kann die gelöschten Daten wirklich nicht lesen.

Und so gründlich entfernen „kompromittierend“ alte unverschlüsselte Daten, Bleachbit benötigt direkten Zugriff auf diese DatenDann nutzen Sie die Funktion „Dateien/Verzeichnisse unwiederbringlich löschen“.
Um „gelöschte Dateien mit regulären Betriebssystem-Tools“ in Windows zu löschen, verwenden Sie CCleaner / BB mit der Funktion „OSB“. Unter GNU/Linux über dieses Problem (Gelöschte Dateien entfernen) Sie müssen selbst üben (Löschen von Daten + ein unabhängiger Versuch, sie wiederherzustellen und sich nicht auf die Softwareversion zu verlassen (wenn kein Lesezeichen, dann ein Fehler))Nur in diesem Fall können Sie den Mechanismus dieses Problems verstehen und die gelöschten Daten vollständig entfernen.

Bleachbit v3.0 hat nicht überprüft, möglicherweise wurde das Problem bereits behoben.
Bleachbit v2.0 funktioniert ehrlich.

Mit diesem Schritt ist die Datenträgerbereinigung abgeschlossen.

[E] Generisches verschlüsseltes Betriebssystem-Backup

Jeder Benutzer hat seine eigene Methode zum Sichern von Daten, aber die verschlüsselten Daten von „System OS“ erfordern eine etwas andere Herangehensweise an die Aufgabe. Einheitliche Software wie „Clonezilla“ und ähnliche Software können nicht direkt mit verschlüsselten Daten arbeiten.

Festlegen der Sicherungsaufgabe für verschlüsselte Blockgeräte:

  1. Universalität – der gleiche Algorithmus/die gleiche Backup-Software für Windows/Linux;
  2. die Möglichkeit, in der Konsole mit jedem Live-USB-GNU/Linux zu arbeiten, ohne dass zusätzliche Software-Downloads erforderlich sind (aber trotzdem die GUI empfehlen);
  3. Backup-Sicherheit – gespeicherte „Bilder“ müssen verschlüsselt / passwortgeschützt sein;
  4. die Größe der verschlüsselten Daten muss mit der Größe der tatsächlich kopierten Daten übereinstimmen;
  5. bequemes Extrahieren der benötigten Dateien aus dem Backup (Es ist nicht erforderlich, zuerst den gesamten Abschnitt zu entschlüsseln.)

Zum Beispiel Sicherung/Wiederherstellung über das Dienstprogramm „dd“.

dd if=/dev/sda7 of=/путь/sda7.img bs=7M conv=sync,noerror
dd if=/путь/sda7.img of=/dev/sda7 bs=7M conv=sync,noerror

Entspricht fast allen Punkten der Aufgabe, hält aber laut Absatz 4 der Kritik nicht stand, da es die gesamte Festplattenpartition inklusive freiem Speicherplatz kopiert – uninteressant.

Zum Beispiel GNU/Linux-Backup über [tar" | gpg] ist praktisch, aber für die Windows-Sicherung müssen Sie nach einer anderen Lösung suchen – nicht interessant.

E1. Universelles Windows/Linux-Backup. Bündeln Sie rsync (Grsync) + VeraCrypt-VolumeAlgorithmus zum Erstellen eines Backups:

  1. Erstellen eines verschlüsselten Containers (Volume/Datei) VeraCrypt für Betriebssystem;
  2. Übertragung/Synchronisierung des Betriebssystems mithilfe der Rsync-Software in den VeraCrypt-Kryptocontainer;
  3. Laden Sie bei Bedarf das VeraCrypt-Volume auf www hoch.

Das Erstellen eines verschlüsselten VeraCrypt-Containers hat seine eigenen Eigenschaften:
Erstellen eines dynamischen Volumens (Die Erstellung von DT ist nur unter Windows verfügbar, es kann auch unter GNU/Linux verwendet werden);
Erstellen einer normalen Lautstärke, es besteht jedoch eine Anforderung „paranoider Natur“ (laut Entwickler) - Containerformatierung.

Ein dynamisches Volume wird in Windows fast sofort erstellt, aber beim Kopieren von Daten von GNU/Linux > VeraCrypt DT wird die Gesamtleistung des Sicherungsvorgangs erheblich reduziert.

Es wird ein reguläres Twofish-Volume mit 70 GB erstellt (Sagen wir, durchschnittliche PC-Leistung) auf Festplatte ~ in einer halben Stunde (Überschreiben der alten Containerdaten in einem Durchgang, aus Sicherheitsgründen). Von VeraCrypt Windows/Linux wurde die Funktion zum schnellen Formatieren eines Volumes während seiner Erstellung entfernt, sodass die Erstellung eines Containers nur durch „Überschreiben in einem Durchgang“ oder die Erstellung eines dynamischen Volumes mit geringer Leistung möglich ist.

Erstellen Sie ein reguläres VeraCrypt-Volume (nicht dynamisch/ntfs), es sollte keine Probleme geben.

Einrichten/Erstellen/Öffnen des Containers in der VeraCrypt-GUI > GNU/Linux Live-USB (Das Volume wird automatisch unter /media/veracrypt2 gemountet, das Windows-Betriebssystem-Volume wird unter /media/veracrypt1 gemountet). Erstellen einer verschlüsselten Windows-Sicherung mithilfe der rsync-GUI (grsync)indem Sie die Kästchen ankreuzen.

Vollständige Festplattenverschlüsselung von Windows Linux-installierten Systemen. Verschlüsselter Multiboot

Warten Sie das Ende des Vorgangs ab. Nach Abschluss der Sicherung verfügen wir über eine verschlüsselte Datei.

Erstellen Sie auf ähnliche Weise eine Sicherungskopie des GNU/Linux-Betriebssystems, indem Sie die Option „Windows-kompatibel“ der rsync-GUI deaktivieren.

Achtung! Erstellen Sie einen Veracrypt-Container für ein „GNU/Linux-Backup“ im Dateisystem ext4. Wenn Sie ein Backup in einen NTFS-Container erstellen, verlieren Sie beim Wiederherstellen einer solchen Kopie alle Rechte/Gruppen für alle Ihre Daten.

Sie können alle Vorgänge im Terminal durchführen. Grundlegende Optionen für rsync:
* -g – Gruppen speichern;
* -P --progress – der Status der Bearbeitungszeit der Datei;
* -H -Hardlinks so kopieren, wie sie sind;
* -a -Archivmodus (mehrere rlptgoD-Flags);
* -v -Verbalisierung.

Wenn Sie über die Konsole in der Cryptsetup-Software ein „Windows VeraCrypt-Volume“ mounten möchten, können Sie einen Alias ​​erstellen (su)

echo "alias veramount='cryptsetup open --veracrypt --tcrypt-system --type tcrypt /dev/sdaX Windows_crypt && mount /dev/mapper/ Windows_crypt /media/veracrypt1'" >> .bashrc && bash

Beim Befehl „veramount images“ werden Sie nun aufgefordert, eine Passphrase einzugeben, und das verschlüsselte Windows-Systemvolume wird im Betriebssystem bereitgestellt.

Ordnen Sie das VeraCrypt-Systemvolume im Befehl „cryptsetup“ zu/mounten Sie es

cryptsetup open --veracrypt --tcrypt-system --type tcrypt /dev/sdaX Windows_crypt
mount /dev/mapper/Windows_crypt /mnt

Ordnen Sie die VeraCrypt-Partition/den VeraCrypt-Container im Befehl „cryptsetup“ zu/mounten Sie sie

cryptsetup open --veracrypt --type tcrypt /dev/sdaY test_crypt
mount /dev/mapper/test_crypt /mnt

Anstelle eines Alias ​​fügen wir (Skript zum automatischen Laden) ein Systemvolume mit Windows-Betriebssystem und einer logisch verschlüsselten NTFS-Festplatte zum automatischen Laden von GNU/Linux hinzu

Erstellen Sie ein Skript und speichern Sie es unter ~/VeraOpen.sh

printf 'Ym9i' | base64 -d | cryptsetup open --veracrypt --tcrypt-system --type tcrypt /dev/sda3 Windows_crypt && mount /dev/mapper/Windows_crypt /media/Winda7 #декодируем пароль из base64 (bob) и отправляем его на запрос ввода пароля при монтировании системного диска ОС Windows.
printf 'Ym9i' | base64 -d | cryptsetup open --veracrypt --type tcrypt /dev/sda1 ntfscrypt && mount /dev/mapper/ntfscrypt /media/КонтейнерНтфс #аналогично, но монтируем логический диск ntfs.

Wir vergeben „wahre“ Rechte:

sudo chmod 100 /VeraOpen.sh

Erstellen Sie zwei identische Dateien (gleicher Name!) in /etc/rc.local und ~/etc/init.d/rc.local
Füllen der Akten

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will «exit 0» on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

sh -c "sleep 1 && '/VeraOpen.sh'" #после загрузки ОС, ждём ~ 1с и только потом монтируем диски.
exit 0

Wir vergeben „wahre“ Rechte:

sudo chmod 100 /etc/rc.local && sudo chmod 100 /etc/init.d/rc.local 

Das war's, jetzt müssen wir beim Booten von GNU/Linux keine Passwörter mehr eingeben, um verschlüsselte NTFS-Festplatten zu mounten, die Festplatten werden automatisch gemountet.

Eine kurze Anmerkung zu dem, was oben in Absatz E1 Schritt für Schritt beschrieben wurde (aber jetzt für OS GNU/Linux)
1) Erstellen Sie ein Volume in fs ext4 > 4 GB (für eine Datei) unter Linux in Veracrypt [Crypto Box].
2) Starten Sie den USB-Stick neu.
3) ~$ cryptsetup öffne /dev/sda7 Lunux #map die verschlüsselte Partition.
4) ~$ mount /dev/mapper/Linux /mnt #mounten Sie die verschlüsselte Partition in /mnt.
5) ~$ mkdir mnt2 #ein Verzeichnis für die zukünftige Sicherung erstellen.
6) ~$ cryptsetup open --veracrypt --type tcrypt ~/Cryptobox Cryptobox && mount /dev/mapper/Cryptobox /mnt2 #Mappen Sie das Veracrypt-Volume mit dem Namen „Cryptobox“ zu und mounten Sie die Cryptobox in /mnt2.
7) ~$ rsync -avlxhHX --progress /mnt /mnt2/ #Vorgang zum Sichern einer verschlüsselten Partition auf einem mit Veracrypt verschlüsselten Volume.

(p/s/ Achtung! Wenn Sie ein verschlüsseltes GNU/Linux von einer Architektur/Maschine auf eine andere übertragen, beispielsweise Intel > AMD (d. h. ein Backup von einer verschlüsselten Partition auf eine andere mit Intel > AMD verschlüsselte Partition bereitstellen), vergiss nicht Bearbeiten Sie nach der Übertragung des verschlüsselten Betriebssystems möglicherweise den geheimen Ersatzschlüssel anstelle des Kennworts. der vorherige Schlüssel ~/etc/skey – passt nicht mehr in eine andere verschlüsselte Partition und es ist unerwünscht, unter chroot einen neuen Schlüssel „cryptsetup luksAddKey“ zu erstellen – ein Fehler ist möglich, geben Sie einfach in ~/etc/crypttab vorübergehend „none“ an „anstelle von „/etc/skey““, generieren Sie nach dem Neustart und dem Aufrufen des Betriebssystems Ihren geheimen, ersetzten Schlüssel erneut.

Vergessen Sie als IT-Veteran nicht, die Header verschlüsselter Windows-/Linux-Betriebssystempartitionen separat zu sichern, da sich die Verschlüsselung sonst zu Ihren Ungunsten wendet.
In diesem Schritt ist die Sicherung der verschlüsselten Betriebssysteme abgeschlossen.

[F] Angriff auf den GRUB2-Bootloader

DetailsWenn Sie Ihren Bootloader mit einer digitalen Signatur und/oder Authentifizierung geschützt haben (Siehe Punkt C6.), dann schützt dies nicht vor physischem Zugriff. Auf verschlüsselte Daten kann weiterhin nicht zugegriffen werden, der Schutz wird jedoch umgangen (Digitalen Signaturschutz zurücksetzen) Mit GRUB2 können Cyberschurken ihren Code in den Bootloader einschleusen, ohne Verdacht zu erregen (es sei denn, der Benutzer überwacht den Status des Bootloaders manuell oder erstellt seinen eigenen soliden benutzerdefinierten Skriptcode für grub.cfg).

Angriffsalgorithmus. Eindringling

*Startet den PC über Live-USB. Jede Änderung (Täter) Dateien alarmieren den tatsächlichen Besitzer des PCs über das Eindringen in den Bootloader. Aber eine einfache Neuinstallation von GRUB2 unter Beibehaltung von grub.cfg (und die anschließende Möglichkeit der Bearbeitung) ermöglicht es einem Angreifer, beliebige Dateien zu bearbeiten (In diesem Szenario wird der echte Benutzer beim Laden von GRUB2 nicht benachrichtigt. Der Status ist derselbe <0>)
* Mountet eine unverschlüsselte Partition und speichert „/mnt/boot/grub/grub.cfg“.
* Bootloader neu installieren (Entfernen von „perskey“ aus dem core.img-Bild)

grub-install --force --root-directory=/mnt /dev/sda6

* Gibt „grub.cfg“ > „/mnt/boot/grub/grub.cfg“ zurück und bearbeitet es bei Bedarf, z. B. durch Hinzufügen des Moduls „keylogger.mod“ zum Ordner mit Loader-Modulen in „grub.cfg“. > Zeile „insmod keylogger“. Oder zum Beispiel, wenn der Feind schlau ist, dann nach der Neuinstallation von GRUB2 (alle Unterschriften bleiben bestehen) Es erstellt das Haupt-GRUB2-Image mit „grub-mkimage mit der Option (-c)“. Mit der Option „-c“ können Sie Ihre Konfiguration laden, bevor Sie die Hauptdatei „grub.cfg“ laden. Die Konfiguration kann aus nur einer Zeile bestehen: Weiterleitung zu einer beliebigen „modern.cfg“, gemischt mit beispielsweise ~400 Dateien (Module+Signaturen) im Ordner /boot/grub/i386-pc. In diesem Fall kann der Täter beliebigen Code einführen und Module laden, ohne „/boot/grub/grub.cfg“ zu beeinträchtigen, selbst wenn der Benutzer „hashsum“ auf die Datei angewendet und sie vorübergehend auf dem Bildschirm angezeigt hat.
Der Angreifer muss den Login/das Passwort des GRUB2-Superusers nicht knacken, er muss lediglich die Zeilen kopieren (zuständig für die Authentifizierung) „/boot/grub/grub.cfg“ zu Ihrer „modern.cfg“

set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8

Und der PC-Host verfügt weiterhin über die GRUB2-Superuser-Authentifizierung.

Kettenladung (Bootloader lädt einen anderen Bootloader), wie oben erwähnt, macht keinen Sinn (es hat einen anderen Zweck). Aufgrund des BIOS kann der verschlüsselte Bootloader nicht geladen werden (Beim Kettenladen startet GRUB2 neu > verschlüsseltes GRUB2, Fehler!). Wenn Sie jedoch immer noch die Idee des Kettenladens verwenden, können Sie sicher sein, dass die verschlüsselte geladen wird. (nicht aktualisiert) „grub.cfg“ aus der verschlüsselten Partition. Und das ist auch ein falsches Sicherheitsgefühl, denn alles, was in der verschlüsselten „grub.cfg“ aufgeführt ist (Modulladen) Stapel mit Modulen, die aus unverschlüsseltem GRUB2 geladen werden.

Wenn Sie dies überprüfen möchten, weisen Sie eine andere sdaY-Partition zu bzw. verschlüsseln Sie sie und kopieren Sie GRUB2 dorthin (Grub-Installationsvorgang auf verschlüsselter Partition ist nicht möglich) und in „grub.cfg“ (unverschlüsselte Konfiguration) Ändern Sie die Zeilen wie folgt

menuentry 'GRUBx2' --class parrot --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-382111a2-f993-403c-aa2e-292b5eac4780' {
laden_video
insmod gzio
if [ x$grub_platform = xxen ]; dann insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod-Kryptodisk
insmod lux
insmod gcry_twofish
insmod gcry_twofish
insmod gcry_sha512
insmod ext2
cryptomount -u 15c47d1c4bd34e5289df77bcf60ee838
set root=’cryptouuid/15c47d1c4bd34e5289df77bcf60ee838′
normal /boot/grub/grub.cfg
}

Linien
* insmod – Laden der notwendigen Module, um mit einer verschlüsselten Festplatte zu arbeiten;
* GRUBx2 – der Name der angezeigten Zeile im GRUB2-Bootmenü;
* cryptomount -u 15c47d1c4bd34e5289df77bcf60ee838 - siehe fdisk -l (sda9);
* set root – Root-Einstellung;
* normal /boot/grub/grub.cfg – ausführbare Konfigurationsdatei auf der verschlüsselten Partition.

Die Gewissheit, dass die verschlüsselte „grub.cfg“ geladen wird, ist eine positive Reaktion auf die Eingabe des Passworts / das Entsperren von „sdaY“ bei Auswahl der Zeile „GRUBx2“ im GRUB-Menü.

Beim Arbeiten in der CLI, um Verwirrung zu vermeiden (und prüfen Sie, ob die Umgebungsvariable „set root“ funktioniert hat), Erstellen Sie leere Markierungsdateien, beispielsweise in der verschlüsselten Partition „/shifr_grub“, in der unverschlüsselten Partition „/noshifr_grub“. Validierung in der CLI

cat /Tab-Tab

Wie oben erwähnt, hilft Ihnen dies nicht dabei, schädliche Module herunterzuladen, wenn solche Module auf Ihrem PC landen. Zum Beispiel ein Keylogger, der Tastatureingaben in einer Datei speichern und mit anderen Dateien in „~/i386“ vermischen kann, bis sie von einem Angreifer mit physischem Zugriff auf den PC heruntergeladen werden.

Der einfachste Weg, um zu überprüfen, ob der Schutz durch digitale Signaturen aktiv ist (nicht zurückgesetzt), und niemand ist in den Bootloader eingedrungen, in der CLI geben wir den Befehl ein

list_trusted

Als Antwort erhalten wir einen Wurf unseres „Perskey“, oder wir bekommen nichts, wenn wir angegriffen wurden (Außerdem muss „set check_signatures=enforce“ überprüft werden.).
Ein wesentlicher Nachteil eines solchen Schritts besteht darin, dass Befehle manuell eingegeben werden müssen. Wenn Sie diesen Befehl zu „grub.cfg“ hinzufügen und die Konfiguration digital signieren, ist die vorläufige Ausgabe des Schlüssels auf dem Bildschirm zeitlich zu kurz und Sie haben möglicherweise keine Zeit, die Ausgabe zu sehen, wenn Sie den GRUB2-Start erhalten .
Es gibt niemanden, über den man sich besonders beschweren kann: den Entwickler in seinem Dokumentation Klausel 18.2 erklärt offiziell

„Beachten Sie, dass selbst mit GRUB-Passwortschutz GRUB selbst nicht verhindern kann, dass jemand mit physischem Zugriff auf die Maschine die Firmware-Konfiguration (z. B. Coreboot oder BIOS) dieser Maschine ändert, um zu veranlassen, dass die Maschine von einem anderen (vom Angreifer kontrollierten) Gerät startet.“ GRUB ist bestenfalls nur ein Glied in einer sicheren Boot-Kette.“

GRUB2 ist zu überladen mit Funktionen, die ein Gefühl falscher Sicherheit vermitteln können, und seine Entwicklung hat die Funktionalität von MS-DOS bereits übertroffen, und es ist nur ein Bootloader. Es ist lustig, dass GRUB2 - „tomorrow“ ein Betriebssystem und bootfähige virtuelle GNU / Linux-Maschinen dafür werden kann.

Ein kurzes Video darüber, wie ich den GRUB2-Schutz für digitale Signaturen zurückgesetzt und meinen Eingriff einem echten Benutzer gemeldet habe (Ich habe dich erschreckt, aber statt dem, was im Video gezeigt wird, kannst du einen ungefährlichen, beliebigen Code/.mod schreiben.).

Schlussfolgerungen:

1) Blocksystemverschlüsselung für Windows – einfacher zu implementieren und der Schutz mit einem Passwort ist bequemer als der Schutz mit mehreren Passwörtern mit GNU/Linux-Blocksystemverschlüsselung, fairerweise muss man sagen: Letzteres ist automatisiert.

2) Ich habe den Artikel als relevant und detailliert geschrieben einfach Anleitung zur vollständigen Festplattenverschlüsselung VeraCrypt/LUKS auf einem Heimcomputer, der meiner Meinung nach bei weitem der beste in Runet ist. Das Handbuch umfasst mehr als 50 Zeichen und deckt daher einige interessante Kapitel nicht ab: über Kryptographen, die im Schatten verschwinden/bleiben; über die Tatsache, dass in verschiedenen GNU/Linux-Büchern kaum oder gar nichts über Kryptographie geschrieben wird; über Artikel 51 der Verfassung der Russischen Föderation; Ö Lizenzierung/Verbot Verschlüsselung in Russland, darüber, warum Sie „root/boot“ verschlüsseln müssen. Das Handbuch erwies sich als bereits umfangreich, aber detailliert (beschreibt auch einfache Schritte)Dies wiederum spart Ihnen viel Zeit, wenn Sie in die „echte Verschlüsselung“ einsteigen.

3) Vollständige Festplattenverschlüsselung unter Windows 7 64 durchgeführt; GNU/Linux Parrot 4x; GNU/Debian 9.0/9.5.

4) Einen erfolgreichen Angriff auf implementiert seine GRUB2-Bootloader.

5) Das Tutorial wurde erstellt, um allen Paranoiden in der GUS zu helfen, wo Verschlüsselung gesetzlich erlaubt ist. Und vor allem für diejenigen, die eine vollständige Festplattenverschlüsselung durchführen möchten, ohne ihre konfigurierten Systeme zu zerstören.

6) Überarbeitung und Aktualisierung des Handbuchs, das im Jahr 2020 relevant ist.

[G] Hilfreiche Dokumentation

  1. TrueCrypt-Benutzerhandbuch (Februar 2012 RU)
  2. VeraCrypt-Dokumentation
  3. /usr/share/doc/cryptsetup(-run) [lokale Freigabe] (offizielle ausführliche Dokumentation zum Einrichten der GNU/Linux-Verschlüsselung mit cryptsetup)
  4. Offizielle FAQ zum Kryptosetup (kurze Dokumentation zum Einrichten der GNU/Linux-Verschlüsselung mit cryptsetup)
  5. LUKS-Geräteverschlüsselung (Archlinux-Dokumentation)
  6. Detaillierte Beschreibung der Cryptsetup-Syntax (Arch-Handbuchseite)
  7. Detaillierte Beschreibung von crypttab (Arch-Handbuchseite)
  8. Offizielle GRUB2-Dokumentation.

Schlagworte: vollständige Festplattenverschlüsselung, Partitionsverschlüsselung, vollständige Linux-Festplattenverschlüsselung, LUKS1-Vollsystemverschlüsselung.

An der Umfrage können nur registrierte Benutzer teilnehmen. Einloggenbitte.

Verschlüsseln Sie?

  • 17,1%Ich verschlüssele alles, was ich kann. Ich bin paranoid.14

  • 34,2%Ich verschlüssele nur wichtige Daten.28

  • 14,6%Manchmal verschlüssele ich, manchmal vergesse ich.12

  • 34,2%Nein, ich verschlüssele nicht, das ist umständlich und kostspielig.28

82 Benutzer haben abgestimmt. 22 Benutzer enthielten sich der Stimme.

Source: habr.com

Kommentar hinzufügen