前言

前几年因为某些网盘的一些问题让一个名叫 NAS 的东西得到了广泛的普及,这种个人存储设备除了在家里使用外有不少用户使用各种方法实现在家外同样可以访问家中的存储设备,例如群晖的QC,飞牛的FN Connect等等,这些用起来确实很方便,但是也有很大的安全隐私风险,尤其是拥有公网Ip的用户,很多用户直接使用 DMZ 将内网NAS暴露到公网中,很多黑客会对某个Ip段的一些高危端口进行扫描攻击,密码穷举,例如 SMB的445端口,NFS的2049/111端口等,这些都是比较常见的高危端口,SMB协议曾因永恒之蓝漏洞被“WannaCry”勒索病毒利用,导致全球范围的大规模攻击。而NFS的111端口是RPC远程过程调用服务的默认端口,2049端口是NFS服务的默认端口,攻击者可通过这些端口获取NFS共享信息,进而进行未经授权的数据访问、信息泄露或未受监控的文件传输,还有 SSH,RDP端口,搭建过网站或者用过云服务器的大概都知道,只要你的主机开着22端口 3389端口,很大的几率会别人扫到并且对你进行弱密码攻击,,,更不用说 SMB NFS这种了。。

如上图,这是我某台未关闭 22 端口的一台服务器,可以看到几乎每天都有不同的ip尝试暴力破解登录你的服务器。。。

那,我们应该怎么防范呢

基础的一些安全配置

  • 非必要不开启 SSH
  • 设置强密码
  • 开启TOTP (2FA身份验证,双因素认证)尤其是管理员
  • 停用没必要的账号
  • 不使用公共电脑接入NAS
  • 设置密码过期规则
  • 开启路由器防火墙,抵御基础攻击
  • 核心数据定时冷备
  • 尽量不要用黑群晖,有很多潜在风险,不论是软件还是硬件
  • 不要安装乱七八糟的软件,尽量通过Docker安装

公网访问的几种方法

方法1,端口转发(虚拟服务器)+ACL访问控制

如果您现在正在使用 DMZ,建议您换成端口转发的方式,只对外暴露需要的端口,而且不要用默认端口,例如群晖,要实现网页访问,可以将默认的5000/5001转发到另一个端口,启用HTTPS,这样只对外暴露WEB端口,如果还需要SMB/NFS,可以在放行对应端口同时设置 ACL 访问控制列表,或者设置允许访问IP列表,例如您需要在公司通过SMB/NFS访问家中的NAS,可以设置为仅允许公司里的IP访问,这样最简单,当然,灵活性也很低,如果更换了IP地址需要重新配置,而且多用户配置也比较麻烦,但是不推荐直接不做任何限制暴露在公网!

方法2,使用防火墙(推荐)

如果内网中有多个服务,例如 alist,emby等,需要多用户远程访问,,这里可以使用某些WEB防火墙,例如 雷池WAF,就拿 alist,emby来说,在安装好雷池之后,可以将雷池的443端口转发至公网的8443端口,只需要这一个端口就可以,使用域名区分访问的服务,配置好ddns,例如我设置了ddns域名为 ddns.example.com

然后可以使用CNAME别名的方式将 alist.example.com,以及 emby.example.com CNAME 到 ddns.example.com

在雷池中配置好SSL证书,创建对应的站点,反代到内网提供服务的端口即可,这种方式可以有效利用单个端口,避免为每个服务单独暴露端口带来的安全风险,而且有WAF当作网关进行安全防护。

图示

方法3、自建虚拟局域网,远程回家(推荐)

除了上面两种方法之外,最好用的还是通过虚拟局域网的方式,打通客户端与家里的网络,实现内网访问,无需端口转发等操作,这在很多大型企业都有应用,例如公司总部在深圳,分部在上海,,分部需要访问总部内的某些资源,例如OA,ERP等,可以通过虚拟局域网打通两边的网络,实现跨地域访问,例如在大型企业中比较常用的是 MPLS VPN IPSEC VPN,SD-WAN等,那我们个人用或者小团队用,可以选择使用 OpenVPN,以及AnyLink 进行异地组网的实现,打通客户端到家中的网络,实现内网访问,还有一个ZeroTier,这个也可以实现异地组网,但是由于运营商因为某些原因封堵UDP协议,这个并不怎么可靠。。

大概就这些,详细内容以后再补充~