Centos

NFS 伺服器和防火牆

  • March 29, 2022

我還沒有找到關於這個的灌籃文件,所以讓我們開始吧。

在 CentOS 7.1 主機上,我已經完成了 linuxconfig HOW-TO,包括firewall-cmd條目,並且我有一個可導出的文件系統。

[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

但是,如果我showmount來自客戶端,我仍然有問題。

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

現在,我如何確定這是防火牆問題?簡單的。關閉防火牆。伺服器端:

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

和客戶端:

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

重啟防火牆。伺服器端:

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

和客戶端:

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

所以,讓我們去鎮上,通過調整來自 RHEL 6 NFS 伺服器的 iptables 命令 HOW-TO

[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: 

這一次,我從客戶端收到一條略有不同的錯誤消息:

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

所以,我知道我走在正確的軌道上。話雖如此,為什麼我在任何地方都找不到關於此的權威教程?我不可能是第一個必須弄清楚這一點的人!

firewall-cmd我缺少哪些條目?

哦,還有一個注意事項。/etc/sysconfig/nfs到目前為止,我在 CentOS 6 客戶端和 CentOS 7 伺服器上的文件未修改。如果可能的話,我寧願不必更改(和維護!)它們。

這應該足夠了:

firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload

配置 NFS 伺服器後,我們應該啟用並啟動三個服務:

  1. nfs-server.service
  2. rpcbind.service
  3. nfs-mountd.service(只需要啟動)

並且還允許在伺服器防火牆上提供這些服務:

# firewall-cmd --permanent --add-service=nfs
# firewall-cmd --permanent --add-service=rpcbind
# firewall-cmd --permanent --add-service=mountd
# firewall-cmd --reload

引用自:https://unix.stackexchange.com/questions/243756