GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nastavit BMC Drive Encryption pomocí EMP

Úvod

Šifrování disku BMC pomocí phoenixNAP EMP (Encryption Management Platform) poskytuje nezbytné zabezpečení dat pro váš disk Bare Metal Cloud. Platforma EMP slouží jako server pro správu klíčů a zajišťuje, že informace o šifrování nebudou uloženy na disku.

K odemknutí disku dojde při každém restartu. V případě kompromisu odeberete oprávnění prostřednictvím platformy EMP a disk zůstane v bezpečí.

Tento třídílný tutoriál vysvětluje, jak nastavit šifrování jednotky BMC pomocí automatického skriptu Python pomocí EMP.

Část 1:Přednastavení

Přednastavení zahrnuje všechny kroky potřebné k registraci účtu EMP a generování klientských certifikátů.

1. Získejte EMP účet

Pokud již máte účet EMP, tento krok přeskočte. V opačném případě vytvořte účet EMP:

1. Přejděte na https://emp.phoenixnap.com/.

2. Klikněte na ZAREGISTROVAT SE k registraci účtu.

3. Zadejte své registrační údaje a zvolte silné heslo nejméně 14 znaků.

Klikněte na ZAREGISTROVAT SE pokračovat.

4. Zvolte požadovaný název účtu a klikněte na Odeslat požadavek vytvořit nový účet.

5. Vyčkejte na souhlas správce prostřednictvím emailu. Jakmile účet obdrží schválení, přihlaste se a přejděte k dalšímu kroku.

2. Vytvořit skupinu

Po schválení účtu vytvořte skupinu a přidejte aplikaci EMP.

1. Přejděte do části Skupiny karta vlevo.

2. Klikněte na ikonu plus pro přidání nové skupiny:

4. Nastavte název skupiny a Uložit .

5. Na řídicím panelu se zobrazí nově vytvořená stránka skupiny. Klikněte na Nová aplikace tlačítko pro přidání nové aplikace.

6. Jméno aplikaci, přejděte dolů a klikněte na Uložit .

7. Zobrazí se potvrzovací zpráva pro vytvoření aplikace. Zkopírujte a uložte aplikaciUUID pro další krok.

3. Vygenerovat soukromý klíč a certifikát

Proveďte všechny následující kroky na serveru Bare Metal Cloud . SSH na server BMC pomocí:

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

<path to id_rsa> je cesta k souboru vaší identity. Normálně je cesta k souboru /.ssh/id_rsa .

Pomocí příkazu openssl vygenerujte pár soukromých klíčů a certifikátů prostřednictvím terminálu.

1. Chcete-li vygenerovat soukromý klíč, spusťte:

openssl genrsa -out <key name>.key

2. K vygenerování certifikátu použijte soukromý klíč:

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

Vyplňte požadované informace. Pro Obecné jméno , zadejte UUID aplikace EMP.

4. Nahrát certifikát

Nahrajte vygenerovaný certifikát do aplikace EMP.

1. Přejděte na Aplikace kartu nalevo a vyhledejte aplikaci.

2. Změňte metodu ověřování na Založeno na certifikátu :

3. Nahrajte vygenerovaný certifikát a aktualizujte změny:

4. Nakonec upravte rozhraní aplikace a změňte jej na KMIP kliknutím na text vedle názvu aplikace:

Část 2:Šifrování disku

Následující kroky probíhají na serverovém počítači .

1. Nainstalujte PyKMIP

Nainstalujte PyKMIP knihovny pomocí správce balíčků pip.

1. Aktualizujte a upgradujte systém:

sudo apt update && sudo apt upgrade

2. Nainstalujte pip pro Python 3 pomocí následujícího příkazu:

sudo apt install python3-pip

3. Upgrade pip:

pip3 install --upgrade pip

4. Nainstalujte modul PyKMIP spuštěním:

sudo -H pip3 install pykmip

Knihovna pomáhá vytvořit, aktivovat a získat klíč pro šifrování zařízení.

2. Vytvořit a načíst klíč

Skript Python pomáhá generovat a aktivovat objekt zabezpečení připojený k aplikaci EMP. Klíč zašifruje disk.

1. Vytvořte pykmip.conf soubor s následujícími informacemi:

