如何建一个安全的个人nas?
NAS 很好用,存储了我们的所有照片、资料。但正因为它里面什么都有,一旦被攻击,反而会为数据泄露提供便利,让外部攻击者一网拿下。
所以 NAS 一直都被推荐在局域网内使用。哪怕你外部攻击者再强大,总不能拿着网线来我家吧。
不过时代在进步,NAS 同样。
越来越多的用户对互联网使用 NAS 有需求,我们不可能因噎废食,全盘否定互联网访问 NAS 的用途。
前几天我分享了关于 NAS 异地组网的用法,是我目前最推荐的外网访问 NAS 方式。但是也有小伙伴留言问我,他们只希望使用公网,那么应该如何来加强公网的网络安全。
所以今天我们来聊聊,如何简单做好公网 IP 前提下的 “网络安全”,降低我们 NAS 的互联网风险。
PS:本文以使用最多的极空间私有云为例介绍,其它 NAS 可以参照设置。
一、 如果 NAS 是房子
网络安全的核心,在于防止“坏人”通过各种途径闯进你的“房子”。我们可以围绕 公网防护、防火墙、杀毒软件和 WAF 等几个方面来做好防护。
假如,你在小区(公网)某幢买了一层楼(局域网),在同一层内,你畅行无阻。
但你回家得经过小区保安、楼幢门禁、梯控、房门钥匙等等(路由器/防火墙),外人也一样。
你觉得麻烦,自己花钱修了一个露天索道(公网 IP/DDNS),从自家直通到了小区侧门,然后美美的绕过所有安防,只留一道房门钥匙。

1. HTTPS 和 SSL 证书
DDNS 、公网 IP 带来了足够的便利,你可以从小区外面一下就回到家里。每个房间(服务)你都有单独的钥匙,想要去哪里你自己打开就行了。

这一天,你买了很多东西。从小区外面通过露天索道往家里运。
小区里里外外的人,对于你运输的东西看得一清二楚。第一个包裹是你备份的聊天记录、第二个包裹是你的照片、第三个包裹是你的隐私文件。
甚至他们还可以在窗台外伸出手,把你运上去的包裹给你来个偷天换日。
露天索道就是 HTTP ,它对传输内容毫无加密,彻底暴露的互联网,谁都可以看到。

怎么办?
聪明的你想到了给索道 (HTTP) 加一层不可视的外壳 (TLS),变成了封闭式滑梯(HTTPS),东西照样能正常上传下载,但外面的人完全看不见里面传的是什么,也没法偷偷修改,安全很多。

目前主流的网页服务均采用了 HTTPS 协议,意味着访问者可以实现端对端的加密保护。

但是你突然发现访问自己的 HTTPS 服务的时候,浏览器依旧提醒你这不是一个安全的网站。

这是因为 HTTPS 传输仅代表加密,但是不代表端对端的可信。很有可能隔壁也造了一样的滑道,然后你就把东西送别人家去了。

所以这个时候需要增加 TLS 证书 来担保,它符合告诉你,这条滑梯真的通向你家,不是骗子伪造的。
以极空间为例,官方客户端服务、转发服务均采用极空间 HTTPS 协议,并且使用了官方自签署 TLS 证书,确保你的服务高度安全。
当然,也支持我们上传自定义证书,或者自动申请续签证书。还支持将 TLS 证书导出到本地,并在其它项目上引用以保护 docker 的访问安全。

2. 防火墙 与 IP 封锁
你搞定了的封闭式滑梯之后,终于可以安全、自由地进出小区外面和家里。
但是有一天你突然发现,其它人也可以通过滑梯来到你家门口。虽然他们可能进不去,但是你的监控一直在喊:”有陌生人出入、有陌生人出入“。
于是你请了一个保安(防火墙),就让他站在你家门口,告诉他除了你指定的人可以来,别的一律赶走。

你和保安说,只有这一层的人可以随意走动,滑道上来的黄皮肤可以去旁边的厕所,其它肤色的人一律不允许进来。
这就是防火墙的规则,总结如下:
局域网内全部允许 — 国内 IP 允许指定端口 — 拒绝所有 IP
这样设置后,所有国外 IP 都被我们 Ban 掉了,然后国内只允许访问 NAS 管理前端,剩下的服务端口只有局域网内允许访问。
如果你知道你办公室的 IP,还可以增设一条办公室 IP 全部允许访问,将权限放在最前面。

