前几天飞牛OS(fnOS)被曝出了严重的安全漏洞的事情大家都知道了,各大群里、论坛引起了大量讨论和风波。

我也有个J4125飞牛小主机,但没有当主力NAS用,平时跑一些Docker服务,当个下载机、以及挂载夸克网盘用,吓得我赶快检测一下是否被感染。
0day路径穿越漏洞:
远程代码执行(RCE)链:
我没有把飞牛NAS暴露到公网上,忘记了飞牛为了便利性默认是开启了FN connect的,先关闭这个功能。

▲ 这个是官方的中继服务,默认2Mbps带宽,马上关闭。
接着在论坛上找到一个查看日志的方法,主要是检查路径穿越漏洞是否被利用SSH连接上NAS,运行命令:

▲ 查看是否有/app-center-static/serviceicon/myapp/%7B0%7D/?size=../../../../访问日志,如果是自己测试的注意看时间,没有异常访问就没事,还好没事。

▲ 然后马上更新到fnOS1.1.18,继续修复了漏洞,新增了病毒扫描功能,但是否彻底安全咱也不确定。
在官方彻底稳定之前,建议尽量在局域网内使用。但也有远程访问的需求,那么如何安全的远程访问?
方案一:异地组网工具
它不需要你有公网IP,也不需要在路由器上做复杂的端口映射。它会在你的手机/电脑和家里的NAS之间建立一个加密的虚拟局域网。

为什么安全:
方案二:路由器端搭建 VPN 服务(性能最好)
如果你的路由器性能较好(如华硕梅林、OpenWrt软路由、爱快等),建议把防线设在路由器上,而不是NAS上,这个方案需要有公网IP

方案三:lucky反代服务+ Basic Auth认证
可能有玩家觉得我使用lucky反代服务,飞牛关闭远程访问,这样是不是就安全了?
只用 Lucky 进行简单的反向代理是【不安全】的,Lucky 的核心功能是将公网的请求“转发”给内网的飞牛。漏洞绕过了飞牛自身的登录 只要你的域名能被公网访问,黑客就能攻击。

如果非要使用lucky反向代理服务,一定要开启Basic Auth认证(基础认证)功能,它是在网页打开之前,浏览器弹出的一个用户名/密码输入框。只有输入正确的账号密码,Lucky 才会把请求转发给飞牛。
飞牛NAS的这次事件给我们敲响了警钟,NAS存储这种比较私人重要的文件暴露在公网是存在风险的,尽量不要为了便利性而牺牲安全性。
那么你是如何安全的进行远程/异地访问NAS的呢?欢迎讨论。