Delen via


Versleuteling tijdens overdracht voor NFS Azure-bestandsdeling

In dit artikel wordt uitgelegd hoe u gegevens tijdens overdracht kunt versleutelen voor NFS Azure-bestandsshares. Azure Files NFS v4.1-volumes verbeteren de netwerkbeveiliging door beveiligde TLS-verbindingen in te schakelen, gegevens in transit te beveiligen tegen onderschepping, waaronder MITM-aanvallen.

Overview

Met behulp van Stunnel, een opensource TLS-wrapper, versleutelt Azure Files de TCP-stream tussen de NFS-client en Azure Files met sterke versleuteling met behulp van AES-GCM, zonder Dat Kerberos nodig is. Dit zorgt voor vertrouwelijkheid van gegevens terwijl complexe instellingen of externe verificatiesystemen, zoals Active Directory, niet meer nodig zijn.

Het AZNFS-hulpprogrammapakket vereenvoudigt versleutelde koppelingen door Stunnel op de client te installeren en in te stellen. AzNFS is beschikbaar op packages.microsoft.com en maakt een lokaal beveiligd eindpunt dat NFS-clientaanvragen transparant doorstuurt via een versleutelde verbinding. De belangrijkste architectuuronderdelen zijn:

  • AZNFS Mount Helper: een clienthulpprogrammapakket dat de complexiteit van het tot stand brengen van beveiligde tunnels voor NFSv4.1-verkeer abstraheert.

  • Stunnel-proces: clientproces per opslagaccount dat luistert naar NFS-clientverkeer op een lokale poort en het veilig doorstuurt via TLS naar de Azure Files NFS-server.

  • AZNFS-watchdog: Het AZNFS-pakket voert een achtergrondtaak uit die ervoor zorgt dat stunnel-processen worden uitgevoerd, beëindigde tunnels automatisch opnieuw worden opgestart en ongebruikte processen worden opgeruimd nadat alle bijbehorende NFS-koppels zijn ontkoppeld.

Important

Ondersteunde Linux-distributies van AZNFS zijn:

  • 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
  • Azure Linux

Ondersteunde regio's

EiT voor NFS is nu algemeen beschikbaar (GA) in alle regio's die ONDERSTEUNING bieden voor SSD Azure-bestandsshares.

Versleuteling in transit afdwingen

Door de instelling Veilige overdracht in te schakelen die vereist is voor het opslagaccount, kunt u ervoor zorgen dat alle koppelingen naar de NFS-volumes in het opslagaccount zijn versleuteld. EiT kan worden ingeschakeld voor zowel nieuwe als bestaande opslagaccounts en NFS Azure-bestandsshares. Er zijn geen extra kosten verbonden aan het inschakelen van EiT.

Schermopname van het inschakelen van Beveiligde overdracht in een opslagaccount.

Voor gebruikers die liever flexibiliteit behouden tussen TLS- en niet-TLS-verbindingen in hetzelfde opslagaccount, moet de instelling voor veilige overdracht echter UITGESCHAKELD blijven.

Versleutel gegevens tijdens verzending voor NFS-shares

U kunt gegevens die onderweg zijn, versleutelen voor NFS Azure-bestandsshares met behulp van Azure Portal of Azure CLI.

Gegevens tijdens de overdracht voor NFS-shares versleutelen via het Azure Portal

Azure Portal biedt een stapsgewijs, kant-en-klaar installatiescript dat is afgestemd op uw geselecteerde Linux-distributie voor het installeren van het AZNFS-koppelingshulppakket. Zodra de installatie is voltooid, kunt u het meegeleverde AZNFS-koppelscript gebruiken om de NFS-share veilig te koppelen, waarbij een versleuteld overdrachtskanaal tussen de client en de server tot stand wordt gebracht.

Schermopname van de koppelingsinstructies voor AZNFS in Azure Portal.

Gebruikers die liever flexibiliteit behouden bij het gebruik van TLS- en niet-TLS-verbindingen in hetzelfde opslagaccount, moeten ervoor zorgen dat de vereiste instelling voor veilige overdracht uitgeschakeld blijft.

Gegevens tijdens overdracht versleutelen voor NFS-shares met behulp van Azure CLI

Volg deze stappen om gegevens in transit te versleutelen:

  1. Zorg ervoor dat het vereiste AZNFS-koppelingshulppakket op de client is geïnstalleerd.
  2. Koppel de NFS-bestandsshare met TLS-versleuteling.
  3. Controleer of de versleuteling van gegevens is geslaagd.

Stap 1: De installatie van het AZNFS mount-hulppakket controleren