有些人上来以后,保安一看:“嘿,不是房东说的坏人,那我就不管了。”
殊不知这些人就开始撬房门( NAS 管理端口),指纹锁按得飞起,一个不小心被他猜到密码,他们就进去了。

为了搞定这些非法入侵者,我们需要开 IP 封锁,常见的 黑/白名单 可以实现更有针对性的放行/拦截;而 自动封锁 IP 地址 则可以设置一定时间内登录失败次数,然后永久封锁这个非法 IP。

3. WAF 与 杀毒
当然,完事无绝对。哪怕我们做的足够安全,NAS 依旧有被成功侵入的可能性。
聪明的你想到了 2 个大绝招。
第一个是在每个房间外面又加盖了一间安检室(WAF)。针对每个房间(WEB服务)重灾区,所有想要进入房间的人,都必须先经过安检室检查。
每一个安检室黑衣人都有一套执行标准,他们会判断进来的人,到底是友人,还是路人,还是伪装的坏人(WAF规则)。

我们可以通过 NAS 自带的 docker 应用,来部署一套免费的开源 WAF —— 雷池 WAF。
通过 SSH 命令 bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh)" ,直接一键部署。
雷池 WAF 本质上就一个反代,它可以代替或者结合 Lucky、NPM 等项目使用,将局域网内的服务反代到互联网端。
任何访问的流量,都必须经过雷池 WAF 的规则过一遍。我们只需要做好 WAF 规则的定时更新即可。

第二个绝招,是你在家里养了几条安保犬 杀毒软件。
有的时候外人进入后,虽然马上就被赶了出去,但是他们会偷偷将一些垃圾(病毒/木马)丢在你的家里。
你花了几天时间,培训了这些安保犬,让它们记住了这些垃圾的味道(特征库识别)。这样它们就可以帮你发现隐藏在各个角落里的坏东西,并把它们揪出来处理掉。

一般而言,病毒查杀是支持两种模式的。极空间内置了实时防护、自动扫描。
自动扫描本质上是定时任务,它更多的用处是处理一些低危害的异常文件;而实时防护则是对新增文件进行扫描,因此对 CPU、内存的消耗更大。
如果前面做了一些防护的,这里可以不用开。如果没有做其它安全举措,那么建议还是开启实时防护。

可疑文件,经过我们自己研判,可以选择隔离、信任、删除。

特别厉害的病毒,比如勒索病毒。极空间内置有勒索病毒防护功能,它会在勒索病毒特征文件进行文件遍历和改名的时候进行主动拦截,并提供警报。

最后,为了做好数据的恢复。我还建议大家定时做一下数据快照,也算通过使用数据安全保护的角度来为网络安全兜底。

有条件的,可以对数据进行加密压缩,然后通过网盘备份实现异地、不同介质的存储。

二、其它好习惯
除了上述硬核的技术手段,良好的日常习惯同样重要。网络安全不仅仅是技术问题,更是意识问题。
除了使用 DDNS 以及官方客户端登录外,还是回到我之前提倡的异地组网工具来搭建虚拟机局域网。
在极空间的应用商城,我们可以自己安装 蒲公英 和 节点小宝 两款异地组网工具,实现端对端的私有隧道访问。
就像是给家里和办公室之间搭建了一条高空滑道。这种方式下的组网,安全性可以说是最高的。

此外,还需要及时更新 NAS 的固件、客户端、移动端版本(或者设置为自动更新)。NAS 厂家会在发现异常问题的时候,快速发布修复版本。

结语
套用网上的一句关于网络安全的梗:网络安全就像擦屁股,怎么擦都有粑,只要你觉得足够淡。
红方、蓝方永远是一个博弈的过程,技术一直在更新,没有永远安全的产品和防护手段。
所以我们要做的,就是通过一些简单的设置,将绝大多数 非针对性 的网络攻击挡在门外。只要撒网抓不到我,那就是相对安全的。