GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So verschlüsseln Sie Verzeichnisse/Partitionen mit eCryptfs auf Debian Squeeze

eCryptfs ist ein POSIX-kompatibles gestapeltes kryptografisches Dateisystem der Enterprise-Klasse für Linux. Sie können es verwenden, um Partitionen und auch Verzeichnisse zu verschlüsseln, die keine eigene Partition verwenden, unabhängig vom zugrunde liegenden Dateisystem, Partitionstyp usw. Dieses Tutorial zeigt, wie Sie eCryptfs verwenden, um ein Verzeichnis unter Debian Squeeze zu verschlüsseln.

Ich gebe keine Garantie dafür, dass dies bei Ihnen funktioniert!

1 Vorbemerkung

In diesem Tutorial werde ich mein Home-Verzeichnis /home/falko/ verschlüsseln, das sich auf der Partition / befindet (d. h. /home/falko/ ist ein gewöhnliches Verzeichnis und verwendet keine eigene Partition).

2 Installation von eCryptfs

eCryptfs kann einfach wie folgt installiert werden:

apt-get install ecryptfs-utils

3 Ein Verzeichnis verschlüsseln

Ich werde jetzt mein Home-Verzeichnis /home/falko/ verschlüsseln. Da es bereits (unverschlüsselte) Dateien in diesem Verzeichnis gibt, muss ich ein Backup davon machen, damit ich sie später im dann verschlüsselten Verzeichnis /home/falko/ wiederherstellen kann (andernfalls kann auf diese Dateien nicht zugegriffen/gelesen werden, während das Verzeichnis ist verschlüsselt):

cp -pfr /home/falko/ /tmp/

Ich kann nun das Verzeichnis /home/falko/ verschlüsseln, indem ich es mit dem Dateisystemtyp ecryptfs:

einhänge
mount -t ecryptfs /home/falko /home/falko

Wenn Sie dies zum ersten Mal tun, müssen Sie einige Fragen beantworten:

[email protected]:~# mount -t ecryptfs /home/falko /home/falko
Passphrase: <-- some_passphrase
Select cipher:
 1) aes: blocksize = 16; Mindestschlüsselgröße = 16; max. Schlüsselgröße = 32 (nicht geladen)
 2) Blowfish: Blockgröße = 16; Mindestschlüsselgröße = 16; max keysize = 56 (nicht geladen)
 3) des3_ede: blocksize = 8; Mindestschlüsselgröße = 24; max keysize = 24 (nicht geladen)
 4) twofish: blocksize = 16; Mindestschlüsselgröße = 16; max keysize = 32 (nicht geladen)
 5) cast6: blocksize = 16; Mindestschlüsselgröße = 16; max keysize = 32 (nicht geladen)
 6) cast5: blocksize = 8; Mindestschlüsselgröße = 5; max keysize = 16 (nicht geladen)
Auswahl [aes]: <-- ENTER
Select key bytes:
 16
 2) 32
 3) 24
Auswahl [16]: <-- ENTER
 Klartext-Passthrough aktivieren (j/n) [n]: <-- ENTER
 Dateinamenverschlüsselung aktivieren (j/n) [n]: <-- EINGABE
Versuch, mit den folgenden Optionen zu mounten:
  ecryptfs_unlink_sigs
  ecryptfs_key_bytes=16
  ecryptfs_cipher=aes
  ecryptfs_sig=bd28c38da9fc938b
WARNUNG: Basierend auf der Inhalte von [/root/.ecryptfs/sig-cache.txt],
es sieht so aus, als während Sie noch nie mit diesem Schlüssel gemountet haben
. Dies könnte bedeuten, dass Sie Ihre
Passphrase falsch eingegeben haben.

Möchten Sie mit dem Mounten fortfahren (ja/nein)? : <-- ja
Möchten Sie sig [bd28c38da9fc938b] an 
[/root/.ecryptfs/sig-cache.txt] anhängen 
um diese Warnung in Zukunft zu vermeiden ( ja Nein)? : <-- ja
Erfolgreich neue Sig an Benutzer-Sig-Cache-Datei angehängt
eCryptfs gemountet
[email protected]:~#

Sehen Sie sich die Ausgabe von

an
einhängen

und Sie sollten sehen, dass /home/falko/ jetzt verschlüsselt ist:

