iptables regras para nfs

3

Eu estava ficando abaixo do erro ao digitar showmount -e 192.168.56.2 na máquina cliente

[root@client ~]# showmount -e 192.168.56.2
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

Esta é a configuração do meu servidor nfs

servidor nfs ip 192.168.56.2

Este é o meu compartilhamento nfs

[root@www ~]# cat /etc/exports 
/files  192.168.56.7(rw,sync)

Estes são os dois serviços em execução na máquina do servidor

[root@www ~]# service rpcbind status
rpcbind (pid  2626) is running...
[root@www ~]# service nfs status
rpc.svcgssd is stopped
rpc.mountd (pid 2716) is running...
nfsd (pid 2781 2780 2779 2778 2777 2776 2775 2774) is running...
rpc.rquotad (pid 2712) is running...

Esta é a minha regra do iptables

[root@www ~]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Thu Oct 31 02:08:16 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5:388]
-A INPUT -p tcp -m tcp --dport 111 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 2049 -j ACCEPT 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p icmp -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
-A INPUT -j REJECT --reject-with icmp-host-prohibited 
-A FORWARD -j REJECT --reject-with icmp-host-prohibited 
COMMIT
# Completed on Thu Oct 31 02:08:16 2013

Se eu liberar a regra iptables na máquina do servidor, meu cliente poderá ver o compartilhamento nfs

[root@client ~]# showmount -e 192.168.56.2
Export list for 192.168.56.2:
/files 192.168.56.7

Isso significa problema com regra iptables, alguém pode me dizer qual é o problema com a minha regra iptables, estou faltando qualquer outra porta? Como solucionar esses tipos de problemas?

Eu tentei esse método da minha máquina cliente para verificar se a porta está escutando ou não e esta é a saída disso

[root@client ~]# telnet 192.168.56.2 111
Trying 192.168.56.2...
Connected to 192.168.56.2.
Escape character is '^]'.
[root@client ~]# telnet 192.168.56.2 2049
Trying 192.168.56.2...
Connected to 192.168.56.2.
Escape character is '^]'.

    
por max 31.10.2013 / 07:48

2 respostas

2

A lista de portas abertas para o NFS é muito restritiva. Primeiro, você terá que abrir as mesmas portas para o UDP, então você precisará adicionar mais 2 portas. A lista completa de portas a serem abertas é:

 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
    
por 31.10.2013 / 08:17
2

SERVIDOR NFS:

Configure Ports para 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 / tcp)

    vim /etc/sysconfig/nfs

Se desejar, desative o suporte a NFS v3 e NFS v2 editando as linhas 5 & 6 de / etc / sysconfig / nfs

    MOUNTD_NFS_V2="no"
    MOUNTD_NFS_V3="no"

Salvar as regras atuais do Iptables para uso posterior

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

Liberar e verificar as regras do Iptables

    iptables -F
    iptables -L

Pare e inicie o NFS e os serviços relacionados na sequência a seguir

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

Certifique-se de que o NFS configurado e suas portas associadas mostrem como definido antes e anotado os números de porta e os prots da camada 4 OSI. Os números de porta padrão para rpcbind (ou portmapper) são 111 / udp, 111 / tcp e nfs são 2049 / udp, 2049 / tcp.

   rpcinfo -p | sort -k 3 

Restaure as regras do pre-nfs-firewall agora

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

Gravar regras iptables para o servidor NFS (Nota: o adaptador de loopback tem que ser permitido, senão você verá os pacotes descartados e também quando reiniciar o serviço nfs, ele irá cuspir ERROR {Iniciando cotas NFS: Não é possível registrar o serviço: RPC: Tempo esgotado rpc.rquotad: não é possível registrar (RQUOTAPROG, RQUOTAVERS, udp). [FAILED]} para o daemon rquotad. Você pode verificar isso adicionando uma regra com o destino de salto LOG no parte inferior das cadeias INPUT ou OUTPUT da tabela de filtros)

   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

Configurar o diretório de exportações do NFS

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

Pare e inicie o NFS e os serviços relacionados na sequência a seguir

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

NFS CLIENT:

Salvar as regras atuais do Iptables para uso posterior

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

Liberar e verificar as regras do Iptables

   iptables -F
   iptables -L

Obtenha as portas do servidor NFS com firewall a partir da máquina cliente e anote os números das portas e os prots da camada 4 do OSI.

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

Restaure as regras do pre-nfs-firewall agora

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

Gravar regras iptables para o cliente NFS (Nota: o adaptador Loopback tem que ser permitido, senão você verá os pacotes descartados e também quando reiniciar o serviço nfs, ele irá cuspir ERROR {Iniciando cotas NFS: Não é possível registrar o serviço: RPC: Tempo esgotado rpc.rquotad: não é possível registrar (RQUOTAPROG, RQUOTAVERS, udp). [FAILED]} para o daemon rquotad. Você pode verificar isso adicionando uma regra com o destino de salto LOG no parte inferior das cadeias INPUT ou OUTPUT da tabela de filtros)

   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

Pare e inicie o NFS e os serviços relacionados na sequência a seguir

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

Listar exportações do NFS Server

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

Montar manualmente as exportações do NFS (as montagens persistentes podem ser configuradas usando / 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

Configure o autofs, se a automontagem for preferida para as exportações do nfs e com os diretórios iniciais do usuário do ldap (Mapas Diretos e Indiretos podem ser definidos)

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

Verifique exportações NFS montadas

   df -h -F nfs
   mount | grep nfs

Listar todos os diretórios de exportação do NFS-V4 pseudo-raiz (NFS Lazy mount)

   ls /net/ip-addr-nfs-server
    
por 10.12.2014 / 07:37