我们的张三同学自从上一期知道了男人的三大玩具之一NAS后,也想搞一台自己的NAS,于是废寝忘食,经过不懈努力,终于搭建好了自己人生中的第一台NAS。
上一期讲了NAS如何实现远程访问,评论区很多朋友也提出了自己的方案和建议,对文章内容进行了优化和完善。
文中提到的所有方案本质都是在将NAS的数据通过公网进行传输,那么这个过程必然就存在着风险,只是暴露风险等级不同,所以非常有必要对NAS的安全基线进行加固。
本期接上期的序章,就以群晖NAS为例,继续给张三同学讲讲NAS的安全性保障问题。
1. 非活动时间关机

如果NAS上没有跑什么重要的不间断服务,可以根据自己的作息时间,设置夜间自动关机,早上自动开机。
这样可以有效降低黑阔攻击的风险(尤其是歪果黑阔,俺们晚上人家白天,一睡觉他就要开始搞事情了),还能节省电费、延长机器寿命,另一方面还可以减少睡眠期间带来的噪音干扰,让张三同学睡得更香。

2. 配置SSL证书,开启HTTPS访问

因为涉及公网传输,信道是否安全是一个大问题,通过配置SSL证书,可以对数据包进行加密,防止中间人攻击,以保证流量的安全性。

尤其是DDNS方案,从你输入账号密码登录NAS的那一刻,如果没有对数据包进行加密就开始传输,那么你输入的密码、查看和下载的文件、系统的配置等等,将全部在整个信道内裸奔,任何可以从这个信道中截获数据包的人都可以看到这些内容。
可能有些朋友对上面的说法感受的不是很具体,那我举个荔枝,讲个小故事:
张三看了这篇文章不信邪,他说哪有辣么多的毛病,坚决不给自己的NAS配置SSL证书。然后某一天下班,他开开心心的去天龙网吧包夜上网,半夜的时候突然想起了自己的NAS中还有很多学习资料,于是趁着夜深人静悄悄地远程登录了NAS...。但是很不巧的是,刚好上一个在这台机子上上网的是个物理黑阔,他上完网后顺手在这个机子后面接了个神秘的工具,可以对这台机子上的流量进行镜像复制,而这次张三的NAS密码也被截获了,于是张三的学习资料被疯狂外传,知道这件事情后的张三流下了悔恨的泪水,发誓再也不会给NAS不装SSL证书了...

另外,对于异地组网方案,如果打洞失败,流量会进行中转,这个过程也有可能会存在中间人对已经失陷的节点流量进行截获。
3. 开启防火墙
这里防火墙分为两种——路由器防火墙、NAS防火墙
(张三挠头ing.png)
路由器防火墙
主要是对入站的流量进行拦截,因为开通了远程访问,则需要严格对进入NAS的流量进行控制。
这里还需要补充一点,如果是爱快路由器,一定要去安全设置-ACL规则中,开启防火墙,因为爱快默认是果奔的~!

我这里设置了拦截IPv6流量入站
NAS防火墙
对于路由器不能自定义防火墙规则的,可以直接在NAS中设置,效果都是一样的。只不过NAS防火墙相当于第二道安全门,可以有效防止攻击进入到内网阶段时NAS直接失陷。

这里防火墙最上面的规则优先级更高
这里我主要设置了两条规则:
- 一条是拒绝来自所有IP所有端口的流量进入NAS
- 另一条是优先级更高的——允许本地IP 192.168.1.0网络的IP进行访问
这里解释一下:因为我是用的是tailscale异地组网方案,远程访问群晖时,我们可以在日志中发现源IP是NAS本身,这个是由tailscale本身的特性和设置决定的,可以通过设置显示为源设备的IP,这个时候就要设置为tailscale网络中的可信设备IP了。另外如果没有使用这个方案,那就要根据需求来设置。
4. 账号防爆破
这是黑阔们最爱的也是最简单的公鸡手段,黑阔们通常会把一些泄露的密码库存下来,然后把网民们常用的密码按频次排个序,再把这些密码拿到张三的NAS上面去一个个尝试,这叫做密码爆破,然后因为张三不听劝总是喜欢设置一些简单的密码,这次又被攻陷了...
然后黑阔拿着张三的这个密码,又成功登录了张三的支付宝,这叫做 装酷 (撞库),但是发现张三太穷了,支付宝余额居然个位数,于是黑阔气鼓鼓地注销了张三的支付宝账号...
所以张三同学不得不去下面这个界面打开账号防爆破功能:

然后还开启了登录尝试失败次数过多,自动封锁IP的功能:

同时他还发现这里有个防DDoS的功能,也顺便一起打开了。
5. 双因子验证
因为支付宝账号被黑阔注销了,导致张三女朋友收不了他蚂蚁森林的能量,于是一气之下跟他分手了,张三这次可狠狠的记住了教训,于是再三要求还要设置一些账号安全功能,于是他打开了账户双因子验证(2FA, Two Factor Authentication),通过密码登录成功后,还需要输入动态密码口令进行验证,这样就算被撞库也不怕辣。
这个功能需要有2FA软件的支持:
- 谷歌身份验证器Google Authenticator
- 微软身份验证器Microsoft Authenticator
- 腾讯身份验证器
- 1Password
- BitWarden
- ...

6. 关闭SSH、FTP、TELNET等不必要的服务
张三同学也一样喜欢瞎搞折腾,所以上回在网上看到个教程说开启SSH可以设置个什么东西,但是搞完后又搞忘了关了,然后很不幸,又被黑阔攻击了...,所以张三同学提醒大家,一定要把这些不必要的服务给及时关闭掉。

7. 设置异常事件通知
张三说这个操作更骚,墙裂推荐给大家,虽然到此为止做了这么多防护,但是都是事先防护,每次做了辣么多工作,结果最后还是沦陷了,所以他要下决心设置一个功能——当出现安全事件时及时发邮件提醒。
首先在通知设置中配置好邮件服务器,并发送一封邮件进行测试:

然后,可以在规则中设置哪些事件发生后,会通过邮件通知。
日志中心也可以设置一些通知规则:每秒日志数、日志等级、日志关键词,同样都会进行报警:

8. 配备UPS
张三做好以上的设置后,以为自己可以高枕无忧了,结果倒霉的张三又遇到了停电,突然的断电导致硬盘中的数据像灭霸一样随机丢失了一部分,重要的都不是丢失问题了,而是张三根本不知道哪些文件丢失了~!可恨!
于是张三入手了一款UPS不间断电源,UPS串联在电源和NAS之间,平时UPS就默默的什么话也不说,然而在设备突然断电后,UPS就会以毫秒级别的速度,及时将电源补充上。
平时UPS不工作,可是一到关键时刻就能够保命!张三力荐!
9. 其他
- 及时更新系统补丁
- 物理安全:配备机柜,确保环境温湿度处于合适区间,并防止意外物理损害
- 禁用guest、admin等默认账号
- 延长日志留存周期,以供安全事件发生时开展溯源
- 设置高强度密码:12位以上大小写字母+数据+特殊字符组合
- 合理的权限分配(可能还会给家人分配NAS账号,遵循最小权限原则)
10. 数据备份(3-2-1原则)
这些方法都是在环境本身做文章,保证NAS的运行和数据安全,然而没有万无一失的安全策略,还必须要有一个兜底的法子——数据备份,这样无论是数据完整性、还是数据可用性受到破坏,都可以及时进行恢复。后续我将继续再出一篇以群晖为例的NAS数据备份策略文章。