Linux Iptables配置NFS客户端来访问NFS服务器

时间:2019-11-20 08:52:54  来源:igfitidea点击:

RHEL/Fedora/CentOS Linux 5.x中,如何为NFS设置防火墙,以便允许客户端访问?

portmapper在服务启动时将每个NFS服务动态分配给一个端口。
NFS的端口号包括:

  • TCP/UDP 111 portmapper
  • TCP/UDP 2049 NFSD(nfs服务器)
  • 端口映射静态端口 在/etc/sysconfig/nfs文件中定义的各种TCP/UDP端口。

固定NFS服务器的端口号。

NFS和端口映射是相当复杂的协议。
默认情况下,端口映射程序在服务启动时将每个NFS服务动态分配给端口。
如果这时要设置防火墙,就比较麻烦。
所以,端口号必须固定。

编辑/etc/sysconfig/nfs:

# vi /etc/sysconfig/nfs

设置各个NFS服务的端口号。

# 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

示例:

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

添加以下行(放在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 662 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 662 -j ACCEP
-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 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 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --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 32803 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24  -m state --state NEW -p tcp --dport 32769 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24  -m state --state NEW -p udp --dport 32769 -j ACCEPT

重新启动iptables服务:

# service iptables restart