119 votes

Quels ports dois-je ouvrir dans le pare-feu pour utiliser NFS ?

J'utilise Ubuntu 11.10 et je configure NFS pour partager un répertoire avec plusieurs autres serveurs. Quels ports doivent être ouverts sur le pare-feu ?

158voto

Wesley Points 32020
$ rpcinfo -p | grep nfs

Port 111 (TCP et UDP) et 2049 (TCP et UDP) pour le serveur NFS.

Il existe également des ports pour le statut du cluster et du client (Port 1110 TCP pour le premier, et 1110 UDP pour le second) ainsi qu'un port pour le gestionnaire de verrouillage NFS (Port 4045 TCP et UDP). Vous êtes le seul à pouvoir déterminer les ports que vous devez autoriser en fonction des services qui sont nécessaires à travers la passerelle.

42voto

Yamaho Points 4053

En plus de 111 pour portmapper et 2049 pour nfs, vous devrez autoriser le port mountd et éventuellement rquotad, lockd et statd, qui peuvent tous être dynamiques. Cet excellent guide de la sécurité NFS recommande de modifier vos scripts de démarrage et les configurations des modules du noyau pour les forcer à utiliser des ports statiques.

En plus du guide ci-dessus, qui a une section sur les pare-feu voir ma réponse à une autre question sur le durcissement de NFS.

33voto

Amir Uval Points 401

J'ai trouvé des indications utiles pour mon problème sur cette page, mais il n'y avait pas de recette facile à suivre. Voici donc ma recette.

TL;DR - il faut autoriser les deux ports nfs (111, 2049) et le port mountd après avoir corrigé le problème.

Instructions :


Mise en place d'un port fixe pour mountd

gksudo gedit /etc/default/nfs-kernel-server
  • commentez cette ligne : RPCMOUNTDOPTS=--manage-gids
  • ajoutez ceci à la place : RPCMOUNTDOPTS="--port 33333"

Ou tout autre numéro de port.

maintenant essayez de réinitialiser le nfs en utilisant :

sudo service nfs-kernel-server restart

Et testez si ça vous a aidé à utiliser :

rpcinfo -p | grep "tcp.*mountd"

Pour moi, ce n'était pas suffisant, mais un redémarrage complet a réglé le problème.

( crédit )


Configuration du pare-feu

(1) supprimer les anciennes règles, faites-le manuellement ou réinitialisez-le si c'est la seule utilisation du pare-feu :

sudo ufw reset
sudo ufw enable

(2) ajouter les ports nfs & mountd

sudo ufw allow in from 10.0.0.1/20 to any port 111 
sudo ufw allow in from 10.0.0.1/20 to any port 2049
sudo ufw allow in from 10.0.0.1/20 to any port 33333

(Changez pour vos IP locales ou pour " any " au lieu de 10.0.0.1/20 )

C'est tout ce qu'il y a à faire.

10voto

Jolfulorc Points 33

Cela donnera une liste de tous les ports utilisés par tous les programmes liés à NFS :

rpcinfo -p | awk '{print $3" "$4}' | sort -k2n | uniq

2voto

Richard Points 31

Avec FERM, on peut utiliser Backticks pour obtenir les ports à partir de rpcinfo, par exemple :

Serveur :

proto tcp {saddr ($CLIENT) {
  dport (`rpcinfo -p | perl -e 'while(<>){/\s+\d+\s+\d\s+(?:tcp)\s+(\d+)/ and $ports{$1}=1}; $, = " "; print sort(keys(%ports)),"\n"'`) ACCEPT; # NFS
}}
proto udp {saddr ($CLIENT) {
  dport (`rpcinfo -p | perl -e 'while(<>){/\s+\d+\s+\d\s+(?:udp)\s+(\d+)/ and $ports{$1}=1}; $, = " "; print sort(keys(%ports)),"\n"'`) ACCEPT; # NFS
}}

Client :

proto udp {saddr ($SERVER) {ACCEPT;}}  # NFS

(Si vous n'utilisez que le TCP, vous n'avez besoin que de l'option proto tcp partie).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X