Wie richte ich eine verschlüsselte Auslagerungsdatei unter Linux ein?

15

2017 WARNUNG! Die akzeptierte Antwort scheint zu funktionieren, aber mit den neuesten Kerneln habe ich festgestellt, dass das System hängen bleibt, sobald es mit dem Tauschen beginnt. Wenn Sie versuchen, eine verschlüsselte Auslagerungsdatei zu verwenden, stellen Sie sicher, dass sie tatsächlich ordnungsgemäß ausgelagert wird. Es dauerte lange, bis ich herausfand, warum mein System ohne ersichtlichen Grund immer wieder abstürzte. Ich habe wieder eine verschlüsselte Swap-Partition verwendet, die ordnungsgemäß funktioniert.


Wie richte ich eine verschlüsselte Auslagerungsdatei (keine Partition) unter Linux ein? Ist es überhaupt möglich? Alle Anleitungen, die ich gefunden habe, sprechen von verschlüsselten Swap-Partitionen, aber ich habe keine Swap-Partition, und ich möchte meine Festplatte lieber nicht neu partitionieren.

Ich benötige keine Suspend-to-Disk-Unterstützung, daher möchte ich bei jedem Start einen zufälligen Schlüssel verwenden.

Ich verwende bereits ein von TrueCrypt- Dateien gehostetes Volume für meine Daten, möchte aber meinen Swap nicht in dieses Volume stellen. Ich bin nicht bereit, TrueCrypt für die Auslagerungsdatei zu verwenden, wenn es eine bessere Lösung gibt.

Ich verwende Arch Linux mit dem Standardkernel, wenn das wichtig ist.

