一个 nginx 防火墙模块: ngx_waf

2020-12-12 23:03:54 +08:00
 c137rick

用过一段 ngx_lua_waf,但是由于这个项目很久不更新了,而且由于缺少拉黑整个网段,不支持 IPV6 等缺点就没有再用下去。但我确实有用防火墙的需求,所以自己用 C 写了一个 nginx 防火墙模块。

欢迎指教!

功能

v2.2.0-beta-2 开始本模块开始支持 IPV6,如果有需要请下载对应的版本。

项目地址

Github: https://github.com/ADD-SP/ngx_waf

3487 次点击
所在节点    分享创造
18 条回复
Nangle
2020-12-12 23:11:52 +08:00
好,不错!怎样才能防采集呢?
37Y37
2020-12-12 23:16:02 +08:00
有点厉害呀,支持
Nangle
2020-12-12 23:16:33 +08:00
我有上百个包含 IP 段的黑名单文本文件,如不合并成一个文件的情况下,该如批量何引用进去呢?
c137rick
2020-12-12 23:20:20 +08:00
@Nangle 从防火墙角度来说防采集一般通过限制 IP 的访问频率和拉黑 IP 实现,前者可以用本模块的 CC 防御功能。

目前暂未支持多个 IP 黑名单,目前只能合并到同一个文件内。如果觉得有必要可以在 Github 上开一个 issuse 讨论一下。
IvanLi127
2020-12-12 23:23:54 +08:00
给大佬点赞😘
s609926202
2020-12-12 23:47:59 +08:00
同问,如何防止一些恶意请求
raaaaaar
2020-12-12 23:49:49 +08:00
你们都是写得差不多了才开始宣传的吗,这都几个月了。。
PerFectTime
2020-12-13 00:19:51 +08:00
@raaaaaar #7 要不然开个坑自己写不下去了,不就被人说放鸽子
c137rick
2020-12-13 01:22:23 +08:00
@s609926202 模块带有一些默认的规则,可以在 `rules` 文件夹下查看。对于一些常规的脚本扫描请求,定期看看 access.log 写点正则就差不多了,CC 防御也能限制一下扫站的脚本。
c137rick
2020-12-13 01:25:25 +08:00
@raaaaaar #7 主要是觉得完成了 IPV6 支持后宣传比较好。
learningman
2020-12-13 11:26:11 +08:00
提个小建议,progress 可以改叫 roadmap
c137rick
2020-12-13 15:21:48 +08:00
@learningman #11 progress 指向一个纯文字的项目开发进度说明,感觉 roadmap 最好有图,文字类的通常不像图那么直观。
privil
2020-12-14 10:32:26 +08:00
@c137rick #10 你好,想请问一下 CC 防护 是否可以考虑增加一个 访问频繁转跳验证码的功能,验证码通过则可以访问,否则锁定一段时间持续要求填写验证码,大部分 toC 的业务层可能更需要这种功能,尤其是业务规模不大的情况下,又遇到刷单的问题。
privil
2020-12-14 12:15:39 +08:00
error: ‘for’ loop initial declarations are only allowed in C99 mode 编译安装报错了……
c137rick
2020-12-14 12:18:16 +08:00
@privil #10 #11 两个问题去 Github 上各开一个 issue 吧,不知为什么 V2EX 这里有时收不到回复通知。
c137rick
2020-12-14 12:19:11 +08:00
@privil #13 #14 两个问题去 Github 上各开一个 issue 吧,不知为什么 V2EX 这里有时收不到回复通知。
myqoo
2020-12-17 14:49:48 +08:00
还是用 OpenResty LUA 实现比较稳妥。用 C 一个不小心出现个内存 bug 问题就大了。
c137rick
2020-12-17 23:51:00 +08:00
@myqoo #17 这倒是真的,有一个 VM 不用关注内存管理。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/734874

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX