linux NFS服务安全加固实例分享

发布时间 - 2018-02-24 00:00:00    点击率:

nfs(network file system)是 freebsd 支持的一种文件系统,它允许网络中的计算机之间通过 tcp/ip 网络共享资源。不正确的配置和使用 nfs,会带来安全问题。

概述

NFS 的不安全性,主要体现于以下 4 个方面:

  • 缺少访问控制机制

  • 没有真正的用户验证机制,只针对 RPC/Mount 请求进行过程验证

  • 较早版本的 NFS 可以使未授权用户获得有效的文件句柄

  • 在 RPC 远程调用中, SUID 程序具有超级用户权限

加固方案

为有效应对以上安全隐患,推荐您使用下述加固方案。

配置共享目录(/etc/exports)

使用 anonuid,anongid 配置共享目录,这样可以使挂载到 NFS 服务器的客户机仅具有最小权限。不要使用 no_root_squash。

使用网络访问控制

使用 安全组策略 或 iptable 防火墙限制能够连接到 NFS 服务器的机器范围。


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

账号验证
使用 Kerberos V5 作为登录验证系统,要求所有访问人员使用账号登录,提高安全性。

设置 NFSD 的 COPY 数目

在 Linux 中,NFSD 的 COPY 数目定义在启动文件 /etc/rc.d/init.d/nfs 中,默认值为 8。

最佳的 COPY 数目一般取决于可能的客户机数目。您可以通过测试来找到 COPY 数目的近似最佳值,并手动设置该参数。

选择传输协议

对于不同的网络情况,有针对地选择 UDP 或 TCP 传输协议。传输协议可以自动选择,也可以手动设置。

mount -t nfs -o sync,tcp,noatime,rsize=1024,wsize=1024 EXPORT_MACHINE:/EXPORTED_DIR /DIR

UDP 协议传输速度快,非连接传输时便捷,但其传输稳定性不如 TCP,当网络不稳定或者黑客入侵时很容易使 NFS 性能大幅降低,甚至导致网络瘫痪。一般情况下,使用 TCP 的 NFS 比较稳定,使用 UDP 的 NFS 速度较快。

  • 在机器较少,网络状况较好的情况下,使用 UDP 协议能带来较好的性能。

  • 当机器较多,网络情况复杂时,推荐使用 TCP 协议(V2 只支持 UDP 协议)。

  • 在局域网中使用 UDP 协议较好,因为局域网有比较稳定的网络保证,使用 UDP 可以带来更好的性能。

  • 在广域网中推荐使用 TCP 协议,TCP 协议能让 NFS 在复杂的网络环境中保持最好的传输稳定性。

限制客户机数量

修改 /etc/hosts.allow /etc /hosts.deny 来限制客户机数量。

/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 参数可以改变这个端口值。改变默认端口值能够在一定程度上增强安全性。

配置 nosuid 和 noexec
SUID (Set User ID) 或 SGID (Set Group ID) 程序可以让普通用户以超过自己权限来执行。很多 SUID/SGID 可执行程序是必须的,但也可能被一些恶意的本地用户利用,获取本不应有的权限。

尽量减少所有者是 root,或是在 root 组中却拥有 SUID/SGID 属性的文件。您可以删除这样的文件或更改其属性,如:

使用 nosuid 选项禁止 set-UID 程序在 NFS 服务器上运行,可以在 /etc/exports 加入一行:

/www www.abc.com(rw, root_squash, nosuid)

使用 noexec 禁止直接执行其中的二进制文件。

相关推荐:

什么是NFS?分享在CentOS7上实现NFS共享

Linux中ftp、nfs、ssh服务器搭建

NFS服务简介及使用方法


# linux  # 较好  # 推荐使用  # 您可以  # 传输协议  # 的是  # 访问控制  # 网中  # 是在  # 最好的  # 句柄 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 三星网站视频制作教程下载,三星w23网页如何全屏?  使用Dockerfile构建java web环境  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  详解Android图表 MPAndroidChart折线图  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  高防服务器如何保障网站安全无虞?  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  微信小程序 wx.uploadFile无法上传解决办法  ,网页ppt怎么弄成自己的ppt?  网站建设要注意的标准 促进网站用户好感度!  MySQL查询结果复制到新表的方法(更新、插入)  b2c电商网站制作流程,b2c水平综合的电商平台?  javascript中对象的定义、使用以及对象和原型链操作小结  免费视频制作网站,更新又快又好的免费电影网站?  如何注册花生壳免费域名并搭建个人网站?  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  如何安全更换建站之星模板并保留数据?  JS中对数组元素进行增删改移的方法总结  高端建站三要素:定制模板、企业官网与响应式设计优化  iOS发送验证码倒计时应用  如何在建站之星网店版论坛获取技术支持?  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  如何快速选择适合个人网站的云服务器配置?  Android自定义listview布局实现上拉加载下拉刷新功能  Python面向对象测试方法_mock解析【教程】  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  WordPress 子目录安装中正确处理脚本路径的完整指南  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  奇安信“盘古石”团队突破 iOS 26.1 提权  Laravel如何创建自定义Artisan命令?(代码示例)  如何在万网利用已有域名快速建站?  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  如何在宝塔面板中修改默认建站目录?  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  PHP正则匹配日期和时间(时间戳转换)的实例代码  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  Python制作简易注册登录系统  Laravel如何使用查询构建器?(Query Builder高级用法)  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  大学网站设计制作软件有哪些,如何将网站制作成自己app?  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析