cjm
quelle
Was genau wäre der Sinn davon? Es muss während der Verwendung entschlüsselt werden und ist leer, wenn es nicht verwendet wird.
tkbx
1
Wenn Sie nach encrypted swapfiledem ersten Ergebnis suchen, führt dies zu rayslinux.blogspot.de/2011/01/…
ott--
@ott, obwohl im Titel "Auslagerungsdatei" steht, beschreiben die Anweisungen in diesem Beitrag eindeutig eine Auslagerungspartition.
cjm
@tkbx, der Punkt ist zu verhindern, dass jemand vertrauliche Daten aus der Auslagerungsdatei wiederherstellt, nachdem ich meinen Computer ausgeschaltet habe. (Oder jemand konnte mein Passwort nicht erraten, also
bootet er von
2
@tkbx, das glaube ich nicht. Dies würde das Schreiben von Gigabyte Daten jedes Mal erfordern, wenn Sie Ihren Computer ausschalten. Die Daten in einer Auslagerungsdatei werden beim Neustart nicht verwendet. Dies bedeutet jedoch nicht, dass sie von der Festplatte gelöscht wurden.
cjm

Antworten:

14

In der Tat beschreibt die Seite das Einrichten einer Partition, aber es ist ähnlich für eine Auslagerungsdatei:

dd if=/dev/urandom of=swapfile.crypt bs=1M count=64
loop=$(losetup -f)
losetup ${loop} swapfile.crypt
cryptsetup open --type plain --key-file /dev/urandom ${loop} swapfile
mkswap /dev/mapper/swapfile
swapon /dev/mapper/swapfile

Das Ergebnis:

# swapon -s
Filename                                Type            Size    Used    Priority
/dev/mapper/swap0                       partition       4000176 0       -1
/dev/mapper/swap1                       partition       2000084 0       -2
/dev/mapper/swapfile                    partition       65528   0       -3

swap0 und swap1 sind echte Partitionen.

ott--
quelle
loop-AES.README sagt in Abschnitt 7.1: "File-Backed-Loops können nicht zum Tauschen verwendet werden." Ist das falsch (oder nur für Loop-AES)?
cjm
Das ist ohne Device Mapper.
ott--
Ich habe Ihren cryptsetup-Befehl dahingehend überarbeitet, dass er nicht mehr verwendet openwird create(laut Manpage veraltet) und statt der Aufforderung zur Eingabe eines Kennworts einen zufälligen Schlüssel verwendet. Es scheint zu funktionieren.
cjm
Dies scheint beim Neustart nicht fortzusetzen: "swapon: Kann / dev / mapper / swapfile nicht öffnen: Keine solche Datei oder kein solches Verzeichnis"
Sie
5

Diese Konfiguration verwendet beim Booten zufällig generierte Schlüssel und unterstützt den Ruhezustand auf der Festplatte nicht! Sie sollten den Ruhezustand über Ihr entsprechendes DE Power Management Utility deaktivieren und auf Herunterfahren auf Kritisch einstellen, um Datenverlust zu vermeiden!

Stellen Sie sicher, dass Sie Folgendes ausführen sudo -soder subevor Sie Folgendes ausführen .

  1. Swap deaktivieren:

    # swapoff -a
    
  2. Suchen Sie die vorhandene Swap-Partition

    # lsblk
    

    Sie erhalten so etwas:

    sda3    8:3    0     8G  0 part [SWAP]
    
  3. Alter Swap überschreiben

    # dd if=/dev/zero bs=1024000 of=/dev/sda<#>
    

    beispielsweise:

    # dd if=/dev/zero bs=1024000 of=/dev/sda3
    
  4. fstab installieren

    # vim /etc/fstab
    

    Ersetzen Sie das alte SWAP-Gerät durch den Namen des Crypttab-Mapper: /dev/mapper/cswap

    #<file system>      <mount point>   <type>  <options>   <dump>  <pass>
    /dev/mapper/cswap   none            swap    pri=1,defaults  0   0
    
  5. Krypto-Setup

    # ls -lF /dev/disk/by-id
    

    Beispielsweise:

    ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3 -> ../../sda3
    
    # vim /etc/crypttab
    
    # <name>    <device>                            <password>  <options>
      cswap     /dev/disk/by-id/ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3   /dev/urandom    swap,cipher=aes-cbc-essiv:sha256,size=256
    
  6. Aktiver verschlüsselter Swap

    # reboot
    
  7. Überprüfen Sie die verschlüsselten Swap-Vorgänge

    Beispielsweise:

    # dmsetup -C info 
    cswap      253   0 L--w    2    1      0 CRYPT-PLAIN-cswap  
    # lsblk
    ├─sda3                8:3    0     8G  0 part  
    │ └─cswap             253:0    0     8G  0 crypt [SWAP]
    # cat /proc/swaps 
    Filename                Type        Size    Used    Priority
    /dev/dm-0               partition   8385532 0       -1
    
Timothy Butterworth
quelle
1

Wenn Sie dd if=/dev/zero of=/swapfile bs=8G count=1gefolgt von mkswap /swapfileund verwenden swapon /swapfile, sollten Sie eine funktionierende Auslagerungsdatei in Ihrem Root-Dateisystem haben. (Wir stellen ddsicher, dass die Swap-Datei keine Lücken enthält.)

Dies verhindert, dass Sie sich mit Loop-Geräten und / oder Crypttab herumschlagen müssen und legt die Swap-Datei einfach in Ihrem bereits verschlüsselten Dateisystem ab. (Wir gehen davon aus, dass Sie hier die Verschlüsselung für das gesamte Laufwerk verwenden. Stellen Sie dem /swapfileParameter den Pfad zu Ihrem verschlüsselten Verzeichnis voran, wenn es sich um ein anderes Verzeichnis handelt.)

Siehe man mkswapund man swaponfür weitere Informationen.

Mioriin
quelle
Ich habe versucht, so eine Swap-Datei in meinem verschlüsselten Home-Verzeichnis zu erstellen, und sie ist genauso abgestürzt wie die verschlüsselte Swap-Datei ...
fifaltra
Ist Ihr Home-Verzeichnis beim Systemstart oder bei der Anmeldung entsperrt? Wenn es nur beim Anmelden entsperrt wird, kann die Auslagerungsdatei dort nicht gespeichert werden. Swap muss entsperrt und beim Systemstart verfügbar gemacht werden. Außerdem möchten Sie kein System-Zeug in Ihrem Benutzer-Ausgangsverzeichnis haben. Das ist für User-Sachen reserviert.
Mioriin