Linux Iptables 允许 NFS 客户端访问 NFS 服务器
您需要打开以下端口:
a] TCP/UDP 111 – RPC 4.0 端口映射器
b] TCP/UDP 2049 – NFSD(nfs 服务器)
c] Portmap 静态端口– /etc/sysconfig/nfs 文件中定义的各种 TCP/UDP 端口。
配置 NFS 服务以使用固定端口
但是,NFS 和端口映射是相当复杂的协议。应该在每个主机和边界防火墙上设置防火墙,以保护 NFS 守护进程免受远程
访问,因为 NFS 服务器永远不能从组织外部访问。但是,默认情况下,端口映射器会在服务启动时动态地将每个 NFS 服务分配给一个端口。
动态端口无法受到 iptables 等端口过滤防火墙的保护。首先,需要配置 NFS 服务使用固定端口。打开 /etc/sysconfig/nfs,输入:
# vi /etc/sysconfig/nfs
修改 config 指令如下,设置 TCP/UDP 未使用的端口:
# TCP port rpc.lockd should listen on. LOCKD_TCPPORT=lockd-port-number # UDP port rpc.lockd should listen on. LOCKD_UDPPORT=lockd-port-number # Port rpc.mountd should listen on. MOUNTD_PORT=mountd-port-number # Port rquotad should listen on. RQUOTAD_PORT=rquotad-port-number # Port rpc.statd should listen on. STATD_PORT=statd-port-number # Outgoing port statd should used. The default is port is random STATD_OUTGOING_PORT=statd-outgoing-port-number
下面是我的一个生产 NFS 服务器的示例列表:
LOCKD_TCPPORT=32803 LOCKD_UDPPORT=32769 MOUNTD_PORT=892 RQUOTAD_PORT=875 STATD_PORT=662 STATD_OUTGOING_PORT=2020
保存并关闭文件。重新启动NFS 和 portmap服务:
# service portmap restart
# service nfs restart
# service rpcsvcgssd restart
更新 /etc/sysconfig/iptables 文件
打开 /etc/sysconfig/iptables,输入:
# vi /etc/sysconfig/iptables
添加以下行,确保它们出现在 RH-Firewall-1-INPUT 链的最后的 LOG 和 DROP 行之前:
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 32803 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 32769 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 892 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 892 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 875 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 875 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 662 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 662 -j ACCEP
保存并关闭文件。将 192.168.1.0/24 替换为您的实际 LAN 子网/掩码组合。您需要使用 /etc/sysconfig/nfs 配置文件定义的静态端口值。重新启动 iptables 服务:
# service iptables restart
- CentOS / Redhat:设置 NFS v4.0 文件服务器
- Debian / Ubuntu Linux:设置 NFSv4 文件服务器
- Mac Os X:挂载 NFS 共享/设置 NFS 客户端
- RHEL:如何启动和停止 NFS 服务?
- 当网络不可用时如何正确重启 Linux NFS 服务器
- Linux Iptables 允许 NFS 客户端访问 NFS 服务器
- Debian / Ubuntu Linux 禁用 / 删除所有 NFS 服务
- Linux:调整 NFS 性能
- 通过缓慢而繁忙的网络挂载 NFS 文件系统
- Linux 跟踪 NFS 目录/磁盘 I/O 统计信息
- Linux 禁用/删除所有 NFS 服务
- Linux:NFS4 挂载服务器给出的错误原因:没有此文件或目录
- Linux NFS 挂载:错误的 fs 类型、错误的选项、fs2:/data3 上的错误超级块错误和解决方案
- CentOS / RHEL CacheFS:加速网络文件系统 (NFS) 文件访问
- 提高 NFS 客户端挂载点的安全性