Правила 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