如何确保NFS服务安全 操作系统

如何确保NFS服务安全

上一篇博文《Redhat设置NFS挂载的简单步骤》,其中摘录了一段nfs中fuser的使用,索性将其全部发出,以供参考。 对于NFS的安全问题,我们是不能掉以轻心的。那么我们如何确保它的安全呢?这里我们首先我们需要分析一下它的不安全性。看看在那些方面体现了它的不安全。NFS服务安全性分析:不安全性主要体现于以下4个方面: 1、新手对NFS的访问控制机制难于做到得心应手,控制目标的精确性难以实现 2、NFS没有真正的用户验证机制,而只有对RPC/Mount请求的过程验证机制 3、较早的NFS可以使未授权用户获得有效的文件句柄 4、在RPC远程调用中,一个SUID的程序就具有超级用户权限. 加强NFS服务安全的方法: 1、合理的设定/etc/exports**享出去的目录,最好能使用 anonuid,anongid以使MOUNT到NFS SERVER的CLIENT仅仅有最小的权限,最好不要使用root_squash. 2、使用IPTABLE防火墙限制能够连接到NFS SERVER的机器范围 3、为了防止可能的Dos攻击,需要合理设定NFSD 的COPY数目. 4、修改/etc/hosts.allow和/etc /hosts.deny达到限制CLIENT的目的 5、改变默认的NFS 端口 NFS默认使用的是111端口,但同时你也可以使用port参数来改变这个端口,这样就可以在一定程度上增强安全性. 6、使用Kerberos V5作为登陆验证系统 修改/etc/hosts.allow和/etc/hosts.deny达到限制CLIENT的目的 这个NFS服务安全得多注意!! /tmp *(rw,no_root_squash) no_root_squash:登入到NFS主机的用户如果是ROOT用户,他就拥有ROOT的权限,此参数很不安全,建议不要使用. 有时需要执行umont卸载nfs盘阵时,会遇见device is busy的情况,字面意思理解为设备忙,有其他进程正在使用此设备. 此时需要用到命令fuser 其格式为: $ fuser -m -v  (nfs挂载点) 回车执行后得到的结果依次是:用户 进程号 权限 命令 此命令可以查看到访问此设备的所有进程,停止进程后umount. 如果添加参数 -k则可以一次性将所有当前访问nfs共享盘阵的进程停止 也可以加-i 打开交互显示,以便用户确认 或者用fuser命令: #fuser -v -m 挂载点 即可查处 用户 PID等,KILL掉该进程后再umount. 或者 #umount -l 挂载点 选项 –l 并不是马上umount,而是在该目录空闲后再umount.还可以先用命令 ps aux 来查看占用设备的程序PID,然后用命令kill来杀死占用设备的进程,这样就umount的NFS服务安全非常放心了. 注:本文来自网络,作者:佚名
阅读全文
Redhat设置NFS挂载的简单步骤 操作系统

Redhat设置NFS挂载的简单步骤

初识nfs还是在测试lvs负载均衡的时候,为了保证代码的一致性,将一台Realserver作为nfs服务器,而其他Realserver均以nfs将代码挂载过来。这样就保证了代码的一致性,但也是由很大隐患的,一旦那台Realserver宕机,那就全军覆没了...好了,废话不多说,进入nfs挂载简单步骤。 一、安装nfs 一般redhat是默认安装了nfs服务的,如果非默认安装且取消勾选nfs的话,需要挂载iso或下载安装包手动安装,就几个rpm包,就不多说了。 二、配置/etc/exports nfs允许挂载的目录及权限需在文件/etc/exports中进行定义。例如,我们要将代码所在目录/www/code共享出来,那么我们需要编辑/etc/exports文件,追加一行: 其中: /www/code是要共享的目录; * 代表允许所有的网络段访问(仅测试中使用,实际使用应该做严格的IP限制); rw开启共享目录的可读写权限; sync是资料同步写入内存和硬盘; no_root_squash是客户端分享目录使用者的权限,如果客户端使用root,那对于该共享目录而言,客户端就有root权限; 其他更多参数说明: 三、启动nfs服务 在启动nfs之前需要先启动portmap服务,否则如下报错: 正确方法先启动portmap再启动nfs,如下: 或 四、在客户端主机上挂载共享目录 1、挂载之前同样需要先启动portmap服务(同上); 2、在客户端使用showmount -e 查看nfs主机共享情况: 3、在客户端建立code文件夹(名称需相同,路径可以不同),并使用mount挂载命令: 注意事项:千万不要学博主,测试时误使用了 mount -t nfs 192.168.1.100:/www/code  /www/,导致原先/www目录内容全部被卸下,就算重新mount -o loop 也是很麻烦的!所以强烈建议路径保持一致! 4、若无报错,则可使用df -h 查看到挂载情况: 5、若是需要长期使用,则可以设置开机自动挂载,将相关服务设置为自启动,并将挂载命令也加入开机启动即可(略) 五、在客户端卸载已挂载的目录 1、常规卸载命令: 2、有时因为nfs主机或网络故障,会出现常规卸载提示device is busy的提示,此时强制卸载命令如下: 或 3、上述卸载命令均无法生效时,请继续往下看: 以下摘自网络: fuser通常被用在诊断系统的“resource busy”问题,通常是在你希望umount指定的挂载点得时候遇到。 如果你希望kill所有正在使用某一指定的file, file system or sockets的进程的时候,你可以使用-k 选项。 格式为: $ fuser -m -v  (nfs挂载点) 回车执行后得到的结果依次是:用户 进程号 权限 命令 此命令可以查看到访问此设备的所有进程,停止进程后umount. 如果添加参数 -k则可以一次性将所有当前访问nfs共享盘阵的进程停止 也可以加-i 打开交互显示,以便用户确认 或者用fuser命令: #fuser -v -m 挂载点 即可查处 用户 PID等,KILL掉该进程后再umount. 或者 #umount -l 挂载点 选项 –l 并不是马上umount,而是在该目录空闲后再umount.还可以先用命令 ps aux 来查看占用设备的程序PID,然后用命令kill来杀死占用设备的进程,这样就umount的NFS服务安全非常放心了.   好了,以上就是redhat下的简单设置,也是博主自己用的步骤,适合初次使用nfs的筒子参考,希望对你有所帮助!
阅读全文