[email protected]:~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid ,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on / dev tippe tmpfs (rw,mode=0755)
tmpfs auf /dev/shm tippe tmpfs (rw,nosuid,nodev)
devpts auf /dev/pts tippe devpts (rw,noexec,nosuid,gid=5,mode=620)
/home/falko auf /home/falko geben Sie ecryptfs ein (rw,ecryptfs_sig=bd28c38da9fc938b,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs)
[email protected]:~#

Stellen wir unser Backup in das nun verschlüsselte Verzeichnis /home/falko/ wieder her und löschen das Backup anschließend:

cp -pfr /tmp/falko/ /home/
rm -fr /tmp/falko/

Kopieren wir zu Testzwecken eine andere Datei, z. /etc/hosts, nach /home/falko/ um zu prüfen, ob es wirklich verschlüsselt wird:

cp /etc/hosts /home/falko

Während /home/falko/ mit dem Dateisystemtyp ecryptfs gemountet wird, sollte es möglich sein, den Inhalt von /home/falko/hosts zu lesen:

Katze /home/falko/hosts

Unmounten Sie nun /home/falko/...

umount /home/falko

... und versuchen Sie erneut, /home/falko/hosts zu lesen, und Sie sollten etwas kryptisches Zeug erhalten:

Katze /home/falko/hosts
?æËÊÀû5)í}Ó`§wʽ.ÂçµÔyiIezz°Ñd¦R,`Ëi,0ñ*úÐ%^-']YÑj÷#6 ÷¨Y-]«é²ùô 

4 Wie man eine verschlüsselte Partition beim Booten automatisch einbindet

Natürlich wollen wir /home/falko/ nicht jedes Mal manuell mounten - es wäre schöner, wenn es beim Booten automatisch gemountet werden könnte. Dazu benötigen wir eine Passphrase-Datei, und aus Sicherheitsgründen möchte ich, dass sich diese Passphrase-Datei auf einem USB-Stick befindet.

Stecken Sie einen USB-Stick ein und führen Sie ihn aus

fdisk -l

um den Gerätenamen und den Dateisystemtyp herauszufinden:

[email protected]:~# fdisk -l

Festplatte /dev/sda: 32,2 GB, 32212254720 Byte
255 Köpfe, 63 Sektoren/Spur, 3916 Zylinder
Einheiten = Zylinder von 16065 * 512 = 8225280 Byte
Sektorgröße (logisch/physisch): 512 Byte / 512 Byte
E/A-Größe (minimal/optimal): 512 Byte / 512 Byte
Festplattenkennung:0x00035e35

Geräte -Start -End -Endblöcke ID -System
/dev /sda1*1 3793 30461952 83 Linux
/dev /sda2 3793 3917 992257 5 Extenended
/dev/sda5            3793        3917      992256   82  Linux-Swap / Solaris

Festplatte /dev/sdb: 8086 MB, 8086617600 Byte
255 Köpfe, 63 Sektoren/Spur, 98 Einheiten = Zylinder von 16065 * 512 = 8225280 Byte
Sektorgröße (logisch/physisch): 512 Byte / 512 Byte
E/A-Größe (minimal/optimal): 512 Byte / 512 Byte
Festplatte Kennung: 0x000e439f

   Gerätestart      Start         Ende      Blöcke   I d  System
/dev/sdb1               1         983     7895916    b  W95 FAT32
[email protected]:~#

In meinem Fall lautet der Gerätename /dev/sdb1 und es verwendet ein FAT32-Dateisystem.

Lassen Sie uns den USB-Stick unter /mnt/usb:

mounten
mkdir /mnt/usb
mount /dev/sdb1 /mnt/usb

Sehen Sie sich die Ausgabe von

an
einhängen

... und Sie sollten sehen, dass es mit dem Dateisystemtyp vfat (FAT32) gemountet wurde - wir werden diese Informationen später für unsere /etc/fstab-Datei benötigen:

[email protected]:~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid ,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on / dev tippe tmpfs (rw,mode=0755)
tmpfs auf /dev/shm tippe tmpfs (rw,nosuid,nodev)
devpts auf /dev/pts tippe devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sdb1 on /mnt/usb type vfat (rw)
[email protected]:~#

