Porty dla NFS

Krótko i na temat. Dodałem kiedyś wpis o aktówce w Linuksie, ale nie doprecyzowałem w nim wszystkich portów, jakich potrzebuje do komunikacji. Ostatnio potrzebowałem uruchomić sobie NFS na CentOSie i okazało się, że 111 oraz 2049 nie wystarczy. Mam sobie taki plik /etc/sysconfig/nfs, do którego należy dopisać pewne wartości, które chcę mieć na stałe:

MOUNTD_PORT=22222
STATD_PORT=22223
LOCKD_TCPPORT=22224
LOCKD_UDPPORT=22225

Przed wybraniem portu należy oczywiście upewnić się, że nic w systemie tego nie używa. Dla mnie najwygodniej użyć do tego netstat -atpn. Do czego są te porty:

  • MOUNT_PORT jest używany przez rpc.mountd za każdym razem, kiedy klient zamontuje dowolny eksport nfsa,
  • STATD_PORT dla rpc.statd, którego serwer używa do kontroli stanu podłączonych klientów,
  • lockd kontroluje coś związanego z kernelem; jeszcze nie wiem co, ale kiedy się dowiem, to napiszę 🙂 .

W pliki /etc/sysconfig/iptables piszemy więc coś takiego:

# nfs
-A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 111 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -p udp -m udp --dport 111 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 2049 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -p udp -m udp --dport 2049 -j ACCEPT

# nfs-mountd
-A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 22222 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -p udp -m udp --dport 22222 -j ACCEPT

# nfs-statd
-A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 22223 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -p udp -m udp --dport 22223 -j ACCEPT

# nfs-lockd
-A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 22224 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -p udp -m udp --dport 22225 -j ACCEPT

I mamy łączność. 192.168.1.0/24 można poprawić, biorąc pod uwagę, w jakiej podsieci jesteśmy. Można też w ogóle zrezygnować z parametru -s ip.ip.ip.ip, jeżeli mamy dodatkowy firewall na routerze. Ja dla pewności zawsze go dopisuję.