Skip to main content
BeeGFS on NetApp with E-Series Storage
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Configura la crittografia TLS per BeeGFS 8

Collaboratori mcwhiteside

Configura la crittografia TLS per proteggere la comunicazione tra i servizi di gestione BeeGFS 8 e i client.

Panoramica

BeeGFS 8 introduce il supporto TLS per la crittografia delle comunicazioni di rete tra gli strumenti di amministrazione (come l beegfs utility da riga di comando) e i servizi server BeeGFS come Management o Remote. Configura la crittografia TLS nel tuo cluster BeeGFS utilizzando uno dei tre metodi:

  • Utilizzo di un'autorità di certificazione attendibile: Usa i certificati firmati da CA esistenti sul tuo cluster BeeGFS.

  • Creazione di un'Autorità di Certificazione locale: Crea un'Autorità di Certificazione locale e utilizzala per firmare i certificati per i tuoi servizi BeeGFS. Questo approccio è adatto ad ambienti in cui desideri gestire la tua catena di fiducia senza dipendere da un'Autorità di Certificazione esterna.

  • TLS disabilitato: Disabilita completamente TLS negli ambienti in cui la crittografia non è richiesta o per la risoluzione dei problemi. Evita questa opzione negli ambienti di produzione perché espone informazioni potenzialmente sensibili sulla struttura e configurazione del file system in chiaro.

Scegli il metodo più adatto al tuo ambiente e alle policy aziendali. Consulta la "BeeGFS TLS" documentazione per ulteriori dettagli.

Nota

I client che eseguono il servizio beegfs-client non richiedono TLS per montare il file system BeeGFS. TLS è richiesto per utilizzare la CLI di BeeGFS e altri servizi BeeGFS, come Remote e Sync.

Utilizzo di un'autorità di certificazione attendibile

Se hai accesso a certificati rilasciati da un'Autorità di Certificazione (CA) attendibile—sia essa da una CA aziendale interna o da un fornitore terzo—puoi configurare BeeGFS 8 per utilizzare questi certificati firmati dalla CA invece di generarne di autofirmati.

Implementazione di un nuovo cluster BeeGFS 8

Per una nuova implementazione del cluster BeeGFS 8, configura il file user_defined_params.yml di inventario di Ansible in modo che faccia riferimento ai certificati firmati dalla tua CA:

beegfs_ha_tls_enabled: true

beegfs_ha_ca_cert_src_path: files/beegfs/cert/ca_cert.pem

beegfs_ha_tls_cert_src_path: files/beegfs/cert/mgmtd_tls_cert.pem

beegfs_ha_tls_key_src_path: files/beegfs/cert/mgmtd_tls_key.pem
Nota

Se beegfs_ha_tls_config_options.alt_names non è vuoto, Ansible genererà automaticamente un certificato TLS autofirmato e una chiave, utilizzando gli alt_names forniti come Subject Alternative Names (SAN) nel certificato. Per utilizzare il proprio certificato TLS e la propria chiave personalizzati (come specificato da beegfs_ha_tls_cert_src_path e beegfs_ha_tls_key_src_path), è necessario commentare o rimuovere l'intera beegfs_ha_tls_config_options sezione. In caso contrario, la generazione del certificato autofirmato avrà la precedenza e il certificato e la chiave personalizzati non verranno utilizzati.

Configurazione di un cluster BeeGFS 8 esistente

Per un cluster BeeGFS 8 esistente, impostare i percorsi nel file di configurazione dei servizi di gestione BeeGFS sui certificati firmati dalla CA del nodo file:

tls-cert-file = /path/to/cert.pem
tls-key-file = /path/to/key.pem

Configurazione dei client BeeGFS 8 con certificati firmati da CA

Importante

Se stai aggiornando un cluster BeeGFS 7 esistente a BeeGFS 8, segui la "Esegui l'aggiornamento a BeeGFS 8" procedura. Non configurare il client TLS finché non ti viene richiesto nella procedura di aggiornamento.

Per configurare i client BeeGFS 8 affinché si fidino dei certificati firmati da CA utilizzando il pool di certificati di sistema, impostare tls-cert-file = "" nella configurazione di ciascun client. Se non si utilizza il pool di certificati di sistema, specificare il percorso di un certificato locale impostando tls-cert-file = <local cert>. Questa configurazione consente ai client di autenticare i certificati presentati dai servizi di gestione BeeGFS.

Creazione di un'autorità di certificazione locale

Se la tua organizzazione desidera creare una propria infrastruttura di certificazione per il cluster BeeGFS, puoi creare un'Autorità di Certificazione (CA) locale per emettere e firmare i certificati per il tuo cluster BeeGFS. Questo approccio prevede la creazione di una CA che firma i certificati per i servizi di gestione BeeGFS, che vengono poi distribuiti ai client per stabilire una catena di trust.

