这两天在做服务器上的iptables,后来做到一台有NFS服务器的时候发现一个问题NFS共享挂载磁盘的时候有随机端口,这个就有点坑了,要做iptables就是要对端口和ip的访问做控制,结果端口还是随机的这怎么办,于是就上网去恶补了下NFS的知识也去查阅了大量的资料,最后总算是找到方法,好了废话不多说直接进入正题。
1、首先你要先检查下服务器上是否有安装过NFS、portmap,一般服务器上默认都有,不过还是要检查下,这里NFS服务是192.168.168.253,需要使用共享文件夹的服务器是192.168.168.254
[root@test ~]# rpm -qa | grep nfs nfs-utils-lib-1.0.8-7.6.el5 nfs-utils-1.0.9-50.el5 [root@test ~]# rpm -qa | grep portmap portmap-4.0-65.2.2.1
2、修改NFS的主要配置,共享挂载磁盘最主要就是靠这个文件了
[root@test ~]# vim /etc/exports /data/ 192.168.168.254(rw,no_root_squash,no_all_squash,sync)
这里前面的路径是本地要共享的文件夹 后面是是需要使用共享文件夹的服务器IP和一些配置参数
这些的参数可以参考此图自鸟哥的网站:
[root@test ~]# service portmap start 启动 portmap: [确定] [root@test ~]# service nfs start 启动 NFS 服务: [确定] 关掉 NFS 配额: [确定] 启动 NFS 守护进程: [确定] 启动 NFS mountd: [确定]
启动后在另外一台服务器上也开启以上2个服务后,用mount挂载共享磁盘
[root@test ~]#mount 192.168.168.253:/data/ /data/253_data/
好了文件挂载上2台服务上的文件实现共享,使用很方便,但是现在NFS服务端口还有随机的,一共有用到5个端口其中 portmapper nfs 的服务端口是固定的 111 2049,另外 rquotad nlockmgr mountd 这3个服务端口是随机的,这样让我们的iptables无法设置,所以这时就要配置/etc/sysconfig/nfs文件使rquotad nlockmgr mountd这3个服务端口固定
[root@test ~]# vim /etc/sysconfig/nfs # Port rquotad should listen on. RQUOTAD_PORT=875 # TCP port rpc.lockd should listen on. LOCKD_TCPPORT=32803 # UDP port rpc.lockd should listen on. LOCKD_UDPPORT=32769 # Port rpc.mountd should listen on. MOUNTD_PORT=892
以上4项,把#注释去掉来固定4个端口号,最后在重启下nfs服务
[root@test ~]# service nfs restart
ok,如此NFS服务器的端口就被固定了,可以通过查看程序的协议连接
[root@test ~]# rpcinfo -p localhost 程序 版本 协议 端口 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100011 1 udp 875 rquotad 100011 2 udp 875 rquotad 100011 1 tcp 875 rquotad 100011 2 tcp 875 rquotad 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100021 1 udp 32769 nlockmgr 100021 3 udp 32769 nlockmgr 100021 4 udp 32769 nlockmgr 100021 1 tcp 32803 nlockmgr 100021 3 tcp 32803 nlockmgr 100021 4 tcp 32803 nlockmgr 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100005 1 udp 892 mountd 100005 1 tcp 892 mountd 100005 2 udp 892 mountd 100005 2 tcp 892 mountd 100005 3 udp 892 mountd 100005 3 tcp 892 mountd
如此就固定了NFS服务器的端口
3、需要在iptables上开放的端口
[root@test ~]# vim /etc/sysconfig/iptables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -s 192.168.168.0/24 -d 192.168.168.254 -p icmp -j ACCEPT -A INPUT -s 192.168.168.0/24 -d 192.168.168.254 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp -m multiport --dports 111,875,892,2049,32769,32803 -j ACCEPT -A INPUT -p udp -m state --state NEW -m udp -m multiport --dports 111,875,892,2049,32769,32803 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
开启111、875、892、2049、3269、32803这几个端口
[root@test ~]# service iptables restart
ok就搞定了
本文出自 “技术随笔” 博客,请务必保留此出处http://jim123.blog.51cto.com/4763600/1831830
原文:http://jim123.blog.51cto.com/4763600/1831830