Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
cryptsetup [2008/04/22 14:36] – Festplatte / Partition verschlüsseln Cryptodisk LVM Debian gerald | cryptsetup [2024/02/29 13:36] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | Debian: Daten verschlüsseln | + | |
+ | [[ecryptfs|Debian/ | ||
+ | |||
+ | Ubuntu-Wiki: | ||
+ | |||
+ | ==== Debian: Daten verschlüsseln | ||
+ | |||
+ | [[cryptsetup: | ||
+ | |||
+ | [[cryptsetup: | ||
+ | |||
+ | < | ||
apt-get install cryptsetup | apt-get install cryptsetup | ||
- | http:// | + | </ |
+ | [[http:// | ||
LUKS-Partition vorbereiten | LUKS-Partition vorbereiten | ||
Im Folgenden werde ich an einem Beispiel erklären, welche Befehle benötigt werden um eine verschlüsselte Partition mit dm-crypt/ | Im Folgenden werde ich an einem Beispiel erklären, welche Befehle benötigt werden um eine verschlüsselte Partition mit dm-crypt/ | ||
- | Vorbereitung: | ||
- | Achtung: Nach einmaligem Überschreiben kann man nicht mehr über ein herkömmliches Datenrettungsprogramm an die Datenreste gelangen, aufwändigere Methoden (bei denen die Festplatte im allgemeinen zerlegt werden muss) können das unter Umständen immer noch! Um noch vorhandene Daten wirklich unwiderruflich zu löschen muss die Partition mehrmals überschrieben werden. Es gibt unterschiedliche Meinungen darüber wie oft das nötig ist, ich gehe hier nicht weiter auf dieses Thema ein. | + | Vorbereitung: |
+ | Vor der Initialisierung kann die Partition mit Zufallswerten überschrieben werden. Von außen kann man später die verschlüsselten Daten nicht von den leeren Bereichen mit Zufallswerten unterscheiden. Außerdem werden dabei alte noch vorhandene Datenreste überschrieben. | ||
+ | |||
+ | Achtung: Nach einmaligem Überschreiben kann man nicht mehr über ein herkömmliches Datenrettungsprogramm an die Datenreste gelangen, aufwändigere Methoden (bei denen die Festplatte im allgemeinen zerlegt werden muss) können das unter Umständen immer noch! Um noch vorhandene Daten wirklich unwiderruflich zu löschen muss die Partition mehrmals überschrieben werden. Es gibt unterschiedliche Meinungen darüber wie oft das nötig ist, ich gehe hier nicht weiter auf dieses Thema ein. | ||
In meinem Beispiel wird nun die Partition /dev/hda3 mit Zufallswerten überschrieben. Dazu dient / | In meinem Beispiel wird nun die Partition /dev/hda3 mit Zufallswerten überschrieben. Dazu dient / | ||
+ | < | ||
dd if=/ | dd if=/ | ||
+ | </ | ||
liest jeweils Blöcke von 10 Megabytes Größe aus / | liest jeweils Blöcke von 10 Megabytes Größe aus / | ||
- | Nachdem die Partition vorbereitet wurde muss sie nun über cryptsetup | + | |
+ | Nachdem die Partition vorbereitet wurde muss sie nun über cryptsetup | ||
+ | Außerdem legt es zusätzlich noch ein Dateisystem auf der Partition an. Da die Partition nur unter Linux benutzt werden soll werde ich das ext3-Dateisystem verwenden: | ||
+ | < | ||
sirius:~# luksformat -t ext3 /dev/hda3 | sirius:~# luksformat -t ext3 /dev/hda3 | ||
creating encrypted device on /dev/hda3 | creating encrypted device on /dev/hda3 | ||
Zeile 20: | Zeile 40: | ||
Are you sure? (Type uppercase yes): YES | Are you sure? (Type uppercase yes): YES | ||
- | luksformat fragt nach einem Passwort für die Partition, welches insgesamt dreimal eingegeben werden muss. Abschließend entsperrt es die Partition, legt ein ext3-Dateisystem an und sperrt sie dann wieder. Statt luksformat könnte man auch direkt cryptsetup benutzen, die entsprechenden Befehle wären: | + | </ |
+ | luksformat fragt nach einem Passwort für die Partition, welches insgesamt dreimal eingegeben werden muss. Abschließend entsperrt es die Partition, legt ein ext3-Dateisystem an und sperrt sie dann wieder. | ||
+ | |||
+ | Statt luksformat könnte man auch direkt cryptsetup benutzen, die entsprechenden Befehle wären: | ||
+ | < | ||
cryptsetup luksFormat --cipher aes-cbc-essiv: | cryptsetup luksFormat --cipher aes-cbc-essiv: | ||
cryptsetup luksOpen /dev/hda3 luksformatxxx | cryptsetup luksOpen /dev/hda3 luksformatxxx | ||
mkfs.ext3 / | mkfs.ext3 / | ||
cryptsetup luksClose / | cryptsetup luksClose / | ||
+ | </ | ||
Damit sind die Vorbereitungen angeschlossen und die Partition kann verwendet werden. | Damit sind die Vorbereitungen angeschlossen und die Partition kann verwendet werden. | ||
- | Nach oben | + | |
- | Partition benutzen - cryptsetup und mount | + | ==== Partition benutzen - cryptsetup und mount ==== |
- | Um die Partition nun zu mounten muss sie entsperrt werden. Dabei wird das Passwort oder der Schlüssel angegeben. cryptsetup konfiguriert den Device Mapper entsprechend, | + | |
+ | Um die Partition nun zu mounten muss sie entsperrt werden. Dabei wird das Passwort oder der Schlüssel angegeben. cryptsetup konfiguriert den Device Mapper entsprechend, | ||
+ | Der Name dieser Datei ist frei wählbar, zur Übersichtlichkeit benutze ich hda3_crypt: | ||
+ | < | ||
sirius:~# cryptsetup luksOpen /dev/hda3 hda3_crypt | sirius:~# cryptsetup luksOpen /dev/hda3 hda3_crypt | ||
Enter LUKS passphrase: | Enter LUKS passphrase: | ||
Zeile 35: | Zeile 63: | ||
sirius:~# ls /dev/mapper | sirius:~# ls /dev/mapper | ||
control hda3_crypt | control hda3_crypt | ||
+ | </ | ||
Die Partition ist damit entsperrt. Alle Zugriffe auf / | Die Partition ist damit entsperrt. Alle Zugriffe auf / | ||
+ | < | ||
sirius:~# mount / | sirius:~# mount / | ||
sirius:~# mount | grep hda3 | sirius:~# mount | grep hda3 | ||
/ | / | ||
+ | </ | ||
Wie man sehen kann benötigt mount keine Informationen über die Verschlüsselung, | Wie man sehen kann benötigt mount keine Informationen über die Verschlüsselung, | ||
- | Nach dem Entsperren kann man über dieses Gerät auf alle Daten auf der Partition zugreifen. Möchte man die Partition vorübergehend nicht mehr verwenden kann man sie sperren - dazu wird sie ausgehängt und anschließend die Device-Mapper-Verknüpfung gelöscht: | + | |
+ | Nach dem Entsperren kann man über dieses Gerät auf alle Daten auf der Partition zugreifen. | ||
+ | Möchte man die Partition vorübergehend nicht mehr verwenden kann man sie sperren - dazu wird sie ausgehängt und anschließend die Device-Mapper-Verknüpfung gelöscht: | ||
+ | < | ||
sirius:~# umount /mnt | sirius:~# umount /mnt | ||
sirius:~# cryptsetup luksClose / | sirius:~# cryptsetup luksClose / | ||
sirius:~# ls /dev/mapper | sirius:~# ls /dev/mapper | ||
control | control | ||
- | Nach oben | + | </ |
- | Einbinden automatisieren - crypttab | + | ==== Einbinden automatisieren - crypttab |
- | Auf die oben beschriebene Art und Weise kann man die verschlüsselten Partitionen von Hand aktivieren und deaktivieren. Auf die Dauer ist das aber sehr lästig. cryptsetup sieht allerdings eine Möglichkeit vor, Partitionen automatisch beim Hochfahren des Systems zu entsperren. Dazu trägt man diese in der Datei / | + | |
+ | Auf die oben beschriebene Art und Weise kann man die verschlüsselten Partitionen von Hand aktivieren und deaktivieren. Auf die Dauer ist das aber sehr lästig. | ||
+ | cryptsetup sieht allerdings eine Möglichkeit vor, Partitionen automatisch beim Hochfahren des Systems zu entsperren. | ||
+ | Dazu trägt man diese in der Datei / | ||
Der Name der Device-Mapper-Verknüpfung, | Der Name der Device-Mapper-Verknüpfung, | ||
+ | |||
Der Name der verschlüsselten Partition, hier /dev/hda3 | Der Name der verschlüsselten Partition, hier /dev/hda3 | ||
+ | |||
Der Pfad zu einer Schlüsseldatei, | Der Pfad zu einer Schlüsseldatei, | ||
+ | |||
Angaben über die verwendete Verschlüsselung - da diese Informationen bei LUKS im Anfangsbereich der Partition gespeichert werden in diesem Fall einfach nur luks | Angaben über die verwendete Verschlüsselung - da diese Informationen bei LUKS im Anfangsbereich der Partition gespeichert werden in diesem Fall einfach nur luks | ||
+ | |||
Die komplette Zeile für das oben genannte Beispiel würde also so aussehen: | Die komplette Zeile für das oben genannte Beispiel würde also so aussehen: | ||
+ | < | ||
# <target name> <source device> | # <target name> <source device> | ||
| | ||
+ | </ | ||
Beim nächsten Neustart des Systems wird cryptsetup automatisch die Partition entsperren und dabei nach dem Passwort fragen. Um die Partition beim Systemstart automatisch einzuhängen muss nur noch ein Eintrag in der /etc/fstab angelegt werden, zum Beispiel: | Beim nächsten Neustart des Systems wird cryptsetup automatisch die Partition entsperren und dabei nach dem Passwort fragen. Um die Partition beim Systemstart automatisch einzuhängen muss nur noch ein Eintrag in der /etc/fstab angelegt werden, zum Beispiel: | ||
+ | < | ||
/ | / | ||
- | Nach oben | + | </ |
- | Datei statt Passwort als Schlüssel | + | |
+ | Die Disk kann //nicht// auch über die UUID eingebunden werden. cryptsetup kennt kein UUID (das wird beim formatieren oder partitionieren des Laufwerks vergeben). | ||
+ | |||
+ | Daher sollte man bei ext. USB-Laufwerken über die Hotplug-Rules anhand der Seriennummer gehen: | ||
+ | |||
+ | Die UUID (nicht Seriennummer) würde man so rausbekommen: | ||
+ | < | ||
+ | |||
+ | ==== Datei statt Passwort als Schlüssel | ||
Im vorangegangenen Beispiel wurde ein Passwort zum Entsperren der verschlüsselten Partition benutzt. Der Debian-Installer kann ebenfalls nur verschlüsselte Partitionen mit Passwörtern einrichten (oder, im Falle von Swap, mit Zufallsschlüsseln). | Im vorangegangenen Beispiel wurde ein Passwort zum Entsperren der verschlüsselten Partition benutzt. Der Debian-Installer kann ebenfalls nur verschlüsselte Partitionen mit Passwörtern einrichten (oder, im Falle von Swap, mit Zufallsschlüsseln). | ||
+ | |||
Alternativ kann man aber auch eine Datei, zum Beispiel auf einem USB-Stick, als Schlüssel verwenden. Während man bei der Benutzung von Passwörtern diese (für jede verschlüsselte Partition) beim Hochfahren eintippen muss, bleibt einem bei Schlüsseldateien diese Arbeit erspart - man muss nur dafür sorgen, daß auf den Schlüssel zugegriffen werden kann (zum Beispiel indem der USB-Stick eingesteckt wird). | Alternativ kann man aber auch eine Datei, zum Beispiel auf einem USB-Stick, als Schlüssel verwenden. Während man bei der Benutzung von Passwörtern diese (für jede verschlüsselte Partition) beim Hochfahren eintippen muss, bleibt einem bei Schlüsseldateien diese Arbeit erspart - man muss nur dafür sorgen, daß auf den Schlüssel zugegriffen werden kann (zum Beispiel indem der USB-Stick eingesteckt wird). | ||
+ | |||
Wie oben geschrieben kann man für eine LUKS-Partition bis zu acht Passwörter oder Schlüssel verwenden. Vom Debian-Installer oder von luksformat angelegte Partitionen können also mit einer Schlüsseldatei nachgerüstet werden. Die dazu nötigen Schritte lassen sich mit cryptsetup erledigen. Zunächst einmal muss aber eine Schlüsseldatei erstellt werden. Sie sollte nicht zu klein sein (unsicher), aber auch nicht zu groß (lange Dauer beim Entsperren). Ich verwende eine vier kilobyte große Datei: | Wie oben geschrieben kann man für eine LUKS-Partition bis zu acht Passwörter oder Schlüssel verwenden. Vom Debian-Installer oder von luksformat angelegte Partitionen können also mit einer Schlüsseldatei nachgerüstet werden. Die dazu nötigen Schritte lassen sich mit cryptsetup erledigen. Zunächst einmal muss aber eine Schlüsseldatei erstellt werden. Sie sollte nicht zu klein sein (unsicher), aber auch nicht zu groß (lange Dauer beim Entsperren). Ich verwende eine vier kilobyte große Datei: | ||
+ | < | ||
sirius:~# dd if=/ | sirius:~# dd if=/ | ||
1+0 Datensätze ein | 1+0 Datensätze ein | ||
1+0 Datensätze aus | 1+0 Datensätze aus | ||
4096 Bytes (4,1 kB) kopiert, 0,0018383 Sekunden, 2,2 MB/s | 4096 Bytes (4,1 kB) kopiert, 0,0018383 Sekunden, 2,2 MB/s | ||
+ | </ | ||
Als nächstes muss der Schlüssel der LUKS-Partition hinzugefügt werden. Dabei wird das bestehende Passwort eingegeben und damit dann der Datenschlüssel dechiffriert. Dann wird er durch die Schlüsseldatei neu chiffriert und in einer freien Speicherstelle gesichert: | Als nächstes muss der Schlüssel der LUKS-Partition hinzugefügt werden. Dabei wird das bestehende Passwort eingegeben und damit dann der Datenschlüssel dechiffriert. Dann wird er durch die Schlüsseldatei neu chiffriert und in einer freien Speicherstelle gesichert: | ||
+ | < | ||
cryptsetup luksAddKey /dev/hda3 / | cryptsetup luksAddKey /dev/hda3 / | ||
Enter any LUKS passphrase: | Enter any LUKS passphrase: | ||
key slot 0 unlocked. | key slot 0 unlocked. | ||
Command successful | Command successful | ||
+ | </ | ||
Nun kann testweise die Partition mit dem neuen Schlüssel statt dem Passwort entsperrt werden: | Nun kann testweise die Partition mit dem neuen Schlüssel statt dem Passwort entsperrt werden: | ||
+ | < | ||
sirius:~# cryptsetup luksOpen /dev/hda3 hda3_crypt --key-file / | sirius:~# cryptsetup luksOpen /dev/hda3 hda3_crypt --key-file / | ||
key slot 1 unlocked. | key slot 1 unlocked. | ||
Command successful | Command successful | ||
- | Damit kann die Partition ähnlich wie mit einem Passwort manuell entsperrt werden. Dieser Vorgang lässt sich aber auch über die crypttab automatisieren. An dieser Stelle kommt nun die keyfile-Option ins Spiel. Aus dem vorherigen Beispiel wird: | + | </ |
+ | Damit kann die Partition ähnlich wie mit einem Passwort manuell entsperrt werden. Dieser Vorgang lässt sich aber auch über die crypttab automatisieren. | ||
+ | An dieser Stelle kommt nun diekeyfile-Option ins Spiel. Aus dem vorherigen Beispiel wird: | ||
+ | < | ||
# <target name> <source device> | # <target name> <source device> | ||
| | ||
+ | </ | ||
Das ist allerdings noch nicht alles. cryptsetup muss angewiesen werden, das Medium mit dem Schlüssel vor dem Abarbeiten der crypttab zu mounten. Dazu muss es einen Eintrag für das Medium in der /etc/fstab geben, außerdem muss die der Mountpunkt in / | Das ist allerdings noch nicht alles. cryptsetup muss angewiesen werden, das Medium mit dem Schlüssel vor dem Abarbeiten der crypttab zu mounten. Dazu muss es einen Eintrag für das Medium in der /etc/fstab geben, außerdem muss die der Mountpunkt in / | ||
+ | < | ||
CRYPTDISKS_MOUNT="/ | CRYPTDISKS_MOUNT="/ | ||
+ | </ | ||
Nach dem Entsperren aller verschlüsselten Partitionen wird das Medium automatischwieder ausgehängt. Zur Sicherheit kann nun noch die initial ram disk neu gebaut werden: | Nach dem Entsperren aller verschlüsselten Partitionen wird das Medium automatischwieder ausgehängt. Zur Sicherheit kann nun noch die initial ram disk neu gebaut werden: | ||
+ | < | ||
update-initramfs -u | update-initramfs -u | ||
- | Das Passwort kann auch weiterhin als Ersatz beibehalten (oder mit cryptsetup luksDelKey entfernt) werden. Ist der USB-Stick mit dem Schlüssel eingesteckt, | + | </ |
+ | Das Passwort kann auch weiterhin als Ersatz beibehalten (oder mit cryptsetup luksDelKey entfernt) werden. | ||
+ | |||
+ | Ist der USB-Stick mit dem Schlüssel eingesteckt, | ||
+ | Diese Konfiguration funktioniert für alle Partitionen außer der Root-Partition. | ||
+ | Da auf dieser Partition gerade die zum Entsperren notwendigen Programme liegen sind hier einige weitere Maßnahmen notwendig. | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | == Anderer Artikel == | ||
+ | |||
+ | DATEN VERSCHLÜSSELN | ||
+ | mit DM-Crypt für Linux | ||
+ | http:// | ||
+ | 1. Benötigte Software | ||
+ | | ||
+ | Das Tool cryptsetup (mit LUKS Support!) kann zum Erstellen, Öffnen und Schließen der verschlüsselten Container eingesetzt werden. Aktuelle Distributionen enthalten es: Debian GNU/Linux im Packet " | ||
+ | |||
+ | | ||
+ | Die Sammlung pam-mount enthält Scripte, welche das Öffnen und Schließen verschlüsselter Container vereinfachen. Aktuelle Distributionen enthalten es. Benötigt wird mindestens die Version 0.13. Von der Pam-Mount Website -> kann ein aktuelles Source-Archiv heruntergeladen werden, welches für nahezu alle Distributionen passt. | ||
+ | |||
+ | |||
+ | Das Tool sudo vereinfacht die Nutzung der pam-mount Scripte. Die Nutzung von " | ||
+ | |||
+ | In der Datei "/ | ||
+ | | ||
+ | Die Datei ist mit dem Kommando " | ||
+ | Nach dem Start von " | ||
+ | Der Editiermodus wird mit der Taste <ESC> wieder verlassen. | ||
+ | Anschließend wird die Datei mit ":w < | ||
+ | Der Editor wird mit ":w < | ||
+ | 2. Gedanken zum Passwort | ||
+ | An Stelle von " | ||
+ | |||
+ | Eine gute Passphrase sollte leicht merkbar aber schwer zu erraten sein. Außer Buchstaben sollte sie auch Zahlen und Sonderzeichen enthalten und etwa 20 Zeichen lang sein. Soetwas schüttelt man nicht einfach aus dem Ärmel. Wie wäre es mit folgender Phrase: | ||
+ | "das geht nur %mich% _AN_" | ||
+ | Oder als noch brauchbare Kurzform: | ||
+ | " | ||
+ | Die LUKS-Erweiterung von " | ||
+ | |||
+ | Soll ein verschlüsselter Container mit dem Login eines Nutzers automatisch geöffnet werden, muss eines der 8 möglichen Passwörter mit dem Login-Passwort des Nutzers identisch sein. Login-Manager wie KDM oder GDM können das eingegebene Passwort an das pam-mount Modul weiterreichen. Dieses Feature kann beispielsweise für ein verschlüsseltes /home genutzt werden. | ||
+ | |||
+ | | ||
+ | |||
+ | 3. Verschlüsselten Container erstellen | ||
+ | Zum Aufwärmen soll zuerst die Erstellung einer verschlüsselten Containerdatei beschrieben werden. Für die Erstellung eines Containers sind immer root-Rechte erforderlich. | ||
+ | Zuerst ist ein leeres Image zu erstellen. Im Beispiel wird es unter dem Dateinamen " | ||
+ | # losetup /dev/loop5 geheim.luks Die Dateiendung kann beliebig gewählt werden, ich würde aber " | ||
+ | Die ersten 2 MByte sind mit Zufallswerten zu füllen. Das Füllen der gesamten Datei würde sehr lange dauern und ist nicht nötig: # dd if=/ | ||
+ | Anschließend erfolgt die LUKS-Formatierung mit der Festlegung der Verschlüsselung. Die Option -y veranlaßt eine doppelte Abfrage des Passwortes: | ||
+ | # cryptsetup luksFormat | ||
+ | -s 256 -y / | ||
+ | Das formatierte Device wird dem Device-Mapper unterstellt. Dabei wird das zuvor eingegebene Passwort abgefragt. Der < | ||
+ | Das verschlüsselte Volume wird mit Nullen gefüllt, die verschlüsselt nicht von Zufallszahlen zu unterscheiden sind. Besser wäre es wahrscheinlich, | ||
+ | Ein Dateisystem wird auf dem Volume angelegt: # mkfs.ext3 / | ||
+ | Das Volume ist nun vorbereitet und wird wieder geschlossen: | ||
+ | Die Containerdatei wird ausgehängt: | ||
+ | Soll eine gesamte Partition verschlüsselt werden (Festplatte oder USB-Stick), entfallen die Schritte 1 und 8. Das in den Schritten 2-7 als Beispiel genutzte Device "/ | ||
+ | |||
+ | 4. Passwörter verwalten | ||
+ | Mit root-Rechten ist es möglich, bis zu 7 zusätzliche Passwörter für das Öffnen eines Containers festzulegen oder einzelne Passwörter wieder zu löschen. | ||
+ | |||
+ | Für das Hinzufügen eines Passwortes zu der verschlüsselten Imagedatei " | ||
+ | |||
+ | 5. Container öffnen/ | ||
+ | Das Öffnen einer Containerdatei auf der Kommadozeile erfordert drei Schritte als " | ||
+ | # cryptsetup luksOpen /dev/loop5 < | ||
+ | # mount / | ||
+ | # cryptsetup luksClose < | ||
+ | # losetup -d / | ||
+ | 5.1 Etwas kürzer mit mount.crypt | ||
+ | Die Sammlung pam-mount enthält zwei Scripte, welche die Arbeit mit verschlüsselten Containern vereinfachen. Wurde außerdem " | ||
+ | |||
+ | Die verschlüsselte Imagedatei " | ||
+ | |||
+ | 6. Container komfortabel beim Login öffnen | ||
+ | Mit Hilfe des Modules pam-mount ist es möglich, das Anmeldepasswort eines Nutzers zu nutzen, um standardmäßig beim Login einen oder mehrere Container zu öffnen. Insbesondere für verschlüsselte "/ | ||
+ | |||
+ | | ||
+ | PAM-Konfiguration: | ||
+ | auth optional pam_mount.so use_first_pass | ||
+ | session optional pam_mount.so use_first_pass | ||
+ | pam-mount Modul: Das Modul wird in der Datei "/ | ||
+ | |||
+ | In dieser Datei sind die Kommandos für das Ein- und Aushängen verschlüsselter Volumes zu konfigurieren (bei mir in Zeile 102). Sollen verschlüsselte Partitionen beim Login eingebunden werden (z.B. als "/ | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | volume users crypt - /dev/hda4 /home - - - | ||
+ | Das zweite Beispiel zeigt die Einbindung einer verschlüsselten Containerdatei als $HOME für den User " | ||
+ | volume pitschie crypt - / | ||
+ | | ||
+ | login.defs: Um zu gewährleisten, | ||
+ | CLOSE_SESSIONS | ||
+ | fstab: Da beim Booten beispielsweise das Verzeichnis "/ | ||
+ | |||
+ | 5. Container öffnen/ | ||
+ | 6. Container öffnen/ | ||
+ | > | ||
+ | 8. Debian komplett verschlüsseln | ||
+ | |||
+ | 7. swap und /tmp verschlüsseln | ||
+ | Das / | ||
+ | |||
+ | Beide Bereiche können im Bootprozess als neue verschlüsselte Partitionen mit einem zufälligen Passwort initialisiert und eingebunden werden. Mit dem Ausschalten des Rechners ist das Passwort verloren und ein Zugriff auf diese Daten nicht mehr möglich. | ||
+ | |||
+ | | ||
+ | 6.1 Debian GNU/Linux | ||
+ | | ||
+ | |||
+ | In der Datei "/ | ||
+ | cryptswp | ||
+ | | ||
+ | In der Datei "/ | ||
+ | / | ||
+ | / | ||
+ | | ||
+ | |||
+ | 5. Container öffnen/ | ||
+ | 6. Container öffnen/ | ||
+ | 7. swap und /tmp verschlüsseln | ||
+ | > | ||
+ | 8. Debian GNU/Linux komplett verschlüsseln | ||
+ | In einem komplett verschlüsselten Sytem sind sowohl die Daten als auch die Systemkonfiguration und Software verschlüsselt. Die folgende Anleitung wurde mit Debian 4.0 (etch) getestet, sie sollte auch mit den Ubuntus funktionieren. Für SuSE und Red Hat sind Anpasungen nötig. | ||
+ | |||
+ | Da kein Rechner von einem verschlüsselten Dateisystem booten kann, liegen der Bootloader und die initrd auf einem unverschlüsselten USB-Stick, der sicher aufzubewahren ist. Eine komlette Verschlüsselung ist ein tiefer Eingriff, man verbindet es am besten mit einer Neuinstallation. | ||
+ | Platte partitionieren | ||
+ | Für die Umsetzung dieses HowTo benötigt man 4 Partitionen, | ||
+ | < | ||
+ | ohne WINDOWS | ||
+ | mit WINDOWS | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | </ | ||
+ | Ich benötige WINDOWS nicht und verwende im folgenden die erste Partitionierung. | ||
+ | Debian installieren | ||
+ | Die Installation von Debian oder Ubuntu erfolgt zuerst einmal auf die später für "/ | ||
+ | Verschlüsseln der Root-Partition | ||
+ | Wie unter 3. Container erstellen -> beschrieben, | ||
+ | # mkdir / | ||
+ | # mount.crypt /dev/hda1 / | ||
+ | # cd / | ||
+ | # cp -ax bin etc dev home lib media opt root sbin usr var /cryptroot | ||
+ | USB-Stick vorbereiten | ||
+ | Der USB-Stick soll alles nötige für das Booten des Rechners enthalten. Nachdem er am Rechner angeschlossen wurde, kann man mit folgendem Kommando feststellen, | ||
+ | |||
+ | | ||
+ | # mount /dev/sda1 /mnt | ||
+ | # cp -ax /boot/* /mnt | ||
+ | # cd /mnt | ||
+ | # ln -s . boot Einige kleine Anpassungen sind in der Grub-Konfiguration nötig. In der Datei "/ | ||
+ | (hd0,0) /dev/sda | ||
+ | In der Datei "/ | ||
+ | Das neue System vorbereiten | ||
+ | Jetzt ist es Zeit, in das verschlüsselte System wechseln und die fehlenden Mountpoints anzulegen: | ||
+ | # mkdir -p /boot /proc /sys /tmp /mnt | ||
+ | # mount -t proc proc /proc | ||
+ | # mount -t sysfs sysfs /sys | ||
+ | # mount /dev/sda1 /boot Da beim Booten des Systems die verschlüsselten Partitionen für ROOT, SWAP und TMP geöffnet werden sollen, sind die beiden Dateien "/ | ||
+ | | ||
+ | | ||
+ | | ||
+ | und "/ | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | Um von einem verschlüsselten Root-dateisystem booten zu können, müssen die nötigen Module in der initrd enthalten sein und das virtuelle Device "/ | ||
+ | |||
+ | aes-i586 | ||
+ | sha256 | ||
+ | |||
+ | | ||
+ | User anlegen | ||
+ | | ||
+ | |||
+ | Die Partition "/ | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | Quelle((https:// | ||
+ | |||
+ | |||
+ | == Täglicher Gebrauch == | ||
+ | |||
+ | |||
+ | * Trage deine Cryptopartition in / | ||
+ | < | ||
+ | # <target device> | ||
+ | $CRYPTODEVICE | ||
+ | </ | ||
+ | |||
+ | * Trage in /etc/fstab das Device (/ | ||
+ | |||
+ | < | ||
+ | * / | ||
+ | * Luks ermöglicht es dir, mit verschiedenen Schlüsseln auf die Partition zuzugreifen. Mit folgendem Befehl fügst du einen weiteren hinzu: | ||
+ | |||
+ | < | ||
+ | Dazu musst du das Passwort eines schon vorhandenen Schlüssels eingeben. Analog dazu kannst du mit luksDelKey ein Schlüssel wieder entfernen. | ||
+ | |||
+ | == Paranoia == | ||
+ | |||
+ | |||
+ | Mit dmsetup info lassen sich benutzte devicemappings anzeigen. Taucht hier ein Teil als ACTIVE auf, so hat jedermensch darauf Zugriff (auch wenn es nicht gemountet ist, könnte - wer die nötigen Rechte hat - das Teil ohne passendes Cryptokennwort mounten) - es ist in diesem Zustand quasi entschlüsselt! | ||
+ | |||
+ | Deswegen immer nach dem unmounten, das mapping entfernen: | ||
+ | < | ||
+ | umount $MOUNT | ||
+ | cryptsetup luksClose $CRYPTODEVICE | ||
+ | </ | ||
+ | Du kannst alle mappings gleichzeitig entfernen mit: | ||
+ | < | ||
+ | dmsetup remove_all | ||
+ | </ | ||
+ | {{tag> |