Implementazione di un nuovo cluster BeeGFS 8

Per una nuova implementazione di BeeGFS 8, il beegfs_8 ruolo Ansible (incluso nella raccolta BeeGFS HA) crea una CA locale sul nodo di controllo e genera i certificati necessari per i servizi di gestione. Abilita questa funzionalità impostando i seguenti parametri nel file user_defined_params.yml di inventario di Ansible:

beegfs_ha_tls_enabled: true

beegfs_ha_ca_cert_src_path: files/beegfs/cert/local_ca_cert.pem

beegfs_ha_tls_cert_src_path: files/beegfs/cert/mgmtd_tls_cert.pem

beegfs_ha_tls_key_src_path: files/beegfs/cert/mgmtd_tls_key.pem

beegfs_ha_tls_config_options:
  alt_names: [<mgmt_service_ip>]
Nota

Se beegfs_ha_tls_config_options.alt_names non viene fornito, Ansible tenterà di utilizzare i certificati esistenti nei percorsi certificato/chiave specificati.

Configurazione di un cluster BeeGFS 8 esistente

Per un cluster BeeGFS esistente, puoi integrare TLS creando un'autorità di certificazione locale e generando i certificati necessari per i servizi di gestione. Aggiorna i percorsi nel file di configurazione dei servizi di gestione BeeGFS affinché puntino ai certificati appena creati.

Importante

Utilizzate queste istruzioni come riferimento. Adottate le dovute precauzioni di sicurezza quando maneggiate chiavi private e certificati.

Creare l'autorità di certificazione

Su una macchina attendibile, crea una Certificate Authority locale per firmare i certificati per i servizi di gestione BeeGFS. Il certificato della CA verrà distribuito ai client per stabilire la fiducia e abilitare la comunicazione sicura con i servizi BeeGFS.

Le seguenti istruzioni costituiscono un riferimento per la creazione di una Certificate Authority locale su un sistema basato su RHEL.

  1. Installa OpenSSL se non è già installato:

    dnf install openssl
  2. Crea una directory di lavoro in cui archiviare i file dei certificati:

    mkdir -p ~/beegfs_tls && cd ~/beegfs_tls
  3. Genera la chiave privata CA:

    openssl genrsa -out ca_key.pem 4096
  4. Crea un file di configurazione CA denominato ca.cnf e modifica i campi del nome distinto in modo che corrispondano alla tua organizzazione:

    [ req ]
    default_bits       = 4096
    distinguished_name = req_distinguished_name
    x509_extensions    = v3_ca
    prompt             = no
    
    [ req_distinguished_name ]
    C  = <Country>
    ST = <State>
    L  = <City>
    O  = <Organization>
    OU = <OrganizationalUnit>
    CN = BeeGFS-CA
    
    [ v3_ca ]
    basicConstraints = critical,CA:TRUE
    subjectKeyIdentifier = hash
    authorityKeyIdentifier = keyid:always,issuer:always
  5. Genera il certificato CA. Questo certificato deve essere valido per tutta la durata del sistema. Pianifica di rigenerare i certificati prima della loro scadenza. Dopo la scadenza di un certificato, la comunicazione tra alcuni componenti si interrompe. L'aggiornamento dei certificati TLS in genere richiede il riavvio dei servizi.

    Il seguente comando genera un certificato CA valido per 1 anno:

    openssl req -new -x509 -key ca_key.pem -out ca_cert.pem -days 365 -config ca.cnf
    Nota Sebbene in questo esempio venga utilizzato un periodo di validità di 1 anno per semplicità, è opportuno adattare il -days parametro in base ai requisiti di sicurezza della propria organizzazione e stabilire una procedura di rinnovo del certificato.

Creare certificati del servizio di gestione

