Uso della cifratura TLS in transito

La cifratura in transito mediante oci-fss-utils o stunnel consente di proteggere i dati tra le istanze e i file system di cui è stato eseguito il MOUNT utilizzando la cifratura TLS v.1.3 (Transport Layer Security). Insieme ad altri metodi di sicurezza come Oracle Cloud Infrastructure Vault e la crittografia in archivio dello storage di file, la cifratura in transito fornisce sicurezza end-to-end.

Suggerimento

Se si utilizza Kerberos per l'autenticazione, l'opzione di sicurezza KRB5P fornisce l'autenticazione su NFS, l'integrità dei dati (modifica non autorizzata dei dati in transito) e la privacy dei dati come opzione di cifratura in transito alternativa.

La cifratura in transito che utilizza oci-fss-utils o stunnel non richiede aggiornamenti alla destinazione di accesso o alla configurazione di esportazione del file system, ma i passi sono diversi per gli utenti Linux e gli utenti Windows.

Prerequisiti

Aggiungere le regole necessarie alla lista di sicurezza per la subnet della destinazione di accesso. In alternativa, è possibile aggiungere le regole riportate di seguito a un gruppo di sicurezza di rete (NSG), quindi aggiungere la destinazione di accesso al gruppo NSG. Per ulteriori informazioni e istruzioni sull'aggiunta di regole della lista di sicurezza per lo storage di file, vedere Configurazione delle regole di sicurezza VCN per lo storage di file, in particolare Scenario C: la destinazione di accesso e l'istanza utilizzano la cifratura in transito TLS.

Importante

Per l'accesso cifrato sono necessarie solo le regole per la porta TCP 2051.

Codifica in transito per utenti Linux

Per abilitare la cifratura in transito, installare un pacchetto denominato oci-fss-utils sull'istanza. Lo strumento oci-fss-utils è disponibile per i seguenti tipi di istanza:

  • Oracle Linux, CentOS 7 x86
  • Oracle Linux, CentOS 8 x86
  • Oracle Linux, CentOS 9 x86
  • Oracle Linux, CentOS 7 Arm*
  • Oracle Linux, CentOS 8 Arm*
  • Oracle Linux, CentOS 9 Arm*

*Oracle offre una piattaforma di computazione basata su Arm basata sul processore Ampere Altra. Per ulteriori informazioni, vedere Computazione basata su Arm.

Modalità di abilitazione della cifratura in transito

Il pacchetto oci-fss-utils crea uno spazio di nomi di rete e un'interfaccia di rete virtuale nell'istanza e fornisce un endpoint NFS locale. Il package oci-fss-utils esegue anche un processo di inoltro in background denominato oci-fss-forwarder.

Lo spazio di nomi di rete isola il processo di inoltro dall'ambiente di rete dell'istanza. L'interfaccia di rete virtuale fornisce al processo di inoltro un indirizzo IP univoco. L'endpoint NFS locale fornisce capacità di connessione NFS.

Il file system viene attivato con un comando speciale che avvia la cifratura. Dopo l'attivazione del file system, il processo oci-fss-forwarder collega il client NFS locale all'endpoint NFS. Il processo riceve quindi le richieste dal client NFS, le cifra e le invia alla destinazione di accesso utilizzando un tunnel TLS.

Di seguito sono riportati i passi generali per l'impostazione della cifratura in transito.

  1. Assicurarsi di soddisfare i prerequisiti prima di impostare la cifratura in transito.
  2. Installare il pacchetto oci-fss-utils.

    1. Se utilizzi Oracle Linux, vedere 1. Installare il pacchetto OCI-FSS-UTILS.
    2. Se si utilizza CentOS, vedere Installazione manuale e offline.
  3. Utilizzare il comando di cifratura in transito per installare il file system. Per istruzioni, vedere 2. Attivare il file system con il comando di cifratura.

Limitazioni e considerazioni

  • Il pacchetto di installazione della cifratura in transito viene distribuito come RPM per Oracle Linux e CentOS. Gli utenti Oracle Linux possono installare il pacchetto utilizzando yum. Può anche essere scaricato dal repository yum di Oracle Linux.
  • È necessario installare il pacchetto oci-fss-utils su ogni istanza che richiede l'accesso cifrato a una destinazione di accesso.
  • Il numero di connessioni NFS/TLS cifrate per una singola destinazione di accesso è limitato a 4096.
  • I nomi host DNS non sono supportati per l'attivazione dei file system cifrati con oci-fss-forwarder. Utilizzare l'indirizzo IP della destinazione di accesso per eseguire il MOUNT dei file system cifrati.