Voer de volgende opdracht uit om te controleren of het AZNFS-koppelingshulppakket is geïnstalleerd op uw client:

systemctl is-active --quiet aznfswatchdog && echo -e "\nAZNFS mounthelper is installed! \n"

Als het pakket is geïnstalleerd, ziet u het bericht AZNFS mounthelper is installed!. Als deze niet is geïnstalleerd, moet u de juiste opdracht gebruiken om het AZNFS-koppelingshulppakket op uw client te installeren.

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

Stap 2: de NFS-bestandsshare koppelen

De NFS-bestandsshare koppelen met TLS-versleuteling:

  1. Maak een map op uw clientapparaat.
sudo mkdir -p /mount/<storage-account-name>/<share-name>
  1. Monteer de NFS-share met behulp van de volgende cmdlet. Vervang <storage-account-name> door de naam van uw opslagaccount en vervang deze door <share-name> de naam van uw bestandsshare.
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

De NFS-share koppelen zonder TLS-versleuteling:

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

Als u de share automatisch wilt laten koppelen bij het opnieuw opstarten, maakt u een vermelding in het /etc/fstab bestand door de volgende regel toe te voegen:

<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

Voordat u de koppelingsopdracht uitvoert, moet u ervoor zorgen dat de omgevingsvariabele AZURE_ENDPOINT_OVERRIDE is ingesteld. Dit is vereist bij het koppelen van bestandsshares in niet-openbare Azure-cloudregio's of bij het gebruik van aangepaste DNS-configuraties. Bijvoorbeeld voor Azure China Cloud: export AZURE_ENDPOINT_OVERRIDE="chinacloudapi.cn"

Stap 3: Controleren of de in-transitgegevensversleuteling is geslaagd

Voer de opdracht df -Thuit.

Diagram met het PowerShell-scherm om te testen of EiT is toegepast.

Hiermee wordt aangegeven dat de client is verbonden via de lokale poort 127.0.0.1, niet via een extern netwerk. Het stunnelproces luistert op 127.0.0.1 (localhost) voor binnenkomend NFS-verkeer van de NFS-client. Stunnel onderschept dit verkeer en stuurt het veilig door naar de Azure Files NFS-server in Azure.

Als u wilt controleren of verkeer naar de NFS-server is versleuteld, gebruikt u de tcpdump opdracht om pakketten vast te leggen op poort 2049.

sudo tcpdump -i any port 2049 -w nfs_traffic.pcap

Wanneer u de opname opent in Wireshark, wordt de nettolading weergegeven als 'Toepassingsgegevens' in plaats van leesbare tekst.

Diagram met het Wireshark-scherm om te testen of EiT is toegepast.

Note

Al het verkeer van een virtuele machine naar hetzelfde servereindpunt maakt gebruik van één verbinding. De AZNFS-koppelingshulp zorgt ervoor dat u TLS- en niet-TLS-configuraties niet kunt combineren bij het koppelen van shares aan die server. Deze regel is van toepassing op shares van hetzelfde opslagaccount en verschillende opslagaccounts die worden omgezet in hetzelfde IP-adres.

Troubleshooting

Een niet-TLS-koppelingsbewerking (notls) kan mislukken als een eerdere TLS-versleutelde koppeling naar dezelfde server is beëindigd voordat deze is voltooid. Hoewel de aznfswatchdog-service na een time-out verouderde vermeldingen automatisch opschoont, kan een nieuwe niet-TLS-koppeling worden uitgevoerd voordat het opschonen is voltooid.

U kunt dit probleem oplossen door de share opnieuw te mounten met behulp van de clean optie, waarmee alle verouderde entries onmiddellijk worden gewist.

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

Als een virtuele machine verbonden is met een aangepast domein, gebruikt u aangepaste FQDN of korte namen voor bestandsdeling /etc/fstab, zoals gedefinieerd in de DNS. Als u de oplossing van de hostnaam wilt controleren, controleert u door gebruik te maken van nslookup <hostname> en getent host <hostname> opdrachten. Voordat u de koppelingsopdracht uitvoert, moet u ervoor zorgen dat de omgevingsvariabele AZURE_ENDPOINT_OVERRIDE is ingesteld.

Als de koppelingsproblemen doorgaan, controleert u de logboekbestanden voor meer informatie over het oplossen van problemen:

  • Logboeken van Mount Helper en Watchdog: /opt/microsoft/aznfs/data/aznfs.log
  • Stunnel-logboeken: /etc/stunnel/microsoft/aznfs/nfsv4_fileShare/logs

Zie ook