NFS服务器安全的分析和解决


NFS服务器的安全问题我们在下面来为大家详细介绍一下。首先我们需要对NFS服务器的安全所涉及的方面做一个了解。那么我们为大家仔细总结了一下。

1、NFS服务器不安全体现在以下几个方面 

第一点:新手对NFS的访问控制机制难于做到得心应手,控制目标的精确性难以实现

第二点:NFS没有真正的用户验证机制,而只有对RPC/Mount请求的过程验证机制

第三点:较早的NFS可以使未授权用户获得有效的文件句柄

第四点:在RPC远程调用中,一个SUID的程序就具有超级用户权限

2、加强NFS服务器安全的方法如下

第一:合理的设定/etc/exports中共享出去的目录,最好能使用anonuidanongid以使MOUNTNFS SERVERCLIENT仅仅有最小的权限,最好不要使用root_squash

第二:使用IPTABLE防火墙限制能够连接到NFS SERVER的机器范围
iptables -A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p UDP -s 192.168.0.0/24 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p TCP -s 140.0.0.0/8 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p UDP -s 140.0.0.0/8 --dport 111 -j ACCEPT

第三:为了防止可能的Dos攻击,需要合理设定NFSD COPY数目

第四:修改/etc/hosts.allow/etc/hosts.deny达到限制CLIENT的目的
/etc/hosts.allow
portmap: 192.168.0.0/255.255.255.0 : allow
portmap: 140.116.44.125 : allow
/etc/hosts.deny
portmap: ALL : deny

第五:改变默认的NFS 端口
NFS
默认使用的是111端口,但同时你也可以使用port参数来改变这个端口,这样就可以在一定程度上增强安全性

第六:使用Kerberos V5作为登陆验证系统

四、NFS服务器的trouble shooting 

常见错误

1)权限的设置不符合

 

2)忘记了激活portmap服务

错误信息

mount: RPC: Port mapper failure - RPC: Unable to receive mount: RPC: Program not registered

解决办法

启动portmap,并且重新启动nfs
#service portmap start
#service nfs restart

3)被防火墙拦截

重新设置防火墙,包括iptablesTCP_Wrappers,因为激活了portmap,所以port 111必须提供出去.因此在iptables rules中,要增加:
iptables -A INPUT -p TCP --dport 111 -j ACCEPT
iptables -A INPUT -p UDP --dport 111 -j ACCEPT

如果还不行,那就是TCP_Wrappers的问题,检查/etc/hosts.deny,如果有一行是:
  ALL: ALL: deny
那就必须在/etc/hosts.allow中增加:
  portmap: ALL: allow

如果我们的NFS针对内部网络开发,对于外部网络只对学术网络开发(140.0.0.0/8),可以:
iptables -A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p UDP -s 192.168.0.0/24 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p TCP -s 140.0.0.0/8 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p UDP -s 140.0.0.0/8 --dport 111 -j ACCEPT

还可以使用TCP_Wrappers,在/etc/hosts.allow里面规定连上 NFS 主机的主机 IP 与名称,例如
#vi /.etc/hosts.allow
portmap: 192.168.0.0/255.255.255.0 :allow
portmap: 140.113.23.23     :allow

4cant contact portmapper: RPC: Remote system error - Connection refused

出现这个错误信息是由于SEVER端的PORTMAP没有启动

5mount clntudp_create: RPC: Program not registered

NFS没有启动起来,可以用showmout -e host命令来检查NFS SERVER是否正常启动起来

6mount: localhost:/home/test failed, reason given by server: Permission denied

这个提示是当clientmount nfs server时可能出现的提示,意思是说本机没有权限去mount nfs server上的目录。解决方法当然是去修改NFS SERVER

五、注意事项

1)NFS Server关机时,如果还有NFS Client联机在线,那么建议NFS Server关机之前,要先关掉portmap与nfs这两个系统服务。如果无法正确地将这两个系统服务关掉,那么先以netstat -utlp找出PID,然后使用kill杀掉进程,这样才能正常关机

2)如果要在Windows系统中使用NFS共享目录,需要使用 Omini Lite 软件

3)如果要在Windows系统中访问NFS服务器所共享出来的目录,需要使用 SFU软件

相关内容