So erstellen Sie ein verschlüsseltes Dateisystem auf einem DigitalOcean-Blockspeicher-Volume

Einführung

DigitalOcean Volumes sind skalierbare SSD-basierte Blockspeichergeräte. Mit Volumes können Sie die Speicherkapazität Ihrer Infrastruktur erstellen und erweitern, ohne die Größe Ihrer Droplets ändern zu müssen.

Volumes werden im Ruhezustand verschlüsselt, was bedeutet, dass die Daten auf einem Volume außerhalb seines Speicherclusters nicht lesbar sind. Wenn Sie ein Volume an ein Droplet anhängen, wird dem Droplet ein entschlüsseltes Blockspeichergerät angezeigt, und alle Daten werden über isolierte Netzwerke übertragen.

Für zusätzliche Sicherheit können Sie auch ein Dateisystem unter LUKS encrypted disk auf Ihrem Volume erstellen. Dies bedeutet, dass die Festplatte vom Betriebssystem auf Ihrem Droplet entschlüsselt werden muss, um Daten lesen zu können.

In diesem Tutorial erfahren Sie, wie Sie:

  • Erstellen Sie eine durch Passphrasen geschützte verschlüsselte Festplatte auf Ihrem Volume, die ein Dateisystem enthält.

  • Hängen Sie das verschlüsselte Dateisystem manuell für die Verwendung ein. Hängen Sie es dann ab und sperren Sie es erneut, wenn Sie fertig sind.

  • Mounten Sie das Dateisystem automatisch, wenn das Droplet startet.

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie:

Schritt 1 - Erstellen der verschlüsselten Festplatte

+ cryptsetup + ist ein Hilfsprogramm zum Verwalten von LUKS-Volumes zusätzlich zu anderen verschlüsselten Formaten. Verwenden Sie zunächst "+ cryptsetup +", um eine verschlüsselte Festplatte auf Ihrem Volume zu initialisieren.

sudo cryptsetup -y -v luksFormat /dev/disk/by-id/scsi-0DO_Volume_

Stellen Sie sicher, dass Sie "+" durch "https://www.digitalocean.com/community/tutorials/how-to-partition-and-format-digitalocean-block-storage-volumes-inlinux#working-with-volumes" ersetzen -on-digitalocean [der Name Ihres Volumes]. Mit der Markierung " -y " müssen Sie Ihre Passphrase zweimal eingeben, wenn Sie aufgefordert werden, sie zu erstellen. Das ` -v +` Flag fügt eine zusätzliche lesbare Ausgabe hinzu, um den Erfolg des Befehls zu überprüfen.

In der Ausgabe werden Sie aufgefordert, das Überschreiben der Daten auf dem Volume zu bestätigen. Geben Sie "+ YES" in Großbuchstaben ein und drücken Sie "+ ENTER", um fortzufahren.

OutputWARNING!
========
This will overwrite data on /dev/disk/by-id/scsi-0DO_Volume_ irrevocably.

Are you sure? (Type uppercase yes):

Als Nächstes werden Sie in der Ausgabe aufgefordert, eine Passphrase für die verschlüsselte Festplatte zu erstellen. Geben Sie eine eindeutige, sichere Passphrase ein und überprüfen Sie diese, indem Sie sie ein zweites Mal eingeben. Diese Passphrase * kann nicht wiederhergestellt werden *. Bewahren Sie sie daher an einem sicheren Ort auf.

Output. . .
Enter passphrase:
Verify passphrase:
Command successful.

Wenn nötig, können Sie diese Passphrase in Zukunft mit dem Befehl + cryptsetup luksChangeKey + ändern. Sie können mit + cryptsetup luksAddKey + auch bis zu 8 zusätzliche Passphrasen pro Gerät hinzufügen.

Zu diesem Zeitpunkt wird Ihre Festplatte erstellt und verschlüsselt. Entschlüsseln Sie es anschließend und ordnen Sie es einem https://www.digitalocean.com/community/tutorials/an-introduction-to-storage-terminology-and-concepts-inlinux#how-linux-manages-storage-devices zu [label] zur leichteren Referenzierung. Hier bezeichnen wir es als "+ secure-volume +", aber Sie können es mit jeder beliebigen Bezeichnung versehen.

sudo cryptsetup luksOpen /dev/disk/by-id/scsi-0DO_Volume_

