基于lua-nginx-module的最简单轻便好用的WAF(ZhongKui-WAF)
为什么我要说ZhongKui-WAF是最简单轻便好用答案安装非常简单。不需要改动原来的 openresy或者nginx环境只需添加3条配置到nginx.confreload即可启用。基本防御功能齐全。下面废话不多说让我们看看作者大哥bukaleyang给我们的介绍ZhongKui-WAF的由来钟馗是中国传统文化中的一个神话人物被誉为“捉鬼大师”专门驱逐邪恶之物。Zhongkui-WAF的命名灵感来源于这一神话人物寓意着该软件能够像钟馗一样有效地保护Web应用免受各种恶意攻击和威胁。Zhongkui-WAF基于lua-nginx-module可以多维度检查和拦截恶意网络请求具有简单易用、高性能、轻量级的特点。它的配置简单你可以根据实际情况设置不同的安全规则和策略。主要特性多种工作模式可随时切换关闭模式放行所有网络请求保护模式protection拦截攻击请求并记录攻击日志监控模式monitor记录攻击日志但不拦截攻击请求支持规则自动排序开启后按规则命中次数降序排序可提高拦截效率支持ACL自定义规则灵活配置拦截规则支持站点独立配置IP黑名单、白名单支持IPv6及网段配置127.0.0.1/24或127.0.0.1/255.255.255.0HTTP Method白名单URL黑名单、白名单URL恶意参数拦截恶意Header拦截请求体检查上传文件类型黑名单防止webshell上传恶意Cookie拦截CC攻击拦截人机验证验证失败后可以自动限时或永久拉黑IP地址Sql注入、XSS、SSRF等攻击拦截可设置仅允许指定国家的IP访问敏感数据身份证号码、手机号码、银行卡号、密码脱敏及关键词过滤支持Redis开启后IP请求频率、IP黑名单等数据将从Redis中读写实现集群效果攻击日志记录包含IP地址、IP所属地区、攻击时间、防御动作、拦截规则等支持JSON格式日志流量统计可视化亮点功能【敏感数据过滤】Zhongkui-WAF内置了对响应内容中的身份证号码、手机号码、银行卡号、密码信息进行脱敏处理。需要注意的是内置的敏感信息脱敏功能目前仅支持处理中华人民共和国境内使用的数据格式如身份证号、电话号码、银行卡号暂不支持处理中国境外的身份证号、电话号码、银行卡号等数据格式。但你可以使用正则表达式配置不同的规则以过滤请求响应内容中任何你想要过滤掉的数据。安装安装过程在此不想介绍了感兴趣可以自己访问地址https://github.com/bukaleyang/zhongkui-waf最后说几点问题虽然我非常喜欢这套系统但是有几点问题还是得告诉大家1、IP归属信息有点不准确。如果需要定位ip得手动拿去baidu一下。2、防护规则基本满足但感觉还是差点意思。3、有点点bug作者好久没更新了。【期待...】我想改进一下Zhongkui-WAF。如果你也感兴趣可以留言说说你的想法和建议让我们一起让它更完美。[更多干货可在微信搜索「咕咚笔记」关注]