NFS Server端的防火墙控制
真正企业生产环境的存储服务器都属于内网环境,都无需防火墙,因此,此处可以不配置,如果要配置的话就有两种方法:
方法一:
1. 仅允许IP段访问
iptables -AINPUT -s 192.168.221.1/24 -j ACCEPT
2. 允许IP段加端口访问
iptables -AINPUT -i ech1 -p tcp -s 192.168.221.1/24 --dport 111 -j ACCEPT
iptables -AINPUT -i ech1 -p udp -s 192.168.221.1/24 --dport 111 -j ACCEPT
iptables -AINPUT -i ech1 -p tcp -s 192.168.221.1/24 --dport 2049 -j ACCEPT
iptables -AINPUT -i ech1 -p tcp -s 192.168.221.1/24 --dport 2049 -j ACCEPT
iptables -AINPUT -i ech1 -p udp -s 192.168.221.1/24 -j ACCEPT
方法二:
在Linux系统中,我们也会常遇到NFS的设置。针对这方面,我们这次主要讲解一下Linux NFS的端口配置。看看如何设置可以调节好防火墙和端口的设置。
配置NFS端口参数。
(1)NFS静态端口参数文件:
可以在/etc/sysconfig/nfs文件中设定NFS服务的一些静态端口。而/etc/sysconfig/目录下的文件都是为服务传递参数的文件,因此可以在/etc/sysconfig/nfs中给NFS服务定义一些静态端口,这样就可以方便防火墙的设定控制了。
注意:默认情况下,/etc/sysconfig/nfs这个文件不存在,需要手动建立。在其中需要为以下进程进行设定静态端口。
----------------------------------------------------------------------
rpc.lockd (TCP) ----> LOCKD_TCPPORT
rpc.lockd (UDP) ----> LOCKD_UDPPORT
rpc.mountd (TCP)----> MOUNTD_PORT
rpc.statd (TCP) ----> STATD_PORT
----------------------------------------------------------------------
以上是这些进程所对应的端口参数变量。
(2)设定NFS端口参数文件。
[[email protected] ~]# cat >> /etc/sysconfig/nfs << EOF ---------------------------------------------------------------------- > LOCKD_TCPPORT=4001 > LOCKD_UDPPORT=4001 > MOUNTD_PORT=4002 > STATD_PORT=4003 > EOF ----------------------------------------------------------------------
注意:这些端口必须是/etc/services未被定义过的端口。
查看:
[[email protected] ~]# cat/etc/sysconfig/nfs LOCKD_TCPPORT=4001 LOCKD_UDPPORT=4001 MOUNTD_PORT=4002 STATD_PORT=4003
----------------------------------------------------------------------
确定完毕。
4.重新启动NFS服务:
[[email protected] ~]# etc/init.d/nfs restart ---------------------------------------------------------------------- Shutting down NFS mountd: [ OK ] Shutting down NFS daemon: [ OK ] Shutting down NFS quotas: [ OK ] Shutting down NFS services: [ OK ] Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS daemon: [ OK ] Starting NFS mountd: [ OK ] ----------------------------------------------------------------------
5.重新查看相关端口:
[[email protected] ~]# rpcinfo -p ---------------------------------------------------------------------- program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 1000 status <---不是4003还是1000 100024 1 tcp 1003 status <---不是4003还是1000 100011 1 udp 987 rquotad 100011 2 udp 987 rquotad 100011 1 tcp 990 rquotad 100011 2 tcp 990 rquotad 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100021 1 udp 4004 nlockmgr 100021 3 udp 4004 nlockmgr 100021 4 udp 4004 nlockmgr 100021 1 tcp 4004 nlockmgr 100021 3 tcp 4004 nlockmgr 100021 4 tcp 4004 nlockmgr 100005 1 udp 4002 mountd 100005 1 tcp 4002 mountd 100005 2 udp 4002 mountd 100005 2 tcp 4002 mountd 100005 3 udp 4002 mountd 100005 3 tcp 4002 mountd ----------------------------------------------------------------------
这样的话,NFS的端口就规范了很多。就可以用Iptables来修改防火墙。
另外,这里的status端口仍然是1000和1003,并没有改变成4003。
其实这个问题要系统重新启动后才会生效
[[email protected] ~]# rpcinfo -p ---------------------------------------------------------------------- program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 4003 status <---已经是4003了 100024 1 tcp 4003 status <---已经是4003了 100011 1 udp 915 rquotad 100011 2 udp 915 rquotad 100011 1 tcp 918 rquotad 100011 2 tcp 918 rquotad 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100021 1 udp 4004 nlockmgr 100021 3 udp 4004 nlockmgr 100021 4 udp 4004 nlockmgr 100021 1 tcp 4004 nlockmgr 100021 3 tcp 4004 nlockmgr 100021 4 tcp 4004 nlockmgr 100005 1 udp 4002 mountd 100005 1 tcp 4002 mountd 100005 2 udp 4002 mountd 100005 2 tcp 4002 mountd 100005 3 udp 4002 mountd 100005 3 tcp 4002 mountd ----------------------------------------------------------------------
这个问题要重新后才能解决。
6.编辑Iptables:
(1)确认Iptables的运行。
[[email protected] ~]#/etc/init.d/iptables status
----------------------------------------------------------------------
Table: filter
----------------------------------------------------------------------
说明Iptable目前生效,并且定义了Filter这个过滤表。
7.此时rpc相关端口已经被固定,可以为Linux NFS添加防火墙规则
[[email protected] ~]# iptables -I INPUT 1 -p tcp --dport111 -j ACCEPT [[email protected] ~]# iptables -I INPUT 1 -p udp --dport111 -j ACCEPT [[email protected] ~]# iptables -I INPUT 1 -p tcp --dport2049 -j ACCEPT [[email protected] ~]# iptables -I INPUT 1 -p udp --dport2049 -j ACCEPT [[email protected] ~]# iptables -I INPUT 1 -p tcp --dport4001:4003 -j ACCEPT [[email protected] ~]# iptables -I INPUT 1 -p udp --dport4001:4003 -j ACCEPT
8.保存防火墙
[[email protected] ~]#/etc/init.d/iptables save iptables: Savingfirewall rules to /etc/sysconfig/iptables:[ OK ]
9. 用客户端连接NFS服务端的共享
[[email protected] ~]# showmount -e 192.168.221.130 Export list for 192.168.221.130: /data/bbs 192.168.221.1/24
出现该条说明,防火墙已经开放了NFS了。说明防火墙已经设定成功了。