Sie werden zur Eingabe der Passphrase aufgefordert. Sobald Sie es eingegeben haben, wird das Volume nun "+ / dev / mapper / secure-volume +" zugeordnet.

Überprüfen Sie die Details der verschlüsselten Festplatte, um sicherzustellen, dass alles funktioniert.

cryptsetup status

Die Ausgabe zeigt die Bezeichnung und den Typ des Volumes an.

Output/dev/mapper/ is active.
 type:    LUKS1
 cipher:  aes-xts-plain64
 keysize: 256 bits
 device:  /dev/sda
 offset:  4096 sectors
 size:    209711104 sectors
 mode:    read/write

Zu diesem Zeitpunkt verfügen Sie über eine durch Passphrasen geschützte verschlüsselte Festplatte. Der nächste Schritt besteht darin, ein Dateisystem auf dieser Festplatte zu erstellen, damit das Betriebssystem es zum Speichern von Dateien verwenden kann.

Schritt 2 - Erstellen und Mounten des Dateisystems

Schauen wir uns zunächst den aktuell verfügbaren Speicherplatz auf dem Droplet an.

df -h

Abhängig von Ihrer Droplet-Konfiguration wird eine ähnliche Ausgabe angezeigt:

OutputFilesystem      Size  Used Avail Use% Mounted on
udev            2.0G     0  2.0G   0% /dev
tmpfs           396M  5.6M  390M   2% /run
/dev/vda1        78G  877M   77G   2% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/vda15      105M  3.4M  101M   4% /boot/efi
tmpfs           396M     0  396M   0% /run/user/1000

Derzeit wird "+ / dev / mapper / +" in dieser Liste nicht angezeigt, da das Volume für das Droplet noch nicht verfügbar ist. Um es zugänglich zu machen, müssen wir das Dateisystem erstellen und mounten.

Verwenden Sie das Dienstprogramm + mkfs.xfs + ( m a k e f ile s ystem), um eine https://en.wikipedia.org/wiki/ zu erstellen. XFS [XFS] -Dateisystem auf dem Volume.

sudo mkfs.xfs /dev/mapper/

Sobald das Dateisystem erstellt ist, können Sie https://www.digitalocean.com/community/tutorials/how-to-partition-and-format-digitalocean-block-storage-volumes-inlinux#mounting-the-filesystems [mount] it, was bedeutet, dass es dem Betriebssystem auf Ihrem Droplet zur Verfügung steht.

Erstellen Sie einen Einhängepunkt, an den das Dateisystem angehängt wird. Eine gute Empfehlung für einen Einhängepunkt ist ein leeres Verzeichnis im Verzeichnis "+ / mnt ". Daher verwenden wir " / mnt / +".

sudo mkdir /mnt/

Hängen Sie dann das Dateisystem ein.

sudo mount /dev/mapper/ /mnt/

Überprüfen Sie den verfügbaren Speicherplatz auf Ihrem Droplet erneut, um sicherzustellen, dass es funktioniert.

df -h

Sie sehen nun "+ / dev / mapper / +" aufgelistet.

OutputFilesystem                 Size  Used Avail Use% Mounted on
udev                       2.0G     0  2.0G   0% /dev
tmpfs                      396M  5.6M  390M   2% /run
/dev/vda1                   78G  877M   77G   2% /
tmpfs                      2.0G     0  2.0G   0% /dev/shm
tmpfs                      5.0M     0  5.0M   0% /run/lock
tmpfs                      2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/vda15                 105M  3.4M  101M   4% /boot/efi
tmpfs                      396M     0  396M   0% /run/user/1000

Dies bedeutet, dass Ihr verschlüsseltes Dateisystem angehängt und zur Verwendung verfügbar ist.

Wenn Sie nicht mehr auf die Daten auf dem Volume zugreifen müssen, können Sie die Bereitstellung des Dateisystems aufheben und die verschlüsselte Festplatte sperren.

sudo umount /mnt/
sudo cryptsetup luksClose

Sie können mit + df -h + überprüfen, ob das Dateisystem nicht mehr verfügbar ist. Um die Daten auf dem Volume wieder verfügbar zu machen, müssen Sie die folgenden Schritte ausführen, um den Datenträger zu öffnen (+ cryptsetup luksOpen …​ +), einen Einhängepunkt zu erstellen und das Dateisystem einzuhängen.

