Правила iptables для nfs

Я получаю ниже ошибки при наборе showmount -e 192.168.56.2 в клиентской машине

[root@client ~]# showmount -e 192.168.56.2
clnt_create: RPC: сбой сопоставления портов - невозможно получить: errno 113 (нет маршрута к хосту)

Это моя конфигурация сервера NFS

IP-адрес сервера NFS 192.168.56.2

Это моя акция NFS

[root@www ~]# cat /etc/exports 
/ файлы 192.168.56.7(rw, синхронизация)

Это две службы, работающие на сервере

[root @ www ~] # сервис rpcbind status
rpcbind (pid  2626) работает...
[root @ www ~] # service nfs status
rpc.svcgssd остановлен
rpc.mountd (pid 2716) работает...
nfsd (pid 2781 2780 2779 2778 2777 2776 2775 2774) работает...
rpc.rquotad (pid 2712) работает...

Это мое правило Iptables

[root@www ~]# cat /etc/sysconfig/iptables
# Генерируется iptables-save v1.4.7 в четверг 31 октября 02:08:16 2013
*фильтр: ВВОД ПРИНЯТЬ [0:0]: ВПЕРЕД ПРИНЯТЬ [0:0]: ВЫХОД ПРИНЯТ [5:388]
-A ВХОД -p tcp -m tcp --dport 111 -j ПРИНЯТЬ 
-A ВХОД -p tcp -m tcp --dport 2049 -j ПРИНЯТЬ 
-A ВХОД -m состояние - СОСТОЯНИЕ ОТНОШЕНО, УСТАНОВЛЕНО -j ПРИНЯТЬ 
-A ВВОД -p icmp -j ПРИНЯТЬ 
-A ВВОД -i lo -j ПРИНЯТЬ 
-A ВХОД -p tcp -m состояние --Новое состояние -m tcp --dport 22 -j ПРИНЯТЬ 
-A INPUT -j REJECT --reject-with icmp-host-запрещено 
-A FORWARD -j REJECT --reject-with icmp-host-запрещено 
COMMIT
# Завершено в четверг 31 октября 02:08:16 2013

Если я сбрасываю правило iptables на сервере, то мой клиент может видеть общий ресурс nfs

[root @ client ~] # showmount -e 192.168.56.2
Экспорт списка для 192.168.56.2:
/ файлы 192.168.56.7

Это означает проблему с правилом iptables, кто-нибудь может сказать мне, в чем проблема с моим правилом iptables, я пропускаю какой-либо другой порт? Как решить эти проблемы?

Я попробовал этот метод с моей клиентской машины, чтобы проверить, прослушивает порт или нет, и это вывод этого

[root@client ~]# telnet 192.168.56.2 111
Попытка 192.168.56.2...
Подключено к 192.168.56.2.
Escape-символ '^]'.
[root @ client ~] # telnet 192.168.56.2 2049
Попытка 192.168.56.2...
Подключено к 192.168.56.2.
Escape-символ '^]'.

2 ответа

Решение

Список открытых портов для NFS слишком ограничен. Сначала вам придется открыть те же порты для UDP, затем вам нужно будет добавить еще 2 порта. Полный список открываемых портов:

 sunrpc     111/tcp    rpcbind  #SUN Remote Procedure Call
 sunrpc     111/udp    rpcbind  #SUN Remote Procedure Call
 nfsd-status    1110/tcp   #Cluster status info
 nfsd-keepalive 1110/udp   #Client status info
 nfsd       2049/tcp   nfs      # NFS server daemon
 nfsd       2049/udp   nfs      # NFS server daemon
 lockd      4045/udp   # NFS lock daemon/manager
 lockd      4045/tcp

NFS SERVER:

Настроить порты для rquotd(875/udp; 875/tcp), lockd(32803/tcp; 32769/udp), mountd(892/udp; 892/tcp), statd(10053/udp; 10053/tcp), statd_outgoing(10054/udp; 10054/ тср)

    vim /etc/sysconfig/nfs

При желании отключите поддержку NFS v3 и NFS v2, отредактировав строки 5 и 6 в /etc/sysconfig/nfs

    MOUNTD_NFS_V2="no"
    MOUNTD_NFS_V3="no"

Сохранить текущие правила Iptables для последующего использования

    iptables-save > pre-nfs-firewall-rules-server

Очистите и проверьте правила Iptables

    iptables -F
    iptables -L

Остановите и запустите NFS и связанные службы в следующей последовательности

   service rpcbind stop
   service nfslock stop
   service nfs stop
   service rpcbind start
   service nfslock start
   service nfs start

Убедитесь, что настроенная NFS и связанные с ней порты отображаются как заданные ранее, и отметили известные номера портов и протоколы уровня 4 OSI. Стандартные номера портов для rpcbind (или portmapper) - 111/udp, 111/tcp, а nfs - 2049/udp, 2049/tcp.

   rpcinfo -p | sort -k 3 

Восстановите pre-nfs-firewall-rules прямо сейчас

   iptables-restore < pre-nfs-firewall-rules-server

