GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So richten Sie die BMC-Laufwerkverschlüsselung mit EMP ein

Einführung

BMC-Laufwerkverschlüsselung mit phoenixNAP EMP (Encryption Management Platform) bietet die notwendige Datensicherheit für Ihr Bare Metal Cloud-Laufwerk. Die EMP-Plattform dient als Schlüsselverwaltungsserver und stellt sicher, dass keine Verschlüsselungsinformationen auf dem Laufwerk gespeichert werden.

Das Entsperren des Laufwerks erfolgt bei jedem Neustart. Im Falle einer Kompromittierung widerrufen Sie Berechtigungen über die EMP-Plattform und das Laufwerk bleibt sicher.

Dieses dreiteilige Tutorial erklärt, wie Sie die BMC-Laufwerksverschlüsselung mit einem automatisierten Python-Skript mit EMP einrichten.

Teil 1:Voreinstellung

Die Voreinstellung umfasst alle Schritte, die erforderlich sind, um sich für ein EMP-Konto zu registrieren und Client-Zertifikate zu generieren.

1. Holen Sie sich ein EMP-Konto

Wenn Sie bereits ein EMP-Konto haben, überspringen Sie diesen Schritt. Erstellen Sie andernfalls ein EMP-Konto:

1. Gehen Sie zu https://emp.phoenixnap.com/.

2. Klicken Sie auf ANMELDEN um ein Konto zu registrieren.

3. Geben Sie Ihre Registrierungsinformationen ein und wählen Sie ein sicheres Passwort von mindestens 14 Zeichen.

Klicken Sie auf ANMELDEN um fortzufahren.

4. Wählen Sie den gewünschten Kontonamen und klicken Sie auf Anfrage senden um ein neues Konto zu erstellen.

5. Warten Sie auf die Zustimmung des Administrators per E-Mail. Wenn das Konto genehmigt wurde, melden Sie sich an und fahren Sie mit dem nächsten Schritt fort.

2. Gruppe erstellen

Nachdem das Konto genehmigt wurde, erstellen Sie eine Gruppe und fügen Sie eine EMP-Anwendung hinzu.

1. Navigieren Sie zu den Gruppen Tab auf der linken Seite.

2. Klicken Sie auf das Plus-Symbol So fügen Sie eine neue Gruppe hinzu:

4. Legen Sie einen Gruppentitel fest und Speichern .

5. Das Dashboard zeigt die neu erstellte Gruppenseite an. Klicken Sie auf Neue App Schaltfläche, um eine neue Anwendung hinzuzufügen.

6. Name Scrollen Sie in der App nach unten und klicken Sie auf Speichern .

7. Eine Bestätigungsmeldung für die App-Erstellung wird angezeigt. Kopieren und speichern Sie die UUID der App für den nächsten Schritt.

3. Privaten Schlüssel und Zertifikat generieren

Führen Sie alle folgenden Schritte auf dem Bare-Metal-Cloud-Servercomputer durch . SSH in den BMC-Server mit:

ssh -i <path to id_rsa> [email protected]<public IP>

Der <path to id_rsa> ist der Pfad zu Ihrer Identitätsdatei. Normalerweise ist der Dateipfad /.ssh/id_rsa .

Verwenden Sie den Befehl openssl, um das Paar aus privatem Schlüssel und Zertifikat über das Terminal zu generieren.

1. Um den privaten Schlüssel zu generieren, führen Sie Folgendes aus:

openssl genrsa -out <key name>.key

2. Verwenden Sie den privaten Schlüssel, um das Zertifikat zu generieren:

openssl req -new -x509 -key <key name>.key -out <certificate name>.cert -days <number of days>

Füllen Sie die angeforderten Informationen aus. Für den Allgemeinen Namen , geben Sie die UUID ein der EMP-Anwendung.

4. Zertifikat hochladen

Laden Sie das generierte Zertifikat in die EMP-App hoch.

1. Navigieren Sie zu den Apps Tab auf der linken Seite und suchen Sie die Anwendung.

