开源且强大的防火墙外挂 – CIDRAM

就在前几天看到CIDRAM(Classless Inter-Domain Routing Access Manager) 这款外挂后感到惊为天人~ 想说「这不就是我想实现的防火墙吗!」

先前笔记过的一些方法,都只能说是自己客制化防火墙的第一版,还不到理想状态。

简单的去分析请求 Log 记录档案,判断是否有符合恶意攻击条件的 IP,然后把这些 IP 记录起来逐一封锁。

对,看到这,有概念的话会想到「那么多个IP要封锁,也会有效率跟容量的问题」,而且也很多同一个段的IP来,明显是针对整段封锁就可以预防的状态,但只能一个一个IP来处理,不是很聪明。

这就要回到设计这个防火墙工具的出发点了: 「当时我还不知道怎样可以更有效率一点,只能被动地看结果(Log)来处理。」

主要是卡在如果没办法高速的判断IP来源,那整体请求反而就被拖慢了,这样只会反应出成本过高的问题。

理想是「如果可以第一时间就知道这 IP 是谁? 有没有风险? 就可以在他请求之前完成封锁,连个闪失的机会都没。」

结果我要的答案都在这个外挂里了!

这款说是外挂,但其实是一套独立运作的系统。 操作起来还真是有工程的部分要处理,并非像常见的Wordfence这种后台登入后就可以设定、运作。

主要是下载好插件后,会需要先到放置插件目录创建一个你才知道的 PHP 文件,再来编辑这文件输入以下的程序,启用系统后台:vault

require_once '/path/to/the/vault/directory/loader.php';
$CIDRAM = new \CIDRAM\CIDRAM\FrontEnd();
$CIDRAM->protect();
$CIDRAM->view();

然后浏览器输入这个文件的路径链接,默认账号密码是,登录后建立过完整权限的用户然后删除这个账号完成第一次使用的设置。admin password admin

其实预设的设定已经有保护效果,接下来还要再把下面程序安插在里。wp-config.php

require_once dirname(__FILE__).'/wp-content/plugins/cidram/vault/loader.php';
(new \CIDRAM\CIDRAM\Core())->protect();

记得要改上述引入文件路径! 他的说明虽然表示安装好外挂就都处理好了,但我测试并没有,可能也是因为最近才改版 v3,例外难免。 所以手动来一次最直接! 文件里也提到,如果可以使用PHP的环境参数来设定预装入,更可以有效的针对每一个PHP执行档案来封锁,不会限定是有先加载的执行流程。auto_prepend_file wp-config.php

更多的细节可以参考他们的说明页面,虽然有中文翻译,但质量实在不太好就是XD

下面附图是他这套系统的后台测试 IP 的工具界面,可以模拟前端请求的 IP 是否会被封锁,测试了几个机房的 IP 都有准确的判断到并封锁,处理的速度也很快,真的不错~

CIDRAM
CIDRAM

这款开源防火墙 CIDRAM 判断的逻辑也很弹性不是无差别封锁,像是针对常见的黑名单请求来源(User Agent)还有非正常浏览者会使用的「机房 IP」,再来是「时常会发出攻击被列入黑名单的 ISP 网段」与「判断是否是白名单的好爬虫」... 而且还满常更新这些数据库,功能强大好用啊!

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注