Skip to content

Référence des ports

Port 2049 (TCP) – NFS

Network File System — protocole Unix/Linux pour partager des répertoires sur le réseau.

tcpRegisteredSouvent attaqué

État par défaut

Ouvert sur les hôtes exécutant un serveur NFS avec des partages exportés. Non activé par défaut ; souvent exposé dans les réseaux de datacenter et de stockage.

Attaques courantes

  • Énumération des exports pour découvrir les répertoires partagés
  • Lecture/écriture non authentifiée sur les exports accessibles à tous
  • Élévation de privilèges via la mauvaise configuration no_root_squash
  • Usurpation d'UID/GID pour accéder aux fichiers d'autres utilisateurs (AUTH_SYS)

Durcissement

  • Ne jamais exporter vers * — restreindre les exports à des hôtes/sous-réseaux précis
  • Activer root_squash (éviter no_root_squash) et exporter en lecture seule si possible
  • Utiliser NFSv4 avec Kerberos (krb5p) pour l'authentification et le chiffrement
  • Ne pas exposer le port 2049 à Internet — le garder sur des réseaux internes de confiance
  • Auditer régulièrement /etc/exports et la sortie de showmount

Commande nmap

nmap -p2049 --script nfs-showmount,nfs-ls,nfs-statfs <target>

Remplacez <target> par l’hôte ou la plage que vous êtes autorisé à scanner.

Ce qui s'exécute sur le port 2049

Le port 2049 est le port standard de NFS (Network File System), le protocole Unix/Linux permettant de monter et d'accéder à des répertoires distants comme s'ils étaient locaux. NFSv4 regroupe tout sur le port 2049, tandis que NFSv2/v3 s'appuient en plus sur le portmapper (port 111) et des services annexes comme mountd. Il est l'épine dorsale du stockage partagé dans de nombreux datacenters et clusters.

Pourquoi c'est important pour la sécurité

Le NFS traditionnel avec authentification AUTH_SYS fait confiance à l'UID/GID revendiqué par le client, de sorte que quiconque peut joindre l'export peut usurper n'importe quel utilisateur et lire ou écrire ses fichiers. Des exports laxistes (partage vers *) exposent les données à tout le réseau, et l'option no_root_squash laisse un root distant agir en root sur le partage — une voie directe pour déposer des binaires SUID ou altérer des fichiers système. Exposer le 2049 à Internet est particulièrement dangereux.

Comment c'est attaqué

Les attaquants lancent showmount -e ou le script nmap nfs-showmount pour lister les répertoires exportés, puis montent les partages accessibles à tous et utilisent nfs-ls pour parcourir et exfiltrer des données — souvent sans aucune authentification. En usurpant l'UID/GID, ils atteignent les fichiers d'autres utilisateurs. Lorsque no_root_squash est défini, ils écrivent un binaire SUID appartenant à root pour élever leurs privilèges sur l'hôte détenant les données.

Liste de durcissement

N'exportez jamais vers * — limitez chaque export à des hôtes ou sous-réseaux précis et rendez-le en lecture seule si possible. Gardez root_squash activé et évitez no_root_squash. Passez à NFSv4 avec Kerberos (krb5p) pour une vraie authentification et un chiffrement plutôt que de faire confiance aux UID clients. Gardez le 2049 (et le 111) hors d'Internet, confinés à des segments de confiance, et auditez régulièrement /etc/exports. Utilisez la commande nmap ci-dessus pour énumérer les exports sur les systèmes que vous êtes autorisé à tester.

Ports liés

Questions fréquentes

NFS sur le port 2049 est-il sécurisé ?
Seulement s'il est durci. Le NFS classique (AUTH_SYS) fait confiance à l'UID/GID fourni par le client, donc un attaquant sur le réseau peut usurper n'importe quel utilisateur. Utilisez NFSv4 avec Kerberos et des règles d'export strictes.
Quel est le risque de no_root_squash ?
no_root_squash permet à un root distant d'agir en tant que root sur l'export. Un attaquant peut écrire un binaire SUID ou modifier des fichiers pour élever ses privilèges sur les données du serveur.