2. Ändern Sie die Authentifizierungsmethode in Zertifikatsbasiert :

3. Laden Sie das generierte Zertifikat hoch und aktualisieren Sie die Änderungen:

4. Bearbeiten Sie zuletzt die App-Oberfläche und ändern Sie sie in KMIP indem Sie auf den Text neben dem App-Namen klicken:

Teil 2:Festplattenverschlüsselung

Die folgenden Schritte finden auf dem Server-Computer statt .

1. Installieren Sie PyKMIP

Installieren Sie PyKMIP Bibliothek mit dem Pip-Paketmanager.

1. Aktualisieren und aktualisieren Sie das System:

sudo apt update && sudo apt upgrade

2. Installieren Sie pip für Python 3 mit dem folgenden Befehl:

sudo apt install python3-pip

3. Pip aktualisieren:

pip3 install --upgrade pip

4. Installieren Sie das PyKMIP-Modul, indem Sie Folgendes ausführen:

sudo -H pip3 install pykmip

Die Bibliothek hilft beim Erstellen, Aktivieren und Abrufen des Schlüssels zum Verschlüsseln des Geräts.

2. Schlüssel erstellen und abrufen

Das Python-Skript hilft beim Generieren und Aktivieren eines Sicherheitsobjekts, das mit der EMP-App verbunden ist. Der Schlüssel verschlüsselt das Laufwerk.

1. Erstellen Sie eine pykmip.conf Datei mit den folgenden Informationen:

[client]
host=emp.phoenixnap.com
port=5696
ssl_version=PROTOCOL_TLSv1_2
certfile=<path to the generated certificate>/<certificate name>
keyfile=<path to the generated key>/<key name>
ca_certs=<path to the signed certificate>/<certificate name>
do_handshake_on_connect=True
suppress_ragged_eofs=True

Die Konfigurationsdatei ist mit drei Sicherheitsobjekten verknüpft:

  • Schlüsseldatei. Der generierte private Schlüssel.
  • Zertifikatsdatei. Das mit dem privaten Schlüssel erstellte Zertifikat.
  • ca_certs. Ein von der Zertifizierungsstelle signiertes Zertifikat.

Das Skript verwendet die pykmip.conf Konfigurationsdatei, um eine sichere und verifizierte Verbindung mit der EMP-Anwendung herzustellen.

2. Erstellen Sie ein benutzerdefiniertes Python-Skript Verwenden Sie einen Python-Editor und geben Sie dem Skript einen Namen. Fügen Sie den folgenden Code hinzu:

# Import libraries
from kmip.pie import client
from kmip import enums
# Establish connection
c = client.ProxyKmipClient(config_file="<path to conf file>")
# Create key
with c:
    key_id = c.create(
        enums.CryptographicAlgorithm.AES,
        256,
        name='Test Key',
        cryptographic_usage_mask=[
            enums.CryptographicUsageMask.ENCRYPT,
            enums.CryptographicUsageMask.DECRYPT
        ]
    )
# Activate key
    c.activate(key_id)
# Get key
    key = c.get(key_id)
    print(key)

Das Skript stellt eine Verbindung basierend auf dem Inhalt der pykmip.conf her Datei. Achten Sie darauf, den Pfad zum Speicherort Ihrer Konfigurationsdatei zu ändern .

Wenn der Client eine Verbindung herstellt, generiert das Skript einen Schlüssel namens Test Key . Die Parameter beschreiben das Schlüsselobjekt sowie die beabsichtigte Verwendung.

3. Führen Sie das Skript aus, um das Schlüsselobjekt zu generieren:

python3 <script name>.py

Die Ausgabe des Skripts zeigt den Schlüssel. Der Code hat das Sicherheitsobjekt erfolgreich in der EMP-Anwendung generiert.

4. Öffnen Sie das Sicherheitsobjekt, indem Sie zu den Sicherheitsobjekten navigieren Registerkarte auf der linken Seite. Öffnen Sie das Schlüsselobjekt und kopieren Sie die UUID :

