
最近相信大家都收到了飞牛官方推的安全更新通告了。我看到后也是连夜爬起来给原来裸奔的nas系统搭了个waf来赢得自己内心对安全的一丝慰藉。但是我觉得这也是个很好的强化自己nas安全的机会。所以我接下来就简单介绍下之前我一直用的一个免费的waf软件,希望能给大家提供一些帮助。
前言:
我转用飞牛也就不到半年,之前一直用的omv+nextcloud来完成的几个电脑间的文件同步和分享。也就差不多在一年前,我就因为疏忽大意,将电脑的rpd端口直接共享到了公网上,并且使用了默认的账号和简单密码。在公网上大概暴露了半年后,有一天就发现开启了rpd的电脑无法登入,重启后也无法启动。通过pe进入系统后发现,该电脑被攻破并投放了勒索病毒。可能是病毒加密时攻击者没设置好加密范围,导致了整个系统的损坏。同个内外内还有我的nas在运行,可能是因为我的nas密码相对比较复制所以没有被直接攻击。但从这以后我就四处找相关的防火墙或类似防火墙的产品。
软件介绍:
因为工作原因我很快就找到了雷池waf的社区版,这个版本有和商业版本一样的语义分析引擎。所以防护能力上没什么问题,而且社区也提供定时更新的黑白名单(可以简单自动的防御住大量肉鸡的攻击)。并且对于debain为底层的nas系统部署也非常的简单和方便。
软件部署:
长亭waf的部署在部署方面采用docker来部署,所以对于飞牛os系统来说只要之前有启用过docker功能的并且系统可以连互联网的部署起来都非常方便。他可以通过一条命令来实现一键式的部署。
安装前准备:
确保你的nas可以正常链接互联网,并且开了ssh或者你可以临时开启,后续再进行关闭来保障安全性。
配置飞牛的docker功能:



安装前检查:
安装前请检查下你的根目录剩余空间情况,或者找一个空间足够的位置来安装雷池waf。(我会按默认位置来进行安装,默认安装的话会使用根目录的空间来安装。如果不够你可以将文件安装在飞牛的存储空间中,比如下图的/vol1下)

安装过程中默认会将数据安装在/data/safeline中,你也可以根据自己的需要指定到需要的目录里。
获取root权限:
sudo -i
ps:密码为你ssh登入时候的用户密码
部署命令:
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh)"
部署TLS命令:
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh)" -- --lts
正常情况下只要部署普通版本的就可以了,当然如果你也可以选择这个lts版本。
ps:在我的飞牛环境下不知道为什么正常版本的部署上创建对应的网站防护后没有生效(表现为可以转发流量,但是防护策略/修改防护模式都不生效)所以安装后务必检查下状态是否正常,否则很可能你以为保护了,但是事实上没有任何保护。
安装过程截图1:

输入:1
进行新安装
安装过程截图2:

输入安装目录默认为/data/safeline
如果你的飞牛系统盘空间较少请指定到飞牛的存储空间中。
安装过程截图3:
等待自动拉取镜像和完成安装

ps:安装过程正常如果你的部分docker使用了waf需要的端口可能会安装失败。如果存在端口冲突情况那就只能找台虚拟机来部署了(他的默认端口不允许更改)
配置waf转发功能:
根据安装后提示的地址和账号即可通过浏览器登入到waf中
安装后账号密码及链接截图:

访问waf控制台,并同意用户协议:

登入waf:

创建需要保护的网站:

配置需要保护的网站:
配置需要保护的站点ip或域名(你可以配置为你ddns对应的域名)

配置新的监听端口(也就是通过这个端口访问的流量将经过waf,通过该端口不能与本机上其他应用的端口互相冲突,比如飞牛的5666,5667都是不能使用的)建议使用https协议,这样可以避免明文传输。

为你的https站点导入ssl证书:
如果你有ssl证书可以直接点击添加“证书”“添加证书”直接跳转到添加证书的地方,将已有的证书进行上传即可,如果没有我们也可以用飞牛安装系统时自带的自签证书来完成配置。


获取飞牛证书:
回到飞牛页面上,依照如下步骤导出飞牛临时证书


单击该按钮即可将证书导出

将下载的证书压缩包解压并按界面上的文件后缀导入对应的证书和key。







完成证书添加后回到站点的配置策略中选择对应的证书即可完成证书的配置。


配置飞牛信息:
这里的上游服务器你可以理解为你原来的服务器。当你访问waf上你监听的端口(比如我这次配置的5668端口)他会将访问的请求转发给这个上游服务器。然后上游服务器回包的时候也将回给waf,由waf转发给客户端。
所以这里需要填入的是你飞牛的ip地址j记得需要像截图那样带上端口号。

我这里用的飞牛的http端口,用https也是可以的,但是记得修改对应的端口号。
配置站点名称:
最后是配置你站点的名字,可以根据你的需要来配置,然后提交即可完成配置。

验证配置:
创建站点后可以通过这个页面查看对应的站点信息。然后我们可以通过配置的转发端口来尝试访问飞牛,来确定转发是否生效

通访问新的端口来查看转发是否生效

这样通过新的端口依然可以访问到飞牛的话就证明转发是生效的。但是一定要记得回waf看下对应站点是否后匹配命中的记录。我之前就发现配置还好策略后转发正常但是无法命中站点的情况。

最后就是修改你路由器上的端口映射将原来映射到飞牛5667的或5666的端口映射修改为waf上的5668即可完成飞牛系统对外访问的配置了

日常信息查看与拦截日志:
刚搭建上去肯定是没有什么攻击日志的,所以可以通过下面这个地方来查看你访问的飞牛页面是否已经被waf代理了。

如果需要查看是否被攻击可以通过waf中的以下内容来查看你对应的站点是否有发生过被攻击的行为。

当然如果有时候发现你的部分应用访问异常也可以到这个地方来看看是不是被误拦截了。
结束配置:
配置完成后如果你不希望ssh可以被登入的话你需要关闭ssh。来防止ssh被人登入导致的危险。
最后总结:
对于长亭waf的部署就是上述的步骤。总体来说部署难度并不高。需要注意的是由于多经过了一层waf,所以往飞牛上拷贝数据的速度可能会受到影响。也不排除部分功能可能被误判为攻击给拦截了。如果出现误判情况需要根据具体的误判内容来对行为做放通。同样的由于waf只代理http和https流量。如果你的应用使用的非这两类的流量,那么对于的应用将无法使用。
安全是个很大的话题,除了产品本身需要不断的填补安全上的漏洞外,我们也可以像这样借助其他的产品来提示安全能力。同样的行为和习惯也是非常重要的,就比如你如果搭了这个waf,但是为了方便直接将waf的控制台映射到公网并且不做任何防护,那也会带来新的安全风险。所以除了优秀的不断更新的产品,我们也需要提示自身的安全意识才能防止更多的安全漏洞出现。最后也希望飞牛能尽快把安全这块给补上。