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

14914
max

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

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

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

NFS сервер IP 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-символ '^]'.  
3

2 ответа на вопрос

2
MariusMatutiae

The list of open ports for NFS is too restrictive. First, you will have to open the same ports to UDP, then you will need to add 2 more ports. The complete list of ports to be opened is:

 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 
Прежде чем добавить 2 порта, нужно ли внести какие-либо изменения в этот файл / etc / sysconfig / nfs? max 10 лет назад 0
Нет, если у вас нет нестандартной установки. MariusMatutiae 10 лет назад 0
В соответствии с вашим ответом я изменил правило iptables, но порты 1110 и 4045 все еще не прослушивают мой клиент, поэтому я удалил эти 2 порта из iptables и добавил только эти 111 / tcp, 111 / udp, 2049 / tcp, 2049 / udp и это начинает работать. max 10 лет назад 0
Ваш ответ правильный, но мне нужна информация, например, увидев эту ошибку, как я могу догадаться, что это из-за проблем с портом? любое сообщение журнала предоставит эту информацию? или скажи мне любой метод устранения неполадок. max 10 лет назад 0
Пожалуйста, примите мой ответ, если он сейчас работает. Что касается устранения неполадок: у вас есть соединение, у вас есть учетные данные (вы можете войти без брандмауэра), но вы не можете соединиться с брандмауэром. Следовательно брандмауэр слишком строгий. Посмотрел, что я сделал на другом ПК. В противном случае, я мог бы найти нужные порты, что-то вроде «NFS iptables ports». MariusMatutiae 10 лет назад 0
И, кстати, я посмотрел на ваши IP-правила, и они были в порядке, без ошибок, поэтому единственная возможность состояла в том, что вы закрывали необходимый порт. Позвольте мне добавить, что нет способа диагностировать это, если вы не укажете iptables регистрировать все попытки подключения (а вы этого не сделали). Причина в том, что удаленная машина отправляет соединение и думает: «Все в порядке». Локальная машина никогда не видит входящие пакеты из-за брандмауэра. Если вы хотите, вы можете сказать iptables вести журнал. Осторожно: очень большой файл, полезный только для отладки. MariusMatutiae 10 лет назад 0
2
Sathish

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 появится сообщение об ошибке ERROR для демона 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 будет выплевывать ОШИБКА для демона 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 

Похожие вопросы