Stabilire la crittografia in transito per le condivisioni di file zonali

Configurare connessioni di montaggio crittografate per le condivisioni di file zonali utilizzando il protocollo di sicurezza IPsec e i certificati X.509 per garantire una crittografia sicura dei dati da punto a punto.

IPsec è un gruppo di protocolli che insieme creano connessioni crittografate tra dispositivi. Aiuta a mantenere sicuri i dati inviati sulle reti pubbliche. IPsec cripta i pacchetti IP e autentica la fonte da cui provengono i pacchetti. Per configurare IPsec sull'istanza del server virtuale, è possibile utilizzare strongSwan, una soluzione VPN open source basata su IPsec. Per ulteriori informazioni sul funzionamento di strongSwan, vedere anche Introduzione a strongSwan e al protocollo IPsec.

La connessione IPsec richiede un certificato X.509 per l'autenticazione. X.509 è un formato standard internazionale per i certificati a chiave pubblica, documenti digitali che associano in modo sicuro coppie di chiavi crittografiche a identità come siti web, persone o organizzazioni. Il servizio di metadati viene utilizzato per creare i certificati.

Una Certificate Signing Request (CSR) è un blocco di testi codificati che vengono inviati a un'autorità di certificazione (CA) quando gli utenti richiedono un certificato. Il CSR viene creato sul server in cui deve essere installato il certificato. La CSR include informazioni quali il nome del dominio, il nome dell'organizzazione, la località e il paese. La richiesta contiene anche la chiave pubblica, associata al certificato generato, e la chiave privata. La CA utilizza solo la chiave pubblica quando viene creato il certificato. La chiave privata deve essere salvata e mantenuta segreta. Poiché la chiave privata fa parte della coppia di chiavi con la chiave pubblica, il certificato non funziona se la chiave privata viene persa.

Quando si utilizzano connessioni IPsec per montare condivisioni di file zonali, possono verificarsi interruzioni temporanee del montaggio durante le operazioni di manutenzione o in caso di guasto di un nodo. In casi eccezionali, i mount configurati con IPsec possono subire interruzioni del servizio della durata massima di 3 minuti. Per ulteriori informazioni, consultare la sezione “Possibili interruzioni del montaggio delle condivisioni di file zonali configurate con IPsec durante gli interventi di manutenzione ”.

Prima di iniziare a configurare la crittografia in transito con IPsec

Per utilizzare la funzione, è necessario soddisfare i seguenti requisiti:

Il servizio file IBM Cloud® mette a disposizione l'utilità Mount Helper per automatizzare le seguenti operazioni eseguite sull'host di calcolo.

Se si desidera collegare una condivisione di file a istanze in esecuzione in VPC diverse in una zona, è possibile creare più target di montaggio. È possibile creare un target di montaggio per ogni VPC.

Ottenere il certificato di identità dell'istanza

Ottenere i certificati X.509 necessari per l'autenticazione. Gli stessi certificati non possono essere utilizzati in più regioni.

  1. Il comando seguente genera una richiesta di firma del certificato (CSR) e una coppia di chiavi RSA utilizzando openssl.

    openssl req -sha256 -newkey rsa:4096 -subj '/C=US' -out ./sslcert.csr -keyout file.key -nodes
    

    Quando si esegue il comando, sostituire il codice paese US con il proprio codice paese a due cifre in '/C=US'.

    OpenSSL è un toolkit open source da riga di comando che consente di gestire certificati X.509, richieste di firma dei certificati (CSR) e chiavi crittografiche. Per ulteriori informazioni, consultare la documentazione di OpenSSL.

    Se si utilizza un software diverso per creare il CSR, potrebbe essere richiesto di inserire informazioni sulla propria posizione. Le informazioni sulla posizione possono includere il codice del Paese (C), lo Stato (ST), la località (L), il nome dell'organizzazione (O) e l'unità organizzativa (OU). È possibile utilizzare uno qualsiasi di questi attributi di denominazione. Qualsiasi altro attributo di denominazione, come il nome comune, viene rifiutato. Le CSR con Nome comune specificato vengono rifiutate perché quando si effettua la richiesta, il sistema applica automaticamente i valori dell'ID istanza al Nome comune dell'oggetto per i certificati di identità dell'istanza. Anche i CSR con estensioni vengono rifiutati.

  2. Formattare il csr prima di effettuare una chiamata API al servizio di metadati utilizzando il comando seguente.

    awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' sslcert.csr
    
  3. Quindi, utilizzare il servizio di metadati sull'istanza del server virtuale o sul server bare metal per creare un certificato client.

    1. Effettuare una richiesta PUT /instance_identity/v1/token (istanza di server virtuale) o PUT /identity/v1/tokens (server bare metal) per ottenere un token dal servizio di identità VPC da utilizzare per le chiamate successive. Per ulteriori informazioni, vedi i seguenti argomenti:
    2. Utilizzare il token di identità per creare un certificato di identità. Effettuare una richiesta POST /instance_identity/v1/certificates per un'istanza di server virtuale o POST /identity/v1/certificates per un server bare metal. Specificare il token di identità nell'intestazione HTTP Authorization, più una richiesta di firma del certificato (come proprietà csr ) e una durata di validità (come proprietà expires_in ). La chiamata restituisce un nuovo certificato client e una catena di certificati intermedi che consentono al client di accedere alle condivisioni di file utilizzando IPsec Encryption in Transit. Per ulteriori informazioni, vedi i seguenti argomenti:
    3. Copiate l'output della risposta API, comprese le righe -----BEGIN CERTIFICATE----- e -----END CERTIFICATE-----, e salvatelo in un file con un nome riconoscibile, come ca-cert.pem. Assicurarsi che il file creato abbia l'estensione .pem.
  4. Copiare il certificato di identità dell'istanza nella directory /etc/ipsec.d/cacerts.

    sudo cp /tmp/ca-cert.pem /etc/ipsec.d/cacerts
    

Configurazione dell'host e montaggio della condivisione

  1. Installare e configurare il client strongSwan. È necessario configurare la modalità di trasporto IPsec per l'indirizzo di destinazione del montaggio.

  2. Assicurarsi di installare i plug-in necessari (libcharon-extra-plugins) per l'autenticazione e aggiornare i file di configurazione con la posizione del certificato di identità dell'istanza.

  3. Stabilire una connessione sicura avviando il client strongSwan.

  4. Montare la condivisione di file.