[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

Konfigurační soubor odkazuje na tři objekty zabezpečení:

  • soubor klíče. Vygenerovaný soukromý klíč.
  • soubor certifikátu. Certifikát vytvořený pomocí soukromého klíče.
  • ca_certs. Certifikát podepsaný certifikační autoritou.

Skript používá pykmip.conf konfigurační soubor pro navázání zabezpečeného a ověřeného spojení s aplikací EMP.

2. Vytvořte vlastní skript Python pomocí editoru Python a pojmenujte skript. Přidejte následující kód:

# 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)

Skript naváže spojení na základě obsahu pykmip.conf soubor. Ujistěte se, že jste změnili cestu k umístění vašeho konfiguračního souboru .

Když klient vytvoří připojení, skript vygeneruje klíč s názvem Testovací klíč . Parametry popisují klíčový objekt a také zamýšlené použití.

3. Spuštěním skriptu vygenerujte objekt klíče:

python3 <script name>.py

Výstup skriptu zobrazuje klíč. Kód úspěšně vygeneroval objekt zabezpečení v aplikaci EMP.

4. Otevřete objekt zabezpečení přechodem na Objekty zabezpečení záložka vlevo. Otevřete objekt klíče a zkopírujte UUID :

5. Pomocí UUID klíče vytvořte skript Pythonu s názvem key.py k vyzvednutí klíče. Vložte následující kód a přidejte UUID objektu zabezpečení na řádku 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. Šifrujte zařízení pomocí LUKS a CryptSetup

Tato část vytvoří kontejner souborů a zašifruje jej pomocí šifrování LUKS pomocí klíče načteného z platformy EMP.

1. Vytvořte kontejner šifrovaných souborů pomocí příkazu dd:

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

2. Změňte oprávnění kontejneru na 600 pomocí příkazu chmod:

sudo chmod 600 secretfs

3. Připojte kontejner souboru k zařízení smyčky pomocí losetup příkaz:

sudo losetup /dev/loop101 secretfs

4. Pomocí key.py skript, naformátujte zařízení smyčky pomocí cryptsetup a luksFormat :

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

Tento příkaz zašifruje zařízení pomocí šifrování LUKS s klíčem uloženým v EMP.

5. Otevřete kontejner šifrovaných souborů na zařízení smyčky pomocí klíče:

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

Zařízení se nyní otevře pomocí klíče uloženého v EMP.

4. Vytvořit systém souborů na zařízení

Sestavte systém souborů na kontejneru šifrovaného zařízení, namapujte systém šifrovaných souborů a připojte zařízení.

1. Naformátujte disk pomocí mkfs příkaz:

sudo mkfs.ext4 /dev/mapper/secretfs

2. Vytvořte bod připojení pro systém souborů:

sudo mkdir /mnt/encrypted

3. Připojte disk:

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

4. Zkontrolujte, zda je zařízení připojeno:

df | grep secretfs

5. Restartujte:

sudo reboot

Část 3:Vytvořte skript při spuštění

Po restartu se disk automaticky odpojí. Níže uvedené kroky vysvětlují, jak ručně připojit zařízení po restartu. Stejné kroky odemkněte a připojte disk v automatickém skriptu při spuštění.

1. Ruční odemknutí a připojení

Následující příkazy otevřou a připojí disk:

1. Připojte zařízení smyčky ke kontejneru souborů:

sudo losetup /dev/loop101 secretfs

2. Otevřete zařízení pomocí tlačítka:

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

3. Namontujte zařízení:

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

4. Zkontrolujte, zda je zařízení připojeno pomocí df příkaz:

df | grep secretfs

2. Automatické odemykání a připojení

Posledním krokem je automatizace předchozích příkazů pro spuštění při spuštění. Klíč se z platformy EMP stáhne automaticky, což pomáhá odemknout a připojit disk při každém restartu. Tento krok také zajistí, že klíč nebude uložen nikde na stroji.

1. Vytvořte službu v /etc/init.d složka. Pojmenujte soubor bez jakýchkoli přípon. Pokud například použijete editor vim a službu pojmenujete automount , spustit:

sudo vim /etc/init.d/automount

2. Přidejte následující řádky kódu:

#!/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])

Skript má dvě části:

  • První část jsou stejné řádky kódu jako v key.py skript, který získá klíč z platformy EMP pomocí UUID objektu zabezpečení.
  • Druhá část skriptu se řídí kroky od ručního odemknutí a připojení, otevření a připojení šifrovaného disku.

3. Změňte oprávnění na 755 pomocí chmod aby byla služba spustitelná:

sudo chmod 755 <service name>

4. Aktualizujte servisní informace v systému:

sudo update-rc.d <service name> defaults

Nastavení automatické služby pro odemykání a montáž zařízení tímto krokem končí.

5. Restartujte systém:

sudo reboot

6. Pomocí df zkontrolujte, zda se zařízení po restartu automaticky připojí:

df | grep secretfs

V případě kompromitace odstraňte objekt zabezpečení z vašeho EMP účtu. Při příštím restartování zařízení nelze klíč získat a disk zůstane uzamčený a zabezpečený.


Ubuntu
  1. Jak nastavit hardwarový RAID pomocí MegaCLI

  2. Jak nastavit klíče SSH

  3. Jak nastavit adresu proxy v celém systému pomocí skriptu Shell?

  1. Jak nakonfigurovat druhý disk na dvoudiskových BMC serverech

  2. Jak nastavit Load Balancer na s0.d1.small BMC Server

  3. Jak nastavit přihlášení k SSH bez hesla

  1. Jak vytvořit VPN na Ubuntu 20.04 pomocí Wireguard

  2. Jak nastavit klíče SSH na Ubuntu 18.04

  3. Jak nastavit klíče SSH na Ubuntu 20.04