Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come crittografare i dati in transito per le condivisioni file di Azure NFS. I volumi NFS v4.1 di File di Azure migliorano la sicurezza di rete abilitando connessioni TLS sicure, proteggendo i dati in transito dall'intercettazione, inclusi gli attacchi MITM.
Overview
Usando Stunnel, un wrapper TLS open source, File di Azure crittografa il flusso TCP tra il client NFS e File di Azure con crittografia avanzata usando AES-GCM, senza bisogno di Kerberos. Ciò garantisce la riservatezza dei dati eliminando la necessità di configurazioni complesse o sistemi di autenticazione esterni come Active Directory.
Il pacchetto di utilità AZNFS semplifica i montaggi crittografati installando e configurando Stunnel nel client. Disponibile in packages.microsoft.com, AZNFS crea un endpoint sicuro locale che inoltra in modo trasparente le richieste del client NFS tramite una connessione crittografata. I componenti principali dell'architettura includono:
Helper di montaggio AZNFS: pacchetto di utilità client che astrae la complessità di stabilire tunnel sicuri per il traffico NFSv4.1.
Processo Stunnel: processo client per account di archiviazione in ascolto del traffico client NFS su una porta locale e lo inoltra in modo sicuro tramite TLS al server NFS di File di Azure.
Watchdog AZNFS: il pacchetto AZNFS esegue un processo in background che garantisce l'esecuzione dei processi di stunnel, riavvia automaticamente i tunnel terminati e pulisce i processi inutilizzati dopo che tutti i montaggi NFS associati vengono smontati.
Important
Le distribuzioni Linux supportate da AZNFS sono:
- Ubuntu (18.04 LTS, 20.04 LTS, 22.04 LTS, 24.04 LTS)
- Centos7, Centos8
- RedHat7, RedHat8, RedHat9
- Rocky8, Rocky9
- SUSE (SLES 15)
- Oracle Linux
- Alma Linux
Regioni supportate
EiT per NFS è ora disponibile a livello generale in tutte le aree che supportano condivisioni file di Azure SSD.
Applicare la crittografia durante il transito
Abilitando l'impostazione Trasferimento sicuro richiesto nell'account di archiviazione, è possibile assicurarsi che tutti i montaggi nei volumi NFS nell'account di archiviazione siano crittografati. EiT può essere abilitato sia per gli account di archiviazione nuovi che per le condivisioni file di Azure NFS. Non sono previsti costi aggiuntivi per l'abilitazione di EiT.
Tuttavia, per gli utenti che preferiscono mantenere la flessibilità tra le connessioni TLS e non TLS nello stesso account di archiviazione, l'impostazione Trasferimento sicuro deve rimanere DISATTIVATa.
Crittografare i dati in transito per le condivisioni NFS
È possibile crittografare i dati in transito per le condivisioni file di Azure NFS usando il portale di Azure o l'interfaccia della riga di comando di Azure.
Crittografare i dati in transito per le condivisioni NFS usando il portale di Azure
Il portale di Azure offre uno script di installazione pronto all'uso dettagliato personalizzato per la distribuzione linux selezionata per l'installazione del pacchetto helper di montaggio AZNFS. Dopo l'installazione, è possibile usare lo script di montaggio AZNFS fornito per montare in modo sicuro la condivisione NFS, stabilendo un canale di trasmissione crittografato tra il client e il server.
Gli utenti che preferiscono mantenere la flessibilità di avere connessioni TLS e non TLS nello stesso account di archiviazione devono assicurarsi che l'impostazione Trasferimento sicuro richiesto rimanga disabilitata.
Crittografare i dati in transito per le condivisioni NFS tramite l'interfaccia della riga di comando di Azure
Seguire questa procedura per crittografare i dati in transito:
- Verificare che nel client sia installato il pacchetto helper di montaggio AZNFS necessario.
- Montare la condivisione file NFS con la crittografia TLS.
- Verificare che la crittografia dei dati sia riuscita.
Passaggio 1: Controllare l'installazione del pacchetto helper di montaggio AZNFS
Per verificare se il pacchetto helper di montaggio AZNFS è installato nel client, eseguire il comando seguente:
systemctl is-active --quiet aznfswatchdog && echo -e "\nAZNFS mounthelper is installed! \n"
Se il pacchetto è installato, verrà visualizzato il messaggio AZNFS mounthelper is installed!
. Se non è installato, è necessario usare il comando appropriato per installare il pacchetto helper di montaggio AZNFS nel client.
- Ubuntu/Debian
- RHEL/CentOS
- SUSE
- Alma Linux
- Oracle Linux
curl -sSL -O https://packages.microsoft.com/config/$(source /etc/os-release && echo "$ID/$VERSION_ID")/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install aznfs
Passaggio 2: Montare la condivisione file NFS
Per montare la condivisione file NFS con la crittografia TLS:
- Creare una directory sul client.
sudo mkdir -p /mount/<storage-account-name>/<share-name>
- Montare la condivisione NFS usando il cmdlet seguente. Sostituire
<storage-account-name>
con il nome dell'account di archiviazione e sostituire<share-name>
con il nome della condivisione file.
sudo mount -t aznfs <storage-account-name>.file.core.windows.net:/<storage-account-name>/<share-name> /mount/<storage-account-name>/<share-name> -o vers=4,minorversion=1,sec=sys,nconnect=4
Per montare la condivisione NFS senza crittografia TLS:
sudo mount -t aznfs <storage-account-name>.file.core.windows.net:/<storage-account-name>/<share-name> /mount/<storage-account-name>/<share-name> -o vers=4,minorversion=1,sec=sys,nconnect=4,notls
Per fare in modo che la condivisione venga montata automaticamente al riavvio, creare una voce nel /etc/fstab
file aggiungendo la riga seguente:
<storage-account-name>.file.core.windows.net:/<storage-account-name>/<container-name> /nfsdata aznfs defaults,sec=sys,vers=4.1,nolock,proto=tcp,nofail,_netdev 0 2
Note
Prima di eseguire il comando di montaggio, assicurarsi che sia impostata la variabile di ambiente AZURE_ENDPOINT_OVERRIDE. Questa operazione è necessaria quando si montano condivisioni file in aree cloud di Azure non pubbliche o quando si usano configurazioni DNS personalizzate.
Ad esempio, per Azure China Cloud: export AZURE_ENDPOINT_OVERRIDE="chinacloudapi.cn"
Passaggio 3: Verificare che la crittografia dei dati in transito sia riuscita
Eseguire il comando df -Th
.
Indica che il client è connesso tramite la porta locale 127.0.0.1, non una rete esterna. Il processo stunnel è in ascolto su 127.0.0.1 (localhost) per il traffico NFS in ingresso dal client NFS. Stunnel intercetta quindi questo traffico e lo inoltra in modo sicuro tramite TLS al server NFS di File di Azure in Azure.
Per verificare se il traffico verso il server NFS è crittografato, usare il tcpdump
comando per acquisire pacchetti sulla porta 2049.
sudo tcpdump -i any port 2049 -w nfs_traffic.pcap
Quando si apre l'acquisizione in Wireshark, il payload verrà visualizzato come "Dati applicazione" anziché come testo leggibile.
Note
Tutto il traffico da una macchina virtuale allo stesso endpoint server usa una singola connessione. L'helper di montaggio AZNFS garantisce che non sia possibile combinare configurazioni TLS e non TLS durante il montaggio di condivisioni in tale server. Questa regola si applica alle condivisioni dello stesso account di archiviazione e a account di archiviazione diversi che si risolvono nello stesso indirizzo IP.
Troubleshooting
Un'operazione di montaggio non TLS (notls) potrebbe non riuscire se un precedente montaggio crittografato TLS sullo stesso server è stato terminato prima di completare correttamente. Anche se il servizio aznfswatchdog pulisce automaticamente le voci non aggiornate dopo un timeout, il tentativo di un nuovo montaggio non TLS prima del completamento della pulizia può non riuscire.
Per risolvere questo problema, rimontare la condivisione usando l'opzione pulita, che cancella immediatamente eventuali voci non aggiornate:
sudo mount -t aznfs <storage-account-name>.file.core.windows.net:/<storage-account-name>/<share-name> /mount/<storage-account-name>/<share-name> -o vers=4,minorversion=1,sec=sys,nconnect=4,notls,clean
Se una macchina virtuale è aggiunta a un dominio personalizzato, usare FQDN DNS personalizzato o nomi brevi per la condivisione file in /etc/fstab
come definito nel DNS. Per verificare la risoluzione del nome host, controllare l'uso dei comandi nslookup <hostname>
e getent host <hostname>
. Prima di eseguire il comando mount, verificare che la variabile di ambiente sia impostata AZURE_ENDPOINT_OVERRIDE
.
Se i problemi di montaggio continuano, controllare i file di log per altri dettagli sulla risoluzione dei problemi:
-
Montare i log helper e Watchdog:
/opt/microsoft/aznfs/data/aznfs.log
-
Log di Stunnel:
/etc/stunnel/microsoft/aznfs/nfsv4_fileShare/logs