Genera certificati per i tuoi servizi di gestione BeeGFS e firmali con la CA che hai creato. Questi certificati verranno installati sui nodi file che eseguono i servizi di gestione BeeGFS.

  1. Genera la chiave privata del servizio di gestione:

    openssl genrsa -out mgmtd_tls_key.pem 4096
  2. Crea un file di configurazione del certificato denominato tls_san.cnf con Subject Alternative Names (SAN) per tutti gli indirizzi IP del servizio di gestione:

    [ req ]
    default_bits       = 4096
    distinguished_name = req_distinguished_name
    req_extensions     = req_ext
    prompt             = no
    
    [ req_distinguished_name ]
    C  = <Country>
    ST = <State>
    L  = <City>
    O  = <Organization>
    OU = <OrganizationalUnit>
    CN = beegfs-mgmt
    
    [ req_ext ]
    subjectAltName = @alt_names
    
    [ v3_ca ]
    subjectAltName = @alt_names
    basicConstraints = CA:FALSE
    
    [ alt_names ]
    IP.1 = <beegfs_mgmt_service_ip_1>
    IP.2 = <beegfs_mgmt_service_ip_2>

    Aggiorna i campi del nome distinto in modo che corrispondano alla configurazione della tua CA e sostituisci i IP.1 e IP.2 valori con gli indirizzi IP del tuo servizio di gestione.

  3. Genera una richiesta di firma del certificato (CSR):

    openssl req -new -key mgmtd_tls_key.pem -out mgmtd_tls_csr.pem -config tls_san.cnf
  4. Firma il certificato con la tua CA (valido per 1 anno):

    openssl x509 -req -in mgmtd_tls_csr.pem -CA ca_cert.pem -CAkey ca_key.pem -CAcreateserial -out mgmtd_tls_cert.pem -days 365 -sha256 -extensions v3_ca -extfile tls_san.cnf
    Nota Adatta il periodo di validità del certificato (-days 365) in base alle policy di sicurezza della tua organizzazione. Molte organizzazioni richiedono la rotazione dei certificati ogni 1-2 anni.
  5. Verifica che il certificato sia stato creato correttamente:

    openssl x509 -in mgmtd_tls_cert.pem -text -noout

    Conferma che la sezione Subject Alternative Name includa tutti i tuoi indirizzi IP di gestione.

Distribuisci i certificati ai nodi file

Distribuire il certificato CA e i certificati del servizio di gestione ai nodi file e ai client appropriati.

  1. Copia il certificato CA, il certificato del servizio di gestione e la chiave nei nodi file che eseguono i servizi di gestione:

    scp ca_cert.pem mgmtd_tls_cert.pem mgmtd_tls_key.pem user@beegfs_01:/etc/beegfs/
    scp ca_cert.pem mgmtd_tls_cert.pem mgmtd_tls_key.pem user@beegfs_02:/etc/beegfs/

Indirizzare il servizio di gestione ai certificati TLS

Aggiorna la configurazione del servizio di gestione BeeGFS per abilitare TLS e fare riferimento ai certificati TLS creati.

  1. Da un nodo file che esegue il servizio di gestione BeeGFS, modifica il file di configurazione del servizio di gestione, ad esempio in /mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.toml. Aggiungi o aggiorna i seguenti parametri relativi a TLS:

    tls-disable = false
    tls-cert-file = "/etc/beegfs/mgmtd_tls_cert.pem"
    tls-key-file = "/etc/beegfs/mgmtd_tls_key.pem"
  2. Riavvia il servizio di gestione BeeGFS:

    systemctl restart beegfs-mgmtd
  3. Verificare che il servizio di gestione sia stato avviato correttamente:

    journalctl -xeu beegfs-mgmtd
    Nota

    Cerca le voci di registro che indicano l'inizializzazione TLS e il caricamento del certificato riusciti.

    Successfully initialized certificate verification library.
    Successfully loaded license certificate: TMP-XXXXXXXXXX

Configura TLS per i client BeeGFS 8

Importante

Se stai aggiornando un cluster BeeGFS 7 esistente a BeeGFS 8, segui la "Esegui l'aggiornamento a BeeGFS 8" procedura. Non configurare il client TLS finché non ti viene richiesto nella procedura di aggiornamento.

Crea e distribuisci certificati firmati dalla CA locale a tutti i client BeeGFS che richiedono la comunicazione con i servizi di gestione BeeGFS.

  1. Genera un certificato client utilizzando lo stesso processo descritto in [create-management-service-certificates], sostituendo l'indirizzo IP o il nome host del client nel campo Subject Alternative Name (SAN).

  2. Copia il certificato client sul nodo client e rinominalo in cert.pem:

    scp client_cert.pem user@client:/etc/beegfs/cert.pem
  3. Riavvia il servizio client BeeGFS su tutti i client:

    systemctl restart beegfs-client
  4. Verificare la connettività del client eseguendo un comando CLI di BeeGFS, ad esempio:

    beegfs health check

Disabilitazione TLS

Disabilitare TLS per la risoluzione dei problemi o se l'ambiente non richiede la crittografia. Evitare questa opzione negli ambienti di produzione perché espone informazioni potenzialmente sensibili sulla struttura e configurazione del file system in chiaro.

Implementazione di un nuovo cluster BeeGFS 8

Per una nuova implementazione del cluster BeeGFS, disabilitare TLS impostando il seguente parametro nel file user_defined_params.yml di inventario di Ansible:

beegfs_ha_tls_enabled: false

Configurazione di un cluster BeeGFS 8 esistente

Per un cluster BeeGFS 8 esistente, modificare il file di configurazione del servizio di gestione. Ad esempio, modificare il file a /mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.toml e impostare:

tls-disable = true

Riavvia il servizio di gestione affinché le modifiche abbiano effetto.