Напишите правила iptables для NFS-сервера (Примечание: адаптер Loopback должен быть разрешен, в противном случае вы увидите, что пакеты отброшены, а также при перезапуске службы nfs будет выплевывать ОШИБКА {Запуск квот NFS: Невозможно зарегистрировать службу: RPC: Превышено время ожидания rpc.rquotad: невозможно зарегистрироваться (RQUOTAPROG, RQUOTAVERS, udp). [FAILED] } для демона rquotad. Вы можете проверить это, добавив правило с целью перехода LOG в конец цепочек INPUT или OUTPUT таблицы фильтров)

   iptables -P INPUT DROP
   iptables -P OUTPUT DROP 
   iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p udp -m multiport --dports 10053,111,2049,32769,875,892 -m state --state NEW,ESTABLISHED -j ACCEPT 
   iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m multiport --dports 10053,111,2049,32803,875,892 -m state --state NEW,ESTABLISHED -j ACCEPT 
   iptables -A OUTPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p udp -m multiport --sports 10053,111,2049,32769,875,892 -m state --state ESTABLISHED -j ACCEPT 
   iptables -A OUTPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m multiport --sports 10053,111,2049,32803,875,892 -m state --state ESTABLISHED -j ACCEPT 
   iptables -I INPUT  -i lo -d 127.0.0.1 -j ACCEPT
   iptables -I OUTPUT  -o lo -s 127.0.0.1 -j ACCEPT
   iptables -L -n --line-numbers

Настроить каталог экспорта NFS

   vim /etc/exports 
   exportfs -av
   showmount -e
   rpcinfo -p

Остановите и запустите NFS и связанные службы в следующей последовательности

   service rpcbind stop
   service nfslock stop
   service nfs stop
   service rpcbind start
   service nfslock start
   service nfs start

NFS CLIENT:

Сохранить текущие правила Iptables для последующего использования

   iptables-save > pre-nfs-firewall-rules-client

Очистите и проверьте правила Iptables

   iptables -F
   iptables -L

Получите порты NFS-сервера с брандмауэром с клиентского компьютера и отметьте номера портов и протоколы уровня 4 OSI.

   rpcinfo -p 'ip-addr-nfs-server' | sort -k 3

Восстановите pre-nfs-firewall-rules прямо сейчас

   iptables-restore < pre-nfs-firewall-rules-client

Напишите правила iptables для клиента NFS (Примечание: адаптер Loopback должен быть разрешен, в противном случае вы увидите, что пакеты отброшены, а также при перезапуске службы nfs будет выплевывать ОШИБКА {Запуск квот NFS: Невозможно зарегистрировать службу: RPC: Превышено время ожидания rpc.rquotad: невозможно зарегистрироваться (RQUOTAPROG, RQUOTAVERS, udp). [FAILED] } для демона rquotad. Вы можете проверить это, добавив правило с целью перехода LOG в конец цепочек INPUT или OUTPUT таблицы фильтров)

   iptables -P INPUT DROP
   iptables -P OUTPUT DROP
   iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p udp -m multiport --sports 10053,111,2049,32769,875,892 -m state --state ESTABLISHED -j ACCEPT 
   iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m multiport --sports 10053,111,2049,32803,875,892 -m state --state ESTABLISHED -j ACCEPT 
   iptables -A OUTPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p udp -m multiport --dports 10053,111,2049,32769,875,892 -m state --state NEW,ESTABLISHED -j ACCEPT 
   iptables -A OUTPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m multiport --dports 10053,111,2049,32803,875,892 -m state --state NEW,ESTABLISHED -j ACCEPT 
   iptables -I INPUT  -i lo -d 127.0.0.1 -j ACCEPT
   iptables -I OUTPUT  -o lo -s 127.0.0.1 -j ACCEPT
   iptables -L -n --line-numbers

Остановите и запустите NFS и связанные службы в следующей последовательности

   service rpcbind stop
   service nfslock stop
   service nfs stop
   service rpcbind start
   service nfslock start
   service nfs start

Список экспортов NFS-сервера

   showmount -e 'ip-addr-nfs-server'

Монтирование экспорта NFS вручную (постоянные монтирования могут быть настроены с помощью /etc/fstab)

   mount -t nfs ip-addr-nfs-server:/exported-directory /mount-point -o rw,nfsvers=3
   mount -t nfs ip-addr-nfs-server:/exported-directory /mount-point -o rw  --> For NFS4 version

Настройте autofs, если автоматическое монтирование предпочтительнее для экспорта nfs и с домашними каталогами пользователей ldap (можно установить прямую и косвенную карты)

   vim /etc/auto.master    -> specify the mount point and map-name (Eg: auto.nfs)
   vim /etc/map-name
   service autofs stop
   service autofs start

Проверьте смонтированный экспорт NFS

   df -h -F nfs
   mount | grep nfs

Перечислите все псевдо-корневые каталоги экспорта NFS-V4 (NFS Lazy mount)

   ls /net/ip-addr-nfs-server
Другие вопросы по тегам