5. Erstellen Sie mithilfe der UUID des Schlüssels ein Python-Skript mit dem Namen key.py um den Schlüssel zu holen. Fügen Sie den folgenden Code ein und fügen Sie die UUID des Sicherheitsobjekts hinzu in Zeile 4:

from kmip.pie import client
c = client.ProxyKmipClient(config_file="<path to pykmip.conf file>")
with c:
    key = c.get('<uuid of security object>')
    print(key)

3. Verschlüsseln Sie das Gerät mit LUKS und CryptSetup

Dieser Teil erstellt einen Dateicontainer und verschlüsselt ihn mit LUKS-Verschlüsselung mit dem von der EMP-Plattform abgerufenen Schlüssel.

1. Erstellen Sie einen verschlüsselten Dateicontainer mit dem Befehl dd:

dd of=secretfs bs=1G count=0 seek=2

2. Ändern Sie die Containerberechtigung auf 600 mit dem chmod-Befehl:

sudo chmod 600 secretfs

3. Hängen Sie den Dateicontainer mit losetup an ein Loop-Gerät an Befehl:

sudo losetup /dev/loop101 secretfs

4. Verwenden der key.py formatieren Sie das Loop-Gerät mit cryptsetup und luksFormat :

python3 key.py | sudo cryptsetup -y luksFormat /dev/loop101

Dieser Befehl verschlüsselt das Gerät mit LUKS-Verschlüsselung mit dem in EMP gespeicherten Schlüssel.

5. Öffnen Sie den verschlüsselten Dateicontainer auf dem Loop-Gerät mit dem Schlüssel:

python3 key.py | sudo cryptsetup luksOpen /dev/loop101 secretfs

Das Gerät öffnet sich nun mit dem in EMP hinterlegten Schlüssel.

4. Dateisystem auf dem Gerät erstellen

Erstellen Sie das Dateisystem auf dem verschlüsselten Gerätecontainer, ordnen Sie das verschlüsselte Dateisystem zu und hängen Sie das Gerät ein.

1. Formatieren Sie die Festplatte mit mkfs Befehl:

sudo mkfs.ext4 /dev/mapper/secretfs

2. Erstellen Sie einen Einhängepunkt für das Dateisystem:

sudo mkdir /mnt/encrypted

3. Mounten Sie die Festplatte:

sudo mount /dev/mapper/secretfs /mnt/encrypted

4. Überprüfen Sie, ob das Gerät gemountet ist:

df | grep secretfs

5. Neustart:

sudo reboot

Teil 3:On-Boot-Skript erstellen

Nach dem Neustart wird die Festplatte automatisch ausgehängt. Die folgenden Schritte erläutern, wie Sie das Gerät nach einem Neustart manuell mounten. Dieselben Schritte entsperren und mounten die Festplatte im automatisierten On-Boot-Skript.

1. Manuelles Entsperren und Mounten

Die folgenden Befehle öffnen und mounten die Festplatte:

1. Verbinden Sie das Loop-Gerät mit einem Dateicontainer:

sudo losetup /dev/loop101 secretfs

2. Öffnen Sie das Gerät mit der Taste:

python3 key.py | sudo cryptsetup luksOpen /dev/loop101 secretfs

3. Montieren Sie das Gerät:

sudo mount /dev/mapper/secretfs /mnt/encrypted

4. Prüfen Sie, ob das Gerät mit df gemountet wurde Befehl:

df | grep secretfs

2. Automatisiertes Entsperren und Mounten

Der letzte Schritt besteht darin, die vorherigen Befehle so zu automatisieren, dass sie beim Booten ausgeführt werden. Der Schlüssel wird automatisch von der EMP-Plattform abgerufen, wodurch die Festplatte bei jedem Neustart entsperrt und bereitgestellt wird. Dieser Schritt stellt auch sicher, dass der Schlüssel nirgendwo auf der Maschine gespeichert wird.

1. Erstellen Sie einen Dienst in /etc/init.d Mappe. Benennen Sie die Datei ohne Erweiterungen. Wenn Sie beispielsweise den vim-Editor verwenden und den Dienst automount nennen , ausführen:

sudo vim /etc/init.d/automount

2. Fügen Sie die folgenden Codezeilen hinzu:

#!/usr/bin/env python3
### BEGIN INIT INFO
# Provides:        <service name>
# Required-Start: $ALL
# Should-Start: 
# Required-Stop:
# Should-Stop:
# Default-Start:  2 3 5
# Default-Stop:
# Description:    Automated LUKS Unlock
### END INIT INFO
from kmip.pie import client
import subprocess
import os
from requests import get, ConnectionError, Timeout

# Change directory to the location of secretfs
os.chdir('<path to secretfs>')

# First part: Establish a client connection and fetch key
try:
    request = get("https://emp.phoenixnap.com", timeout=60)
except(ConnectionError, Timeout):
    print("Connection error, retrying...")
c = client.ProxyKmipClient(config_file="./pykmip.conf")
with c:
    SECRET = str(c.get('<uuid security object>'))
    print("Success! Unlocking and mounting the device.")

# Second part: Automating the commands to attach, unlock and mount the device
LUKS_DEVICE = "/dev/loop101"
LUKS_DEVICE_MAP = "secretfs"
LUKS_DEVICE_MOUNT_POINT = "/mnt/encrypted"
MAPPER = '/dev/mapper/' + LUKS_DEVICE_MAP
subprocess.run(['sudo', 'losetup', LUKS_DEVICE, LUKS_DEVICE_MAP])
ps = subprocess.Popen(('echo', SECRET), stdout=subprocess.PIPE)
subprocess.check_output(('sudo', 'cryptsetup', 'luksOpen', LUKS_DEVICE, LUKS_DEVICE_MAP), stdin=ps.stdout)
subprocess.run(['sudo', 'mount' ,MAPPER ,LUKS_DEVICE_MOUNT_POINT])

Das Skript besteht aus zwei Teilen:

  • Der erste Teil sind die gleichen Codezeilen wie in key.py -Skript, das den Schlüssel mithilfe der UUID von der EMP-Plattform abruft des Sicherheitsobjekts.
  • Der zweite Teil des Skripts folgt den Schritten vom manuellen Entsperren und Mounten, Öffnen und Mounten des verschlüsselten Laufwerks.

3. Ändern Sie die Berechtigung auf 755 mit chmod um den Dienst ausführbar zu machen:

sudo chmod 755 <service name>

4. Aktualisieren Sie die Serviceinformationen auf dem System:

sudo update-rc.d <service name> defaults

Mit diesem Schritt ist die Einrichtung des automatisierten Dienstes zum Entsperren und Montieren des Geräts abgeschlossen.

5. Starten Sie das System neu:

sudo reboot

6. Verwenden des df überprüfen Sie, ob das Gerät nach dem Neustart automatisch gemountet wird:

df | grep secretfs

Entfernen Sie im Falle einer Kompromittierung das Sicherheitsobjekt aus Ihrem EMP-Konto. Beim nächsten Neustart des Geräts kann der Schlüssel nicht abgerufen werden, und die Festplatte bleibt gesperrt und sicher.


Ubuntu
  1. So richten Sie Hardware-RAID mit MegaCLI ein

  2. So konfigurieren Sie das zweite Laufwerk auf BMC-Servern mit zwei Laufwerken

  3. So richten Sie einen Load Balancer auf einem s0.d1.small BMC-Server ein

  4. So richten Sie SSH-Schlüssel ein

  5. So legen Sie eine systemweite Proxy-Adresse mit Shell-Skript fest

So erstellen Sie ein Ubuntu Live USB-Laufwerk über die Befehlszeile

So richten Sie die passwortlose SSH-Authentifizierung unter Linux ein

Wie richte ich eine passwortlose SSH-Anmeldung mit ssh-keygen ein?

So verwenden Sie die E-Mail-Verschlüsselung in Ubuntu

Wie tötet man X Server mit einer Tastenkombination?

Wie richte ich die E-Mail-Verschlüsselung in cPanel ein?