Importante

Se non si sta utilizzando la versione più recente del pacchetto oci-fss-utils, potrebbero verificarsi errori di connessione SSL. Gli errori di connessione SSL possono causare l'errore delle operazioni NFSv3.

Si consiglia di eseguire sempre l'aggiornamento alla versione più recente del pacchetto oci-fss-utils non appena disponibile. Per informazioni sulle nuove release di RPM, vedere Note di rilascio dello storage di file.

Impostazione della cifratura in transito per Linux

1. Installare il package OCI-FSS-UTILS

Gli utenti Oracle Linux possono installare direttamente la utility TLS dal repository yum di Oracle Linux.

  1. Aprire una finestra di terminale sull'istanza di destinazione.
  2. Assicurarsi che il repository yum per sviluppatori Oracle sia abilitato per la versione di Oracle Linux utilizzando il seguente comando:

    sudo yum-config-manager --enable ol<oracle_linux_major_version>_developer

    Installare il pacchetto utilizzando il comando seguente:

    sudo yum install oci-fss-utils

Il pacchetto crea uno spazio di nomi denominato ns1 nell'istanza, che contiene un'interfaccia di rete predefinita per il traffico Ethernet. Viene creata una coppia di interfaccia di rete per ogni destinazione di accesso.

Al termine dell'installazione del pacchetto, passare a 2. Attivare il file system con il comando di cifratura.

Installazione manuale e offline

Per scaricare il pacchetto di installazione RPM è necessario l'accesso a Internet. Se l'istanza di destinazione non dispone dell'accesso a Internet, è possibile scaricare l'RPM in un'istanza di staging nella rete e quindi utilizzare il comando scp per copiare in modo sicuro l'RPM dall'istanza di staging all'istanza di destinazione.

Il comando scp richiede una coppia di chiavi SSH per autenticare un utente remoto. Se le istanze sono sistemi di tipo UNIX, è probabile che sia già installata la utility ssh-keygen. Per verificare se è installato, aprire una shell o un terminale e digitare ssh-keygen nella riga di comando. Se non è installato, è possibile ottenere OpenSSH per UNIX da http://www.openssh.com/portable.html.

  1. (Facoltativo) Creare una directory per il package di installazione RPM nell'istanza di destinazione. Ad esempio: 

    sudo mkdir -p /<rpm_directory_name>
  2. Scaricare il package oci-fss-utils più recente dal repository yum Oracle Linux nella directory dell'istanza di destinazione o in un'istanza di staging della rete.

    1. Nella pagina Repository yum di Oracle Linux, in Sfoglia i repository, selezionare una versione di Oracle Linux.
    2. In Pacchetti per test e sviluppo, trovare Pacchetti sviluppatore, quindi selezionare il tipo di architettura Linux, ad esempio x86_64 o aarch64.
    3. Trovare e selezionare la versione più recente del pacchetto oci-fss-utils. Per maggiori informazioni sull'ultima versione, vedere File Storage Release Notes.

  3. Se il package è stato scaricato in un'istanza di staging, aprire una finestra del terminale nell'istanza di staging e utilizzare il comando scp per copiare in modo sicuro l'RPM dall'istanza di staging all'istanza di destinazione. Ad esempio:

    scp -i <private_key> <downloaded_file_name> <username>@<destination_public_ip_address>:/<rpm_directory_name>

    Saltare questo passo se il package è stato scaricato direttamente nell'istanza di destinazione.

  4. Se il nome file del pacchetto scaricato non include la versione e l'architettura del pacchetto, utilizzare il seguente comando per identificare il file RPM da installare:

    rpm -qp <downloaded_file_name>

    Dopo l'identificazione del package, rinominare il file utilizzando l'RPM restituito dalla query. Ad esempio:

    mv <downloaded_file_name> $(rpm -qp <downloaded_file_name>).rpm
  5. Installare il pacchetto utilizzando il comando seguente:

    sudo yum localinstall oci-fss-utils-<version>.rpm

Il pacchetto crea un namespace chiamato ns1 nell'istanza, che contiene un'interfaccia di rete predefinita per il traffico Ethernet. Viene creata una coppia di interfaccia di rete per ogni destinazione di accesso.

Al termine dell'installazione del pacchetto, passare a 2. Attivare il file system con il comando di cifratura.

