数据安全谈:看 NFS网络文件系统的安全 | |
NFS是网络文件系统(Network File System)的简称,是分布式计算系统的一个组成部分,可实现在异种网络上共享和装配远程文件系统。NFS由Sun公司开发,目前已经成为文件服务的一种标准(RFC1904,RFC1813)。其最大的功能就是可让不同操作系统的计算机共享数据,所以也可以将它看做是一个文件服务器。NFS提供了除SAMBA之外,Windows与Linux、Unix与Linux之间通信的方法。 任何网络服务器都会有安全问题,NFS也不例外。由于设计方面的因素,NFS服务器不可能绝对安全。一般来说,不应该将NFS服务器运行在比较敏感的系统或者只有一般防火墙的机器上,应该尽量将其置于防火墙之后。配置安全的NFS服务器,可以从限制RCP服务的访问和控制文件系统的导出权限两方面着手。 NFS面临的安全隐患 因为NFS在网络上明文传输所有信息,按照默认设置,NFS共享把根用户改成用户nfsnobody,它是一个不具备特权的用户账号。这样,所有根用户创建的文件都会被用户nfsnobody所有,从而防止了设置setuid的程序被上传到系统。如果使用了no_root_squash,远程用户就能够改变共享文件系统上的任何文件,把设置了特洛伊木马的程序留给其他用户,在无意中执行。 NFS服务器安全策略 (1)使用TCP_Wrappers portmap和rpc.nfsd结合起来,使NFS服务器上的文件即使没有任何权限也能容易得到。可以使用访问控制保障网络安全,在使用NFS时最好结合TCP_Wrappers来限制使用范围。 (2)注意配置文件语法错误 NFS服务器通过/etc/exports文件来决定要导出哪些文件系统,以及把这些目录导出到哪些主机上。编辑这个文件的时候要特别小心,不要添加额外的空格。 例如:/etc/exports文件的以下行会使主机bob.example.com 能够共享/tmp/nfs/目录。 /tmp/nfs/ bob.example.com(rw) 但是 /etc/exports 文件中这一行的情况却不同。它共享同一目录,让主机 bob.example.com 拥有只读权限,却给全局以读写权限。这全是由主机后面的一个空格造成的。 /tmp/nfs/ bob.example.com (rw) 使用 showmount 命令来校验哪些目录被共享,从而检查NFS共享配置是一个好习惯。showmount格式为: showmount -e (3)使用iptables防火墙 因为NFS在网络上明文传输所有信息,所以让NFS服务器在防火墙后、在一个分段的安全网络上运行就很重要。无论何时在不安全的网络上传递NFS信息都有被截取的危险。从这个角度讲,谨慎制定网络计划就有助于防御重要的安全破坏。限制RCP服务访问的办法一般是使用防火墙,除了TCP-Wrapper还有ipchians和iptalbes的防火墙。在全面使用Linux 2.4或更高版本内核的今天,了解iptables这种防火墙方法也就足够了。 缺省的状态下,portmap使用111端口,而NFS使用2049端口,可以通过iptables来限制对该端口的访问: iptables -t filter -A INPUT -p udp -d 127.0.0.1 --dport 111 -j DROP iptables -t filter -A INPUT -p udp -d 127.0.0.1 --dport 2049 -j DROP iptables -t filter -A INPUT -p udp -s trusted_client -d this_server_ip --dport \2049 -j ACCEPTiptables -t filter -A INPUT -p udp -s not_trusted_client -d this_server_ip -dport \2049 -j DROP | |
相关链接: (无) 面向省市区: 全国 面向市区县: 全部 最后更新: 2023-08-07 14:08:20 | 发 布 者: Dylan 联系电话: (无) 电子邮箱: (无) 浏览次数: 67 |