4.11. Configurer le serveur NFS pour qu'il fonctionne derrière un pare-feu
NFS nécessite le service rpcbind
, qui attribue dynamiquement des ports pour les services RPC et peut poser des problèmes pour la configuration des règles de pare-feu. Les sections suivantes décrivent comment configurer les versions de NFS pour qu'elles fonctionnent derrière un pare-feu si vous souhaitez les prendre en charge :
NFSv3
Il s'agit de tous les serveurs qui prennent en charge NFSv3 :
- Serveurs NFSv3 uniquement
- Serveurs supportant à la fois NFSv3 et NFSv4
- NFSv4 uniquement
4.11.1. Configurer le serveur NFSv3 pour qu'il fonctionne derrière un pare-feu
La procédure suivante décrit comment configurer les serveurs qui prennent en charge NFSv3 pour qu'ils fonctionnent derrière un pare-feu. Il s'agit des serveurs NFSv3 uniquement et des serveurs qui prennent en charge à la fois NFSv3 et NFSv4.
Procédure
Pour permettre aux clients d'accéder aux partages NFS derrière un pare-feu, configurez ce dernier en exécutant les commandes suivantes sur le serveur NFS :
firewall-cmd --permanent --add-service mountd firewall-cmd --permanent --add-service rpc-bind firewall-cmd --permanent --add-service nfs
Spécifiez les ports à utiliser par le service RPC
nlockmgr
dans le fichier/etc/nfs.conf
comme suit :[lockd] port=tcp-port-number udp-port=udp-port-number
Vous pouvez également spécifier
nlm_tcpport
etnlm_udpport
dans le fichier/etc/modprobe.d/lockd.conf
.Ouvrez les ports spécifiés dans le pare-feu en exécutant les commandes suivantes sur le serveur NFS :
firewall-cmd --permanent --add-port=<lockd-tcp-port>/tcp firewall-cmd --permanent --add-port=<lockd-udp-port>/udp
Ajoutez des ports statiques pour
rpc.statd
en modifiant la section[statd]
du fichier/etc/nfs.conf
comme suit :[statd] port=port-number
Ouvrez les ports ajoutés dans le pare-feu en exécutant les commandes suivantes sur le serveur NFS :
firewall-cmd --permanent --add-port=<statd-tcp-port>/tcp firewall-cmd --permanent --add-port=<statd-udp-port>/udp
Recharger la configuration du pare-feu :
firewall-cmd --reload
Redémarrez d'abord le service
rpc-statd
, puis le servicenfs-server
:# systemctl restart rpc-statd.service # systemctl restart nfs-server.service
Alternativement, si vous avez spécifié les ports
lockd
dans le fichier/etc/modprobe.d/lockd.conf
:Mettre à jour les valeurs actuelles de
/proc/sys/fs/nfs/nlm_tcpport
et/proc/sys/fs/nfs/nlm_udpport
:# sysctl -w fs.nfs.nlm_tcpport=<tcp-port> # sysctl -w fs.nfs.nlm_udpport=<udp-port>
Redémarrez les services
rpc-statd
etnfs-server
:# systemctl restart rpc-statd.service # systemctl restart nfs-server.service
4.11.2. Configurer le serveur NFSv4-only pour qu'il fonctionne derrière un pare-feu
La procédure suivante décrit comment configurer le serveur NFSv4-only pour qu'il fonctionne derrière un pare-feu.
Procédure
Pour permettre aux clients d'accéder aux partages NFS derrière un pare-feu, configurez ce dernier en exécutant la commande suivante sur le serveur NFS :
firewall-cmd --permanent --add-service nfs
Recharger la configuration du pare-feu :
firewall-cmd --reload
Redémarrez le serveur nfs :
# systemctl restart nfs-server
4.11.3. Configurer un client NFSv3 pour qu'il fonctionne derrière un pare-feu
La procédure de configuration d'un client NFSv3 derrière un pare-feu est similaire à la procédure de configuration d'un serveur NFSv3 derrière un pare-feu.
Si la machine que vous configurez est à la fois un client et un serveur NFS, suivez la procédure décrite dans la section Configurer le serveur compatible NFSv3 pour qu'il fonctionne derrière un pare-feu.
La procédure suivante décrit comment configurer une machine qui n'est qu'un client NFS pour qu'elle fonctionne derrière un pare-feu.
Procédure
Pour permettre au serveur NFS d'effectuer des rappels vers le client NFS lorsque ce dernier se trouve derrière un pare-feu, ajoutez le service
rpc-bind
au pare-feu en exécutant la commande suivante sur le client NFS :firewall-cmd --permanent --add-service rpc-bind
Spécifiez les ports à utiliser par le service RPC
nlockmgr
dans le fichier/etc/nfs.conf
comme suit :[lockd] port=port-number udp-port=upd-port-number
Vous pouvez également spécifier
nlm_tcpport
etnlm_udpport
dans le fichier/etc/modprobe.d/lockd.conf
.Ouvrez les ports spécifiés dans le pare-feu en exécutant les commandes suivantes sur le client NFS :
firewall-cmd --permanent --add-port=<lockd-tcp-port>/tcp firewall-cmd --permanent --add-port=<lockd-udp-port>/udp
Ajoutez des ports statiques pour
rpc.statd
en modifiant la section[statd]
du fichier/etc/nfs.conf
comme suit :[statd] port=port-number
Ouvrez les ports ajoutés dans le pare-feu en exécutant les commandes suivantes sur le client NFS :
firewall-cmd --permanent --add-port=<statd-tcp-port>/tcp firewall-cmd --permanent --add-port=<statd-udp-port>/udp
Recharger la configuration du pare-feu :
firewall-cmd --reload
Redémarrez le service
rpc-statd
:# systemctl restart rpc-statd.service
Alternativement, si vous avez spécifié les ports
lockd
dans le fichier/etc/modprobe.d/lockd.conf
:Mettre à jour les valeurs actuelles de
/proc/sys/fs/nfs/nlm_tcpport
et/proc/sys/fs/nfs/nlm_udpport
:# sysctl -w fs.nfs.nlm_tcpport=<tcp-port> # sysctl -w fs.nfs.nlm_udpport=<udp-port>
Redémarrez le service
rpc-statd
:# systemctl restart rpc-statd.service
4.11.4. Configurer un client NFSv4 pour qu'il fonctionne derrière un pare-feu
N'effectuez cette procédure que si le client utilise NFSv4.0. Dans ce cas, il est nécessaire d'ouvrir un port pour les rappels NFSv4.0.
Cette procédure n'est pas nécessaire pour NFSv4.1 ou supérieur, car dans les versions ultérieures du protocole, le serveur effectue des rappels sur la même connexion que celle initiée par le client.
Procédure
Pour permettre aux rappels NFSv4.0 de traverser les pare-feux, définissez
/proc/sys/fs/nfs/nfs_callback_tcpport
et autorisez le serveur à se connecter à ce port sur le client comme suit :# echo "fs.nfs.nfs_callback_tcpport = <callback-port>" >/etc/sysctl.d/90-nfs-callback-port.conf # sysctl -p /etc/sysctl.d/90-nfs-callback-port.conf
Ouvrez le port spécifié dans le pare-feu en exécutant la commande suivante sur le client NFS :
firewall-cmd --permanent --add-port=<callback-port>/tcp
Recharger la configuration du pare-feu :
firewall-cmd --reload