Um zu vermeiden, dass Sie diesen manuellen Vorgang jedes Mal durchführen, wenn Sie das Volume verwenden möchten, können Sie stattdessen das Dateisystem so konfigurieren, dass es automatisch bereitgestellt wird, wenn Ihr Droplet startet.

Schritt 3 - Automatisches Mounten des Dateisystems beim Booten

Die verschlüsselte Festplatte kann bis zu 8 Passphrasen enthalten. In diesem letzten Schritt erstellen wir einen Schlüssel und fügen ihn als Passphrase hinzu. Mit diesem Schlüssel konfigurieren wir das Volume, das beim Booten des Droplets entschlüsselt und gemountet werden soll.

Erstellen Sie eine Schlüsseldatei unter + / root / .secure_key +. Dieser Befehl erstellt eine 4-KB-Datei mit zufälligem Inhalt:

sudo dd if=/dev/urandom of=/root/.secure-key  bs=1024 count=4

Passen Sie die Berechtigungen dieser Schlüsseldatei so an, dass sie nur vom Benutzer * root * gelesen werden kann.

sudo chmod 0400 /root/.secure-key

Fügen Sie dann den Schlüssel als Passphrase für die verschlüsselte Festplatte hinzu.

cryptsetup luksAddKey /dev/disk/by-id/scsi-0DO_Volume_ /root/.secure-key

Sie werden aufgefordert, eine Passphrase einzugeben. Sie können den Wert eingeben, den Sie beim Erstellen der verschlüsselten Festplatte festgelegt haben.

+ / etc / crypttab + ist eine Konfigurationsdatei, die verschlüsselte Festplatten definiert, die beim Systemstart eingerichtet werden sollen. Öffnen Sie diese Datei mit + nano + oder Ihrem bevorzugten Texteditor.

sudo nano /etc/crypttab

Fügen Sie die folgende Zeile am Ende der Datei hinzu, um das Volume beim Start zuzuordnen.

/ etc / crypttab

. . .
/dev/disk/by-id/scsi-0DO_Volume_ /root/.secure-key  luks

Das Format der Zeilen in "+ / etc / crypttab " ist " Gerätename Gerätepfad Schlüsselpfadoptionen ". Hier ist der Gerätename " Secure-Volume " (oder der Name, den Sie stattdessen gewählt haben), der Pfad ist " / dev / disk / by-id / ", die Schlüsseldatei ist das, was wir gerade unter " /" erstellt haben. root / .secure_key + , und die Optionen geben + luks + `Verschlüsselung an.

Speichern und schließen Sie die Datei.

+ / etc / fstab + ist eine Konfigurationsdatei zur Automatisierung des Einbaus. Öffnen Sie diese Datei zum Bearbeiten.

sudo nano /etc/fstab

Fügen Sie die folgende Zeile am Ende der Datei hinzu, um den Datenträger beim Start automatisch bereitzustellen.

/ etc / fstab

. . .
/dev/mapper/ /mnt/ xfs  defaults,nofail 0 0

Die ersten drei Argumente der Zeilen in "+ / etc / fstab " sind immer " device_path mount_point file_system_type ". Hier haben wir den gleichen Gerätepfad und Bereitstellungspunkt wie in Schritt 2 und wir geben das XFS-Dateisystem an. Weitere Informationen zu den Feldern finden Sie in der Manpage von " fstab " (" man fstab +").

Speichern und schließen Sie die Datei. Ihr verschlüsseltes Dateisystem ist jetzt so eingestellt, dass es beim Start Ihres Droplets automatisch bereitgestellt wird. Sie können dies testen, indem Sie Ihr Droplet neu starten. Seien Sie jedoch vorsichtig, wenn Sie Dienste ausführen.

Fazit

Standardmäßig werden DigitalOcean-Volumes verschlüsselt, wenn sie nicht an ein Droplet angehängt sind. In diesem Lernprogramm haben Sie eine zusätzliche Sicherheitsebene hinzugefügt, indem Sie ein Dateisystem auf einer verschlüsselten Festplatte auf einem Volume abgelegt haben. Sie können eine verschlüsselte Festplatte erstellen, Passphrasen hinzufügen und diese manuell oder automatisch für die Verwendung innerhalb des Droplets bereitstellen.

Weitere Informationen zu DigitalOcean Block Storage-Volumes finden Sie unter Getting Started with DigitalOcean Block Storage.

Related