Table des matières
NFS et FireWall
Je n'ai pas dit “IpTables”, mais “FireWall”… parce qu'en fait , je vais utiliser une surcouche a IpTables nommé “Ferm”.
Peu importe: c'est le même principe.
~~READMORE~~
NFS sans port dynamique
Par défaut, NFS attribue aléatoirement, via portmap
, des ports d'entrée pour NFS.
Nous allons attribué au serveur NFS des ports FIXES : les règles “FireWall” seront alors possible.
Installer NFS-SERVER
( Avec port “dynamique” par defaut… )
# aptitude install nfs-kernel-server
On va préparer un partage (pour exemple, toujours):
# mkdir -p /mnt/data/share4backup # mkdir -p /mnt/data/share4backup/www-free-fr
Qu'on va “exporter” a nos clients NFS: Dans /etc/exports
, par exemple:
/mnt/data/share4backup 192.168.0.111(rw,no_subtree_check,no_root_squash) /mnt/data/share4backup/www-free-fr 212.27.48.10(rw,no_subtree_check,no_root_squash)
# /etc/init.d/nfs-kernel-server reload
Et voila pour le serveur.
Sur le client en local (192.168…) :
On prépare le point de montage:
# mkdir -p /mnt/share4backup
Et on ajoute dans /etc/fstab
:
192.168.0.222:/mnt/data/share4backup /mnt/share4backup nfs defaults,rw,noauto,noatime,nodiratime 0 0
Où:
192.168.0.111 | IP du client NFS |
192.168.0.222 | IP du serveur NFS |
mais, vous aviez compris.
On test le montage:
# mount /mnt/share4backup
Ça marche.
Mais ça marche parce qu'on est sur le même reseau.
Pour ce qui est du client en 212.27.48.10
, ça ne fonctionnera pas (encore).
Ports FIXES
Liens:
On va utiliser les ports suivant:
- 111
- 2049
Et on va choisir (libre a vous de changer):
- 2764
- 2765
- 2766
- 2767
- 2768
En résumé , uniquement sur le serveur:
Dans /etc/default/nfs-common
, faire en sorte d'avoir:
STATDOPTS="--port 2765 --outgoing-port 2766"
Dans /etc/default/nfs-kernel-server
, faire en sorte d'avoir:
RPCMOUNTDOPTS='-p 2767'
Crééer ou adapter le fichier /etc/modprobe.d/local.conf
afin d'avoir:
options lockd nlm_udpport=2768 nlm_tcpport=2768 options nfs callback_tcpport=2764
Ce qui defini les options associés au chargement des modules lockd
et nfs
.
Il faudra rebooter (pas trouvé d'autres moyens) pour appliquer ces options. |
Ferm
Et voila, on peut enfin autoriser l'IP public a atteindre un serveur NFS dans le reseau local, avec des règles Ferm comme cela, par exemple:
@def $LAN_IF = eth0; @def $WAN_IF = eth1; # ... etc ... nat PREROUTING , nat POSTROUTING, ... etc... chain FORWARD if $WAN_IF of $LAN_IF saddr 212.27.48.10 daddr 192.168.0.222 { mod state state NEW proto ( udp tcp ) dport ( 111 2049 2764:2768 ) ACCEPT; mod state state ( ESTABLISHED RELATED ) ACCEPT; } chain FORWARD if $LAN_IF of $WAN_IF ACCEPT; # ... etc ...
AutoFS
Parce que c'est mieux…
- ça se connecte/déconnecte quand necessaire
- ça se reconnecte automatiquement en qu'à d'incident (reboot du firewall!)
# aptitude install autofs
# mkdir -p /mnt/autofs
Ça va se mounter automatiquement dans /mnt/autofs
(n'essayer pas /mnt
)
Apporter les modifications suivantes dans /etc/auto.master
:
# TJ ---------- #+auto.master /mnt/autofs /etc/auto.share4backup --ghost,--timeout=300 # -------------
Créer un fichier /etc/auto.share4backup
contenant:
share4backup -fstype=nfs,rw,nfsver=3,intr,noatime,nodiratime 192.168.0.222:/mnt/data/share4backup
# /etc/init.d/autofs reload
Dans, /mnt/autofs/share4backup
, on doit trouver les fichiers via NFS…