Debian Wheezy NFS + Firewall
Często zachodzi konieczność uruchomienia serwera NFS w połączeniu z firewallem (iptables), niestety zadanie to ze względu na zasadę działania NFS jest troszkę problematyczne.
Przygotowałem krótka ściągę w oparciu o Debiana Wheezy, która powinna pozwolić uruchomić taką konfigurację szybko i bez czasochłonnego czytania dokumentacji.
Zakładam, że nie uwzlędniamy wykorzystywania quoty, a iptables jest już poprawnie skonfigurowane i blokuje połączenia przychodzące, natomiast nie blokuje połączeń nawiązanych oraz wychodzących.
Instalujemy potrzebne paczki:
apt-get install nfs-kernel-server
W pliku /etc/modprobe.d/local.conf
tworzymy wpis dla demona lockd:
options lockd nlm_udpport=4001 nlm_tcpport=4001
Uruchamiamy polecenie:
update-initramfs -u
W pliku /etc/default/nfs-common
dodajemy wpis:
STATDOPTS="--port=4003 --outgoing-port=4004"
W pliku /etc/default/nfs-kernel-server
dodajemy wpis:
RPCMOUNTDOPTS="--manage-gids --port=4002"
Do iptables dodajemy następujące lub analogiczne regułki (zakładając, że wpuszczamy ruch przez eth0):
-A INPUT -i eth0 -p tcp --dport 111 -j ACCEPT
-A INPUT -i eth0 -p udp --dport 111 -j ACCEPT
-A INPUT -i eth0 -p tcp --dport 2049 -j ACCEPT
-A INPUT -i eth0 -p udp --dport 2049 -j ACCEPT
-A INPUT -i eth0 -p tcp --dport 4001:4004 -j ACCEPT
-A INPUT -i eth0 -p udp --dport 4001:4004 -j ACCEPT
Od tej chwili po restarcie powinno wszystko działać, oczywiście nie można zapomnieć o udostępnieniu zasobów w /etc/exports oraz dokładnym przetestowaniu całości.