关于群晖安全我唠叨两句
为啥要唠叨?
以前看张大妈是为了花钱花的值,不想好好的购物社区就被一帮群晖er霸占了,搞得家里没个NAS就不好意思逛张大妈一样!
搭建黑裙的整个过程均来自大妈各路大神的神贴,节省了搜索资料和排错的时间,无以为报,在这儿给各位大神磕一个!
吃葡萄不吐葡萄皮实在对不起咱大妈社区的共享精神,看了这么多群晖的帖子唯独不见安全方面,我就班门弄斧瞎说两句,如有不对不到的地方还请批评指正!
直接面对公网安全风险忒大
大家上网一般是在公司或自家局域网里,连上WiFi后你所有对互联网的访问都是由路由器转发的。你可别小瞧这个转发动作,他把你在内网的IP地址(如192.168.6.6)转换成公网IP(就是运营商分给你的那个),这么一个转换动作,你在网上就算是隐身了,就像你站在楼上打开窗户大声骂小区外面噪音扰民的二货是个大傻X,对方听到后立即看过来,发现一棟30层的高楼,谁家骂的不知道。真实的你在网络上是隐藏的,对方最多找到你家的路由器,再追查就难了,这也保证了对方主动向你发起的攻击大部分都在路由器上被挡掉了。
不少值友喜欢(或无意)把群晖主机直接放在DMZ,甚至通过全部端口映射直接对互联网开放,没有了路由器的保护,这次你家是在马路边的平房里,你仍然打开窗户骂了人,这次砖头直接就飞过来了,没处躲没处藏的。
群晖还有安全漏洞呢!?
现实中cei窗户方便,互联网上cei群晖很容易么?废话不多说,直接上图。
先看咱们国家安全漏洞库里有记录的有关群晖的安全漏洞信息,也不是很多,123个。
你看,最新一波漏洞发现是11月21日,还热乎着呢。
信不过咱国家的漏洞库?那咱们看看美帝那边的记录。
也不是很多,比咱国家记录的少一条,122个。
漏洞也是分级别的,看那些标高的,还是挺令人肝颤的。
漏洞有啥危险?
你说这些截图说明啥?我说的不专业,我让度娘给你解释一下:
漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。具体举例来说,比如在Intel Pentium芯片中存在的逻辑错误,在Sendmail早期版本中的编程错误,在NFS协议中认证方式上的弱点,在Unix系统管理员设置匿名Ftp服务时配置不当的问题都可能被攻击者使用,威胁到系统的安全。因而这些都可以认为是系统中存在的安全漏洞。
简单说,你把带着漏洞的群晖放在路由器上映射出去,对方可以根据刚才那123个漏洞挨个尝试入侵你的群晖,轻则和你一起分享你的小姐姐,重则和你分享你的私人信息,或者给你来个全盘加密要点儿比特币。真是气死个人儿~!
有0day无安全
你说你的群晖是最新版的,不存在安全漏洞,那我再给你说个名词:
0day漏洞,是已经被发现(有可能未被公开),而官方还没有相关补丁的漏洞。
就像你的windows每个月总有那么几天吭哧吭哧的提示你有安全更新,微软给你打的补丁都是他们知道的,如果你细查一些安全补丁,会发现有些安全漏洞在十几年前就已经存在(没错,从XP一直带到win10,属于win核心部件的漏洞),这些漏洞都已经被玩坏了微软才出个补丁补一补。
你还对你的群晖那么放心么?更不说像锅这样的黑裙用户根本升不了级。
多服务意味着多风险
注意看刚才的漏洞列表,每个漏洞都有明确的名字,比如有的漏洞专门针对web station,有的针对MailPlusServer,也就是说你的群晖开的服务越多,对公网映射的服务越多,你面临的危险就越大,因为你给你的房子开了太多的大门,每个大门的安全性是否可靠你自己都说不好。
提权
有人说我在应用里创建的都是普通用户,他们只能看不能改,更别说控制我的群晖后台了。呐~我再普及一个知识,仍由度娘代我讲解:
提高自己在服务器中的权限,主要针对网站入侵过程中,当入侵某一网站时,通过各种漏洞提升WEBSHELL权限以夺得该服务器权限。
说人话:通过一个非常简单的安全突破口放入一个更强大的工具,进而撕开更大的扣子,获取更多权限和数据。
一些帖子的错误示范
除了上面提到的这些非得群晖大佬给出官方解决方案的安全问题外,不少帖子有一些误导成分,导致我们的群晖面临很多严重的安全风险。(术业有专攻,绝非否定各位大神的贡献)
用户权限太大
创建普通用户的时候很多人不愿意去看那一条条明细权限,“全打钩”成了配置常态。群晖的权限属于Linux类别,设置的非常非常细,如果所有应用都给普通用户管理员权限,和可能导致用户信息泄漏后直接整站被人端下。
docker目录权限全开
docker运行时需要映射特定的目录,不少童鞋为了保证不出错,直接给对应的目录开启所有用户全部权限,这也很要命,很可能导致这些过大权限的目录成为通过非docker方式入侵的落脚点。也有可能因为docker本身的安全问题导致对方在该目录上传而已木马并且执行。
弱口令
这个实在普及,什么admin了,什么123qweASD了,我就不一一列举了,你看看你对公网发布的服务,有没有失败的认证记录,如果你再设置一些易猜测的管理员用户名,配上弱智密码,三五个回合保证你完败。
我认为的安全实践
有童鞋说了,照你这么说我这群晖关机睡觉算了!否则智能在家里用,也别嘚瑟着整什么公网IP、DDNS了。脑~脑~脑~咱不能因噎废食,正所谓兵来土掩水来将挡~!
杀毒
是的,群晖自带的有免费杀毒,干啥用呢?如果对方在你NAS里放个病毒啥的,我估计(是的,只是估计)这东西应该能挺身而出为你而战。但是请记得一定要及时更新病毒库,否则病毒库版本过低会导致新病毒无法查杀的情况。
另外这东西必须手工执行扫描,并不能像你电脑里的杀毒软件一样对内存进行查杀,让恶意程序刚一运行就被掐死。
私有数据VPN
当我需要远程访问NAS中的私人数据时,我一定会通过VPN做。呐~有人说了,VPN不是用来做不可描述之事的?非也非也,有请度娘:
虚拟专用网络(VPN)的功能是:在公用网络上建立专用网络,进行加密通讯。在企业网络中有广泛应用。VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问。VPN可通过服务器、硬件、软件等多种方式实现。
说人话:我用VPN连接进我家的网络,然后访问NAS,你可以理解成我身上一直带着任意门,拿出来就能回家,哪怕我家大门是锁的。
为啥要用VPN?
VPN成为了我访问我家NAS的唯一入口,虽然每次都需要先连接VPN些许的麻烦,但带来的好处非常多。
1 vs N 服务的本质区别
还记得我刚才说的漏洞列表么,你同时开N个服务,就要对这N个大门天天担忧,生活已经这么累了,还要操心NAS的安全性!?
所以我们运行VPN,只对公网开放VPN服务,这样我只用担心VPN是否安全就好,即使现在Drive有漏洞,即使WebStation有漏洞,即使NoteStation有漏洞,有就有呗,别人又访问不到。
VPN安全性
既然咱们决定了把VPN映射到公网,那VPN自身的安全性咋样呢?这里我们先关注一下我即将推荐的也是群晖里最容易搭建的两款。
首先是OpenVPN,安全性还不错。
其次是L2TPVPN,稍微差点意思。
推荐这两款的原因如下:
可以提供VPN服务的有两处:第一处在咱们自己的路由器上,第二处在咱们的群晖上。
我没有选择路由器,我家路由器刷的openwrt,因为我用的路由器太老旧了,所以配套固件貌似一直没有更新,我很担心出现新的VPN漏洞后得不到有效的漏洞补丁,最后功亏一篑。
所以VPN的重任落在了群晖身上,群晖的VPN套件支持在线更新,加上它使用的VPN也属于非常典型的应用,一旦出问题至少在社区更新后群晖会负责任的跟着更新。
VPN建设实操
L2TP/IPSecVPN
对手机端非常友好,咱们先说这个。
群晖侧配置
首先是打开咱们群晖的VPN服务界面。
点击底部的L2TP/IPSec,勾选启动VPN服务,在底部输入“预共享秘钥”,这个秘钥可别忘记哈,是你连接VPN的认证信息,其它默认就好。
点击应用后弹出提示界面,你VPN服务启动了,但是得能让互联网访问过来啊,此时你需要把1701、500、4500三个UDP协议的端口在路由器上做映射。
什么?不知道怎么在路由器上做映射?度娘一下吧……
映射到外网的端口我一般推荐都是非标的,但是手机连接时会使用标准端口,所以我也没有整什么幺蛾子去改端口,就维持默认吧,注意看协议哈,都是UDP的,不用开TCP,更不是TCP+UDP。
手机侧配置
服务端起来后再看手机端,我以我的安卓为例,苹果的基本一样。
设置——无线和网络——VPN——添加VPN网络
名称:随便起一个吧。
服务器地址:填写你家公网的IP。怎么看公网IP?打开百度,搜索“IP”,第一个返回结果就是你家当前的IP地址。
IPSec预共享秘钥:就是刚才你在群晖里设置的那个。
填写完毕后保存,连接,稍事等待,手机脑门上出现一个小钥匙的图标,恭喜你,VPN连接成功。现在用你家NAS的内网地址在手机上访问一下试试看吧~!
提示:用家里WIFI能连,用手机移动流量不成的,多半是家里的IP非公网地址,或者端口映射做错了
OpenVPN
L2TP/IPSecVPN已经搭好了,为啥还要费事巴拉的搞第二个VPN?我一开始也这么认为的,直到我因为win10连不上L2TP/IPSecVPN后才开始琢磨搞OPENVPN。
虽然最终我解决了连接的问题,但那是一个痛苦的过程,需要修改注册表,本地组策略,一共要改三处,重启一次,而且时不时的还连接失败,最终放弃。
相比较OpenVPN有客户端,配置也简单。
教鞭敲桌子。“坐后面戴眼镜睡觉的那个同学,你不听就出去!”
群晖侧配置
仍然打开咱们的VPN套件,这次我们打开OpenVPN,端口你可以随意设置,因为还没有最终对外映射,你爱设置成啥设置成啥,只要不和当前群晖的其它服务有冲突。
都设置完毕后点击“Apply”,随后有个重要动作,点击“Export configuration”,将压缩包下载到你希望进行VPN连接的电脑端。
服务起了还要在路由器上做端口映射啊~映射出去的端口可以随便写,比如12345。
至此,群晖侧的配置完毕了。
电脑侧配置
我一直怀疑自己的眼睛,什么时候OpenVPN成了特么禁词了?以至于想找个几年前烂大街的客户端都不可得!当然我相信这些事情是阻拦不了正在看此文的你,去吧!骚年!Follow your heart!
为了保证不删帖,我专门在Ubuntu下给各位做个演示,实测在win上如果装了客户端,或者你也和我一样平时用OpenSuSE,配置过程基本一样。
首先把刚才那个压缩包解压一哈,可以看到三个文件。
这里需要做个简单修改,用你顺手的编辑器打开“VPNConfig.ovpn”,在大概第四行的位置,你要把“YOUR_SERVER_IP”换成你家路由器的公网IP,把我示意图中的“18888”换成你最终在路由器上设置的映射端口,比如刚才我说的12345。
打开你的OpenVPN或者系统自带的网络设置,选择导入配置文件。
不要手贱去选择什么OpenVPN,就是“Import from file…”,点击后找到你刚才解压的那个目录,导入刚刚的“VPNConfig.ovpn”。
在页面中输入你在群晖中的用户名和口令,别急,这还没完,在点击“CA Certificate”,找到刚才解压目录中的“ca.crt”,随后点击“Add”,VPN添加成功。
打开后右上角出现“VPN”图标,表示连接成功,快用群晖内网IP访问试试看吧。
以上的演示都是基于Ubutun的,目的是让这篇帖子能永远活着,如果你是win用户,请先想办法安装OpenVPN客户端,然后也是用导入配置的方式导入修改后的正确的配置文件,成功登陆后客户端会弹出气泡告诉你连接成功,并且桌面任务栏中的小电脑屏幕会显示为绿色,如果是黄色表示有错误,看看日志怎么说的。
补充:在群晖的OpenVPN设置中有一个选项“Allow clients to access server’s LAN”,意思是勾上:这个选项连接vpn后还可以访问同网段内的其它主机,这个大家按需勾选吧,我推荐别选,万一OpenVPN破了,对方也就是入侵到群晖,不至于把你家里的整个网络都端掉。
公开服务用docker
上面说了这么多,各位该疑惑了,要群晖照你这么用,我啥服务都必须走VPN访问,想给别人共享个小影院啥的岂不是没戏了?
当然不,除VPN外凡是对互联网开放的服务我都选择用docker运行。原因很简单,每一个容器可以认为就是一个封闭的小环境,在上面运行的服务不会超出这个小环境去获取群晖本体的数据或权限,所以相对来说即使被攻击者入侵,对方也只能在有限的docker环境里折腾。
既然docker这么安全,我就玩命的多开一些服务和我的小伙伴们分享吧!别急,docker本身也不一定安全,比如就曾多次出现提权漏洞。
我们运行对外的服务时都会使用一个特定的账号去运行这个服务,当服务本身存在安全漏洞被入侵后对方获取到的最大权限一般就是这个特定的账号,所以此类账号会设置个小权限以防万一。但因为安全机制或设计的缺失,也有可能导致对方通过一个小口子撕开一个大口子,拿下整个宿主机(群晖)的管理员权限。
为了尽可能避免上面的问题,我个人的建议以下几点。
升级打补丁
不少大神的文章在讲述docker镜像下载时都告诉你选择“lastest”最新版本,部署后我相信不少人也不再管了。建议大家下载时手工选择版本号最新的那个,比如有10.2就别用9.1,除非在功能上有很大差异。即使是小版本的变化也有可能隐含着安全漏洞的修复。
以升级我最近折腾的jellyfin为例。定期关注docker上的镜像,发现新版本后立即下载,随后关停原有运行中的容器(不是删除),然后跑起新版本,配置中做好目录设置,确保老版本镜像映射的那些配置目录和数据目录在新版本中也映射妥当。
因为老版本没有删除,所以会存在端口占用的问题,换个群晖的端口病修改路由器的端口映射就好了。
目录权限设置
呐~不少大神的教程里为了保证大家的一次性成功,都会带着大家把运行容器所需要使用的目录设置为“所有人”拥有“所有权限”。看了刚才我的描述你应该知道这是非常可怕的一件事了!
建议大家可以参考我这种设置模式:只给运行和真实使用这些服务的人最小权限,比如看个照片、视频,“只读”就够了,干嘛让他能改能写入呢?
独立目录
比如你把电影目录分配给了jellyfin,而又把自己的照片、家庭视频也放在同样的目录下,轻则你的个人内容也被jellyfin发布出去,重则你的个人数据会因为jellyfin有漏洞(假设)被拿走。
建议:每个应用都有独立的目录,不要和个人数据混在一起。
以上就是我对使用群晖的安全建议,对群晖没有那么深入的认知,瞎唠叨半天,不免存在偏颇或错误,还请值友们批评指正。
最后,快过年了,祝大家都能用上舒心安全的NAS。谢谢!
黑夜呐喊
校验提示文案
芝麻大西瓜
校验提示文案
iamskyonline
1、控制面板——安全性——账号——启用自动封锁。
开启后,可以避免恶意尝试密码。
2、控制面板——用户账号——2步骤验证。
这个是对新手来说,最容易的防护措施,手机安装authenticator,类似qq安全中心,登录的时候需要令牌<可以一段时间内记住本设备),防止别人登录你的设备。
校验提示文案
犹豫94想买
校验提示文案
蓝牙e族
校验提示文案
Breeze沐风
校验提示文案
kxbs
校验提示文案
Y51O
校验提示文案
Bixby
校验提示文案
苍白骑士
校验提示文案
sarie001
校验提示文案
黑夜呐喊
校验提示文案
Btrfs
校验提示文案
黑夜萤火虫
校验提示文案
Simonlqn
校验提示文案
joywoo-tan
校验提示文案
十六薙夜血
校验提示文案
Hoooly
校验提示文案
mcrayyu
校验提示文案
appleman44
校验提示文案
说个绕口令
校验提示文案
胖胖的小二
校验提示文案
杰克是神马
校验提示文案
东南枝
校验提示文案
黑夜呐喊
校验提示文案
POKO哑虎呸呸
校验提示文案
Dav1dWu
校验提示文案
sarie001
校验提示文案
蓝牙e族
校验提示文案
苍白骑士
校验提示文案
龙抓手
校验提示文案
蹲在墙头等红杏
校验提示文案
wishper92
校验提示文案
Btrfs
校验提示文案
[已注销]
校验提示文案
犹豫94想买
校验提示文案
QCf4n
校验提示文案
wyylb
校验提示文案
Bixby
校验提示文案
Y51O
校验提示文案