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 ?
Réponses
Trop de publicités?$ 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.
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.
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.
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).
- Réponses précédentes
- Plus de réponses