Werfen Sie nun einen Blick auf den Inhalt von /root/.ecryptfs/sig-cache.txt:

cat /root/.ecryptfs/sig-cache.txt
bd28c38da9fc938b

Diese Signatur benötigen wir für die Datei /root/.ecryptfsrc, die wir wie folgt erstellen:

vi /root/.ecryptfsrc

Bitte stellen Sie sicher, dass Sie die Signatur aus der Datei /root/.ecryptfs/sig-cache.txt in der Zeile ecryptfs_sig verwenden:

key=passphrase:passphrase_passwd_file=/mnt/usb/passwd_file.txtecryptfs_sig=bd28c38da9fc938becryptfs_cipher=aesecryptfs_key_bytes=16ecryptfs_passthrough=necryptfs_enable_filename_crypto=n

Jetzt erstellen wir die Passphrase-Datei auf unserem USB-Stick:

vi /mnt/usb/passwd_file.txt
passphrase_passwd=some_passphrase

Stellen Sie sicher, dass Sie die richtige Passphrase verwenden, d. h. die Passphrase, die Sie verwenden würden, wenn Sie das Verzeichnis manuell einhängen würden.

Als nächstes öffnen Sie /etc/fstab...

vi /etc/fstab

... und fügen Sie die folgenden zwei Zeilen hinzu (stellen Sie sicher, dass Sie den richtigen Dateisystemtyp für Ihren USB-Stick verwenden - in meinem Fall vfat):

[...]/dev/sdb1 /mnt/usb vfat ro 0 0/home/falko /home/falko ecryptfs defaults 0 0 

(Es ist wichtig, dass die Zeile für den USB-Schlüssel vor der Zeile für die verschlüsselte Partition steht, da der USB-Schlüssel gemountet werden muss, bevor die verschlüsselte Partition gemountet werden kann!)

Starten Sie dann das System neu:

Neustart

Wenn alles gut geht, sollte Ihre verschlüsselte Partition nach dem Neustart automatisch gemountet werden. Es ist jedoch möglich, dass Ihr System Ihren USB-Stick während des Bootens nicht mounten kann, was bedeutet, dass Ihre verschlüsselte Partition auch nicht gemountet werden kann. Bearbeiten Sie in diesem Fall /etc/rc.local (dieses Skript wird am Ende des Bootvorgangs ausgeführt)...

vi /etc/rc.local

... und fügen Sie die Zeile /bin/mount -a vor der Exit-0-Zeile hinzu:

#!/bin/sh -e## rc.local## Dieses Skript wird am Ende jedes Multiuser-Runlevels ausgeführt.# Stellen Sie sicher, dass die Das Skript "beendet 0" bei Erfolg oder einen anderen# Wert bei einem Fehler.## Um dieses Skript zu aktivieren oder zu deaktivieren, ändern Sie einfach die Ausführungsbits#.## Standardmäßig tut dieses Skript nichts./bin/mount -aexit 0

Dadurch werden alle Partitionen (einschließlich Ihres USB-Sticks und der verschlüsselten Partition) am Ende des Startvorgangs (erneut) gemountet.

  • eCryptfs:https://launchpad.net/ecryptfs
  • Debian:http://www.debian.org/

Debian
  1. So verschlüsseln Sie das Verzeichnis mit EncFS unter Debian 9 Stretch Linux

  2. So richten Sie eine Firewall mit UFW unter Debian 10 ein

  3. So richten Sie eine Firewall mit UFW unter Debian 9 ein

  4. So installieren Sie Automad CMS mit Apache und Lets encrypt unter Debian 10

  5. So sichern Sie MySQL-Datenbanken mit mylvmbackup auf Debian Squeeze

So verschlüsseln Sie Ihre Daten mit EncFS unter Debian 8 (Jessie)

Wie man Verzeichnisse mit mod_authn_dbd und MySQL auf Apache (Debian 8) mit einem Passwort schützt

So installieren Sie Shopware mit NGINX und Lets encrypt unter Debian 9

So richten Sie ein SSL-Zertifikat von Let’s Encrypt mit Nginx unter Debian 10 / Debian 9 ein

So verschlüsseln Sie Linux-Partitionen mit VeraCrypt unter Debian 10

So verschlüsseln Sie Linux-Partitionen mit VeraCrypt unter Ubuntu