Chinaunix首页 | 论坛 | 博客
  • 博客访问: 288126
  • 博文数量: 68
  • 博客积分: 3061
  • 博客等级: 中校
  • 技术积分: 652
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-27 11:39
文章分类

全部博文(68)

文章存档

2018年(1)

2017年(2)

2016年(1)

2014年(2)

2012年(6)

2011年(14)

2010年(38)

2008年(4)

我的朋友

分类: LINUX

2010-09-16 15:45:08

五、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


阅读(2065) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~