Partager via


Chiffrement en transit pour les partages de fichiers Azure NFS

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.

Capture d’écran montrant comment activer le transfert sécurisé sur un compte de stockage.

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.

Capture d’écran montrant les instructions de montage AZNFS dans le portail Azure.

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 :

  1. Vérifiez que le package d’assistance de montage AZNFS requis est installé sur le client.
  2. Montez le partage de fichiers NFS avec le chiffrement TLS.
  3. 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.

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 :

  1. Créez un répertoire sur votre client.
sudo mkdir -p /mount/<storage-account-name>/<share-name>
  1. 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.

Diagramme montrant l’écran PowerShell à tester si EiT est appliqué.

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.

Diagramme montrant l’écran Wireshark à tester si EiT est appliqué.

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

Voir aussi