Linux Iptables允许NFS客户端访问NFS服务器
时间:2020-01-09 10:34:12 来源:igfitidea点击:
端口映射器在服务启动时将每个NFS服务动态分配给一个端口。
如何允许合法的NFS客户端使用RHEL/Fedora/CentOS Linux 5.x iptables防火墙访问NFS服务器?
您需要打开以下端口:
"TCP/UDP 111 "RPC 4.0 portmapper
" TCP/UDP 2049" NFSD(nfs服务器)
"端口映射静态端口"在/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子网/mask组合。
您需要使用/etc/sysconfig/nfs配置文件定义的静态端口值。
重新启动iptables服务:
# service iptables restart