2. Attivare il file system con il comando di cifratura
  1. Aprire una finestra di terminale nell'istanza.
  2. Creare un punto di attivazione digitando il seguente comando, sostituendo yourmountpoint con la directory locale da cui si desidera accedere al file system.

    sudo mkdir -p /mnt/yourmountpoint
  3. Attivare il file system utilizzando il seguente comando:

    sudo mount -t oci-fss 10.x.x.x:/fs-export-path /mnt/yourmountpoint

    Sostituire 10.x.x.x: con l'indirizzo IP della subnet locale assegnato alla destinazione di accesso, fs-export-path con il percorso di esportazione specificato durante l'associazione del file system alla destinazione di accesso e yourmountpoint con il percorso al punto di accesso locale. Il percorso di esportazione è il percorso del file system (relativo all'indirizzo IP della destinazione di accesso).

    Se è stata installata la versione oci-fss-utils 2.0-1 o successiva, è possibile attivare il file system in modalità approvata da FIPS includendo -o fips nel comando di attivazione. Ad esempio:
    sudo mount -t oci-fss -o fips 10.x.x.x:/fs-export-path /mnt/yourmountpoint
    Importante

    I nomi host DNS non sono supportati per l'attivazione dei file system con il comando mount -t oci-fss. È necessario utilizzare l'indirizzo IP della destinazione di accesso.

    Ogni volta che si attiva un file system utilizzando questo comando, il servizio systemd-managed crea un nuovo servizio oci-fss-forwarder con un nome quale oci-fss-0<number>.service.

    Suggerimento

    Per impostazione predefinita, il client NFS dello strumento utilizza porte riservate durante l'attivazione. Per utilizzare le porte senza privilegi, utilizzare l'opzione di attivazione noresvport.

Gestione della cifratura in transito per Linux

Installazione automatica di un file system

L'installazione automatica garantisce che un file system venga riattivato automaticamente su un'istanza se viene riavviato.

  1. Aprire una finestra di terminale sull'istanza. Attivare il file system come descritto in 2. Attivare il file system con il comando di cifratura.
  2. Aprire il file /etc/fstab per la modifica: 

    cd /etc
    vi fstab
  3. Aggiungere la riga seguente al file fstab:

    10.x.x.x:/fs-export-path /mnt/yourmountpoint oci-fss x-systemd.requires=oci-fss-init.service,defaults,nofail 0 0

    Sostituire 10.x.x.x: con l'indirizzo IP della subnet locale assegnato alla destinazione di accesso, fs-export-path con il percorso di esportazione specificato durante l'associazione del file system alla destinazione di accesso e yourmountpoint con il percorso al punto di accesso locale.

    Se è stata installata la versione oci-fss-utils 2.0-1 o successive, è possibile attivare il file system in modalità approvata da FIPS includendo -o fips nel comando di attivazione. Ad esempio:
    10.x.x.x:/fs-export-path /mnt/yourmountpoint oci-fss x-systemd.requires=oci-fss-init.service,defaults,nofail,fips 0 0
    Importante

    I nomi host DNS non sono attualmente supportati per l'attivazione dei file system con il comando mount -t oci-fss. È necessario utilizzare l'indirizzo IP della destinazione di accesso.
    Suggerimento

    L'opzione resvport consente di limitare l'utilizzo da parte del client di una specifica porta riservata. Ad esempio:

    10.x.x.x:/fs-export-path /mnt/yourmountpoint oci-fss x-systemd.requires=oci-fss-init.service,defaults,nofail,resvport=900 0 0
Disattivare con mount un file system

Quando si disattiva un file system, è necessario utilizzare un altro comando oci-fss-utils per rimuovere lo spazio di nomi della rete locale associato:

  1. Aprire una finestra di terminale sull'istanza.
  2. Usare il comando seguente per disattivare il file system:

    sudo umount -t oci-fss /mnt/yourmountpoint

    Sostituire yourmountpoint con il percorso del punto di attivazione locale.

Eseguire l'upgrade del pacchetto OCI-FSS-UTILS

Se si sta utilizzando una versione non più valida della utility oci-fss-utils, ad esempio oci-fss-utils-3.x, o si desidera usufruire delle nuove funzioni, è possibile eseguire l'upgrade a una versione più recente. È possibile trovare informazioni sulla versione nelle Note di rilascio dello storage di file.

Quando si aggiorna oci-fss-utils a una nuova versione, le nuove impostazioni, ad esempio un nuovo indirizzo IP o il nome del processo di inoltro TLS, verranno applicate solo dopo il riattivazione del file system.

Nota

Il riattivazione è necessaria se si sta aggiornando la utility oci-fss-utils in modo che il client TLS possa utilizzare un indirizzo IPv6. Le applicazioni che utilizzano il file system attivato subiranno tempi di inattività durante il riattivazione del file system.
  1. Aprire una finestra di terminale sull'istanza di destinazione.
  2. Aggiornare il pacchetto.

    1. Gli utenti Oracle Linux possono eseguire l'upgrade di oci-fss-utils dal repository yum di Oracle Linux. Assicurarsi che il repository yum per sviluppatori Oracle sia abilitato per la versione di Oracle Linux utilizzando il seguente comando:

      sudo yum-config-manager --enable ol<oracle_linux_major_version>_developer

      Aggiornare quindi il pacchetto con il comando seguente:

      sudo yum update -y oci-fss-utils
    2. Se non si utilizza Oracle Linux, scaricare il pacchetto oci-fss-utils più recente dal repository yum di Oracle Linux. Per istruzioni, vedere Installazione manuale e offline. Aggiornare quindi il pacchetto con il comando seguente:

      sudo yum localinstall -y oci-fss-utils-<version>.rpm
  3. Dopo l'aggiornamento, verificare la versione di oci-fss-utils utilizzando il comando seguente:

    sudo rpm -qa | grep oci-fss-utils
  4. Disattivare il file system e riattivare il file system in modo da rendere effettive le nuove impostazioni.
Per disinstallare il package OCI-FSS-UTILS
  1. In primo luogo, disattivare tutti i file system attivati. Per le relative istruzioni, vedere Unmount a file system.
  2. Aprire una finestra di terminale sull'istanza.
  3. Digitare il comando seguente per disinstallare il pacchetto oci-fss:

    sudo yum remove oci-fss-utils

Codifica in transito per utenti Windows

I client Windows possono utilizzare stunnel per abilitare la cifratura in transito nei file system.

Limitazioni e considerazioni

  • Il numero di connessioni NFS/TLS cifrate per una singola destinazione di accesso è limitato a 64. Questa limitazione è causata dai requisiti di memoria TLS. A differenza delle connessioni NFS, le connessioni TLS non condividono i buffer di memoria. Quindi, una volta stabilita una connessione TLS, la memoria allocata rimane dedicata ad essa.
  • I nomi host DNS non sono supportati per l'attivazione dei file system cifrati. Utilizzare l'indirizzo IP della destinazione di accesso per eseguire il MOUNT dei file system cifrati.

Impostazione della cifratura in transito per Windows

Queste istruzioni descrivono come installare e configurare stunnel per l'uso della cifratura in transito con i file system. Assicurarsi di soddisfare i prerequisiti prima di impostare la cifratura in transito.

Suggerimento

È possibile automatizzare questo processo utilizzando uno script batch contenente i passi riportati di seguito.

Task di impostazione

Task 1: Installare il client NFS di Windows
  1. Aprire Windows PowerShell nell'istanza di destinazione e utilizzare il seguente comando per installare il client NFS Windows:

    Install-WindowsFeature NFS-Client

    Dopo l'installazione del client, andare al Task 2: download e installazione di stunnel.

Task 2: Scarica e installa stunnel
  1. Scaricare e installare stunnel da https://www.stunnel.org/downloads.html.

    Nota

    L'ultima fase di installazione richiede informazioni sul certificato. L'immissione di un valore è facoltativa.

    Per impostazione predefinita, stunnel viene installato nella directory seguente: C:\Program Files (x86)\stunnel

  2. Aprire il file C:\Program Files (x86)\stunnel\config\stunnel.cfg per la modifica e specificare la configurazione seguente:

    [mount]
        client=yes
        accept=127.0.0.1:2048
        connect=10.0.1.155:2051
     
    [nfs]
        client=yes
        accept=127.0.0.1:2049
        connect=10.0.1.155:2051
     
    [nlm]
        client=yes
        accept=127.0.0.1:2050
        connect=10.0.1.155:2051
     
    [rpcbind]
        client=yes
        accept=127.0.0.1:111
        connect=10.0.1.155:2051
  3. Avviare stunnel utilizzando C:\Program Files (x86)\stunnel\bin\tstunnel.exe.

    Passare al Task 3: MOUNT e test della connessione.

Task 3: Montare e testare la connessione

Aprire un prompt dei comandi e digitare la serie di comandi seguente:

  1. Esegui il MOUNT del file system:

    mount \\127.0.0.1\fss z:
  2. Eseguire il test della connessione al file system elencando i contenuti della directory:

    dir z:
  3. Unmount del file system:

    umount z: