servidores NFS e firewalld

11

Eu não encontrei um documento sobre isso, então vamos começar um.

Em um host do CentOS 7.1, eu passei por o linuxconfig HOW-TO , incluindo as entradas firewall-cmd , e eu tenho um sistema de arquivos exportável.

[root@<server> ~]# firewall-cmd --list-all
internal (default, active)
  interfaces: enp5s0
  sources: 192.168.10.0/24
  services: dhcpv6-client ipp-client mdns ssh
  ports: 2049/tcp
  masquerade: no
  forward-ports: 
  rich rules: 

[root@<server> ~]# showmount -e localhost
Export list for localhost:
/export/home/<user> *.localdomain

No entanto, se eu showmount do cliente, ainda tenho um problema.

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

Agora, como tenho certeza de que esse é um problema de firewall? Fácil. Desligue o firewall. Lado do servidor:

[root@<server> ~]# systemctl stop firewalld

E o lado do cliente:

[root@<client> ~]# showmount -e <server>.localdomain
Export list for <server>.localdomain:
/export/home/<server> *.localdomain

Reinicie o firewalld. Lado do servidor:

[root@<server> ~]# systemctl start firewalld

E o lado do cliente:

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

Então, vamos para a cidade, adaptando os comandos iptables de um HOWEL do servidor RHEL 6 NFS ...

[root@ ~]# firewall-cmd \
>  --add-port=111/tcp \
>  --add-port=111/udp \
>  --add-port=892/tcp \
>  --add-port=892/udp \
>  --add-port=875/tcp \
>  --add-port=875/udp \
>  --add-port=662/tcp \
>  --add-port=662/udp \
>  --add-port=32769/udp \
>  --add-port=32803/tcp
success

[root@<server> ~]# firewall-cmd \
>  --add-port=111/tcp \
>  --add-port=111/udp \
>  --add-port=892/tcp \
>  --add-port=892/udp \
>  --add-port=875/tcp \
>  --add-port=875/udp \
>  --add-port=662/tcp \
>  --add-port=662/udp \
>  --add-port=32769/udp \
>  --add-port=32803/tcp \
>  --permanent
success

[root@<server> ~]# firewall-cmd --list-all
internal (default, active)
  interfaces: enp5s0
  sources: 192.168.0.0/24
  services: dhcpv6-client ipp-client mdns ssh
  ports: 32803/tcp 662/udp 662/tcp 111/udp 875/udp 32769/udp 875/tcp 892/udp 2049/tcp 892/tcp 111/tcp
  masquerade: no
  forward-ports: 
  rich rules: 

Desta vez, recebo uma mensagem de erro ligeiramente diferente do cliente:

[root@<client> ~]# showmount -e <server>.localdomain
rpc mount export: RPC: Unable to receive; errno = No route to host

Então, eu sei que estou no caminho certo. Dito isto, por que não posso encontrar um tutorial definitivo sobre isso em qualquer lugar? Eu não posso ter sido a primeira pessoa a descobrir isso!

Que firewall-cmd entradas estão faltando?

Ah, uma outra nota. Meus arquivos /etc/sysconfig/nfs no cliente CentOS 6 e no servidor CentOS 7 não foram modificados até o momento. Eu preferiria não ter que mudar (e manter!) Eles, se possível.

    
por dafydd 18.11.2015 / 05:38

3 respostas

30

Isso deve ser suficiente:

firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload
    
por 18.11.2015 / 10:56
4

Achei isso - e funciona quando o problema é que o SELinux bloqueia a leitura das teclas ~ / .ssh / authorized_keys durante o login! Primeiro, enxure seu arquivo ~ / .ssh / authorized_keys está devidamente preenchido e suas permissões e permissões da pasta estão definidas corretamente. Se você executar "setenforce 0" no host de destino do SSH e conseguir efetuar login nesse host sem inserir uma senha, mas não conseguir fazê-lo após inserir "setenforce 1" no mesmo host de destino, o seguinte poderá corrigir o problema:

setsebool -P use_nfs_home_dirs 1

ref: link

    
por 16.01.2018 / 18:05
3

Depois de configurar o servidor NFS, devemos ativar e iniciar três serviços:

  1. nfs-server.service
  2. rpcbind.service
  3. mound.service

E também permitir esses serviços no firewall do servidor:

# firewall-cmd --permanent --add-service=nfs
# firewall-cmd --permanent --add-service=rpcbind
# firewall-cmd --permanent --add-service=mountd
# firewall-cmd --reload
    
por 11.09.2016 / 08:19