Погода нас не радует -- холодно. А холодно потому что зима :)
Поэтому Пермские сатанисты, линуксойды и члены НГЦ сидят дома строят коварные планы по захвату вселенной, порабощению человечества и занимаются другой ерундой, различного рода.
Вот и я в очередной раз обновил систему и мне пришлось снова пробрасывать NFS через фаервол и заново перечитывать маны.
Чтобы избежать такой участи в следующий раз, я напишу здесь небольшое, пошаговое руководство, даже не руководство а заметочку.
UPD: Всё написание заняло у меня примерно месяц :)
Как мы знаем portmaper назначает для rpcbind и mountd порты случайным образом, это осложняет "проброс" NFS через фаервол.
Но, не стоит отчаиваться :) Порты можно указать и вручную.
Для этого выполним команду rpcinfo -p и посмотрим, на какие порты настроены наши утилиты.
user@gate:~$ sudo rpcinfo -p
Password:
прог-ма верс прото порт
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 865 status
100024 1 tcp 865 status
100011 1 udp 863 rquotad
100011 2 udp 863 rquotad
100011 1 tcp 863 rquotad
100011 2 tcp 863 rquotad
100003 2 udp 2049 nfs
100003 2 tcp 2049 nfs
100021 1 udp 32770 nlockmgr
100021 3 udp 32770 nlockmgr
100021 1 tcp 42639 nlockmgr
100021 3 tcp 42639 nlockmgr
100005 1 udp 861 mountd
100005 1 tcp 861 mountd
100005 2 udp 861 mountd
100005 2 tcp 861 mountd
100005 3 udp 861 mountd
100005 3 tcp 861 mountd
Затем добавим их в
/etc/services, чтобы потом не запутаться при чтении логов.
user@gate:~$ grep NFS /etc/services
mountd 861/udp # NFS mountd
mountd 861/udp # NFS mountd
rquotad 863/udp # NFS rquotad
rquotad 863/tcp # NFS rquotad
status 865/udp # NFS status (listen)
status 865/tcp # NFS status (listen)
status 866/udp # NFS status (send)
status 866/tcp # NFS status (send)
nfsd 2049/tcp nfs # NFS server daemon
nfsd 2049/udp nfs # NFS server daemon
lockd 4045/udp # NFS lock daemon/manager
После подготовки исправим /etc/rc.d/rc.nfsd
Назначим постоянный порт для quota daemon:
if [ -x /usr/sbin/rpc.rquotad ]; then
echo " /usr/sbin/rpc.rquotad -p 863"
/usr/sbin/rpc.rquotad -p 863
fi
И для mount daemon:
if [ -x /usr/sbin/rpc.mountd ]; then
echo " /usr/sbin/rpc.mountd -p 861"
/usr/sbin/rpc.mountd -p 861
fi
Далее правим /etc/rc.d/rc.rpc должно быть так :) :
if ! ps axc | grep -q rpc.statd ; then
echo "Starting RPC NSM (Network Status Monitor): /sbin/rpc.statd -p 865 -o 866"
/sbin/rpc.statd -p 865 -o 866
fi
и в /etc/modprobe.conf добавляем строчку:
options lockd nlm_udpport=4045 nlm_tcpport=4045
Затем правим скрипт фаервола у меня это /etc/rc.d/rc.firewall.
Необходимо открыть UDP и TCP: 861, 863, 2049 порты, на локальный интерфейс.
Обновляем цепочки в фаерволе и рестартуем демоны.
Готово :)