Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment chiffrer les données en transit pour les partages de fichiers Azure NFS. Les volumes NFS NFS v4.1 Azure Files améliorent la sécurité réseau en activant des connexions TLS sécurisées, protégeant les données en transit contre l’interception, y compris les attaques MITM.
Overview
À l’aide de Stunnel, un wrapper TLS open source, Azure Files chiffre le flux TCP entre le client NFS et Azure Files avec un chiffrement fort à l’aide d’AES-GCM, sans avoir besoin de Kerberos. Cela garantit la confidentialité des données tout en éliminant la nécessité de configurations complexes ou de systèmes d’authentification externes comme Active Directory.
Le package utilitaire AZNFS simplifie les montages chiffrés en installant et en configurant Stunnel sur le client. Disponible sur packages.microsoft.com, AZNFS crée un point de terminaison sécurisé local qui transfère en toute transparence les demandes du client NFS sur une connexion chiffrée. Les principaux composants architecturaux sont les suivants :
AZNFS Mount Helper : package d’utilitaire client qui extrait la complexité de l’établissement de tunnels sécurisés pour le trafic NFSv4.1.
Processus Stunnel : processus client par compte de stockage qui écoute le trafic du client NFS sur un port local et le transfère en toute sécurité sur le serveur NFS Azure Files.
Surveillance AZNFS : le package AZNFS exécute un travail en arrière-plan qui garantit que les processus stunnel sont en cours d’exécution, redémarre automatiquement les tunnels arrêtés et nettoie les processus inutilisés une fois que tous les montages NFS associés sont démontés.
Important
Les distributions Linux prises en charge par AZNFS sont les suivantes :
- 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
- Linux Azure
Régions prises en charge
EiT pour NFS est désormais en disponibilité générale (GA) dans toutes les régions qui prennent en charge les partages de fichiers Azure SSD.
Appliquer le chiffrement en transit
En activant le paramètre de transfert sécurisé requis sur le compte de stockage, vous pouvez vous assurer que tous les montages sur les volumes NFS du compte de stockage sont chiffrés. EiT peut être activé sur les comptes de stockage nouveaux et existants et sur les partages de fichiers Azure NFS. Il n’y a aucun coût supplémentaire pour l’activation d’EiT.
Toutefois, pour les utilisateurs qui préfèrent maintenir la flexibilité entre les connexions TLS et non TLS sur le même compte de stockage, le paramètre de transfert sécurisé doit rester désactivé.
Chiffrer les données en transit pour les partages NFS
Vous pouvez chiffrer les données en transit pour les partages de fichiers NFS Azure à l’aide du portail Azure ou d’Azure CLI.
Chiffrer les données en transit pour les partages NFS à l’aide du portail Azure
Le portail Azure propose un script d’installation prêt à l’emploi pas à pas adapté à votre distribution Linux sélectionnée pour installer le package d’assistance de montage AZNFS. Une fois installé, vous pouvez utiliser le script de montage AZNFS fourni pour monter en toute sécurité le partage NFS, en établissant un canal de transmission chiffré entre le client et le serveur.
Les utilisateurs qui préfèrent maintenir la flexibilité d’avoir des connexions TLS et non TLS sur le même compte de stockage doivent s’assurer que le paramètre de transfert sécurisé requis reste désactivé.
Chiffrer les données en transit pour les partages NFS à l’aide d’Azure CLI
Procédez comme suit pour chiffrer les données en transit :
- Vérifiez que le package d’assistance de montage AZNFS requis est installé sur le client.
- Montez le partage de fichiers NFS avec le chiffrement TLS.
- Vérifiez que le chiffrement des données a réussi.
Étape 1 : Vérifier l’installation du package d’assistance de montage AZNFS
Pour vérifier si le package d’assistance de montage AZNFS est installé sur votre client, exécutez la commande suivante :
systemctl is-active --quiet aznfswatchdog && echo -e "\nAZNFS mounthelper is installed! \n"
Si le package est installé, le message AZNFS mounthelper is installed!s’affiche. S’il n’est pas installé, vous devez utiliser la commande appropriée pour installer le package d’assistance de montage AZNFS sur votre client.
- Ubuntu/Debian
- RHEL/CentOS
- SUSE
- Alma Linux
- Oracle Linux
- Azure 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
Étape 2 : Monter le partage de fichiers NFS
Pour monter le partage de fichiers NFS avec le chiffrement TLS :
- Créez un répertoire sur votre client.
sudo mkdir -p /mount/<storage-account-name>/<share-name>
- Montez le partage NFS à l’aide de la cmdlet suivante. Remplacez par le nom de votre compte de stockage et remplacez
<storage-account-name><share-name>par le nom de votre partage de fichiers.
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
Pour monter le partage NFS sans chiffrement 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
Pour que le partage soit monté automatiquement lors du redémarrage, créez une entrée dans le /etc/fstab fichier en ajoutant la ligne suivante :
<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
Avant d’exécuter la commande de montage, vérifiez que la variable d’environnement AZURE_ENDPOINT_OVERRIDE est définie. Cela est nécessaire lors du montage de partages de fichiers dans des régions cloud Azure non publiques ou lors de l’utilisation de configurations DNS personnalisées.
Par exemple, pour Azure China Cloud : export AZURE_ENDPOINT_OVERRIDE="chinacloudapi.cn"
Étape 3 : Vérifier que le chiffrement des données en transit a réussi
Exécutez la commande df -Th.
Il indique que le client est connecté via le port local 127.0.0.1, et non par le biais d’un réseau externe. Le processus stunnel écoute sur 127.0.0.1 (localhost) le trafic NFS entrant à partir du client NFS. Stunnel intercepte ensuite ce trafic et le transfère en toute sécurité via TLS au serveur Azure Files NFS sur Azure.
Pour vérifier si le trafic vers le serveur NFS est chiffré, utilisez la tcpdump commande pour capturer des paquets sur le port 2049.
sudo tcpdump -i any port 2049 -w nfs_traffic.pcap
Lorsque vous ouvrez la capture dans Wireshark, la charge utile s’affiche sous forme de « Données d’application » au lieu de texte lisible.
Note
Tout le trafic d’une machine virtuelle vers le même point de terminaison de serveur utilise une connexion unique. L’assistance de montage AZNFS garantit que vous ne pouvez pas combiner les configurations TLS et non TLS lors du montage de partages sur ce serveur. Cette règle s'applique aux partages du même compte de stockage et de comptes de stockage différents qui aboutissent à la même adresse IP.
Troubleshooting
Une opération de montage non-TLS (notls) peut échouer si un montage tls chiffré précédent sur le même serveur a été arrêté avant de s’exécuter correctement. Bien que le service aznfswatchdog nettoie automatiquement les entrées obsolètes après un délai d’expiration, la tentative d’un nouveau montage non TLS avant la fin du nettoyage peut échouer.
Pour résoudre ce problème, remontez le partage à l’aide de l’option clean, qui efface immédiatement les entrées obsolètes :
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
Si une machine virtuelle est jointe à un domaine personnalisé, utilisez un nom de domaine complet DNS personnalisé ou des noms courts pour le partage de fichiers tel /etc/fstab que défini dans le DNS. Pour vérifier la résolution du nom d’hôte, utilisez les commandes nslookup <hostname> et getent host <hostname>. Avant d’exécuter la commande de montage, vérifiez que la variable AZURE_ENDPOINT_OVERRIDE d’environnement est définie.
Si les problèmes de montage continuent, consultez les fichiers journaux pour plus d’informations sur la résolution des problèmes :
-
Montage des journaux d’activité Helper et Watchdog :
/opt/microsoft/aznfs/data/aznfs.log -
Journaux d’activité Stunnel :
/etc/stunnel/microsoft/aznfs/nfsv4_fileShare/logs