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
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.
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
Depois de configurar o servidor NFS, devemos ativar e iniciar três serviços:
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
Tags nfs file-server firewalld centos rhel