Loading... # 使用前须知 众所周知,宝塔的nginx防火墙是付费的,但正如linux面板的nginx一样,宝塔其实内置了一套免费的lua防火墙,只是默认是关闭的,本文就是教你怎么开启它的。 部分Windows且使用nginx的用户,有使用免费WAF的需求,但现在的WAF类产品很少有针对Windows的nginx进行适配的,而宝塔官方WAF则需要付费,因此,本教程可解决此问题。 # 安装教程 1、下载lua防火墙配置文件并安装 下载地址: <button class=" btn m-b-xs btn-info " onclick="window.open('https://down.iminbk.com/luawaf/luawaf2.1.zip','_blank')">点击下载</button> 下载后上传到宝塔nginx安装目录,并解压。 2.在宝塔安装目录下conf文件夹内新建luawaf.conf文件,并编辑文件为: ``` lua_package_path "/BtSoft/nginx/waf/?.lua"; lua_shared_dict limit 10m; init_by_lua_file /BtSoft/nginx/waf/init.lua; access_by_lua_file /BtSoft/nginx/waf/waf.lua; ``` 保存。 3.找到nginx配置文件,找到#include luawaf.conf;删除前面的#号,保存。 ![](https://www.iminbk.com/usr/uploads/2022/01/165202520.png) 重启nginx,在你的域名后面输入/?id=../etc/passwd ,如出现以下界面,代表lua防火墙已成功开启。 ![](https://www.iminbk.com/usr/uploads/2022/01/588458608.png) **配置修改** lua防火墙可自行修改参数; 进入waf文件夹,里面的config.lua是防火墙的主配置参数: ``` RulePath = "C:/BtSoft/nginx/waf/wafconf/" --waf 详细规则存放目录(一般无需修改,如路径不同,请修改为正确路径) attacklog = "on" --是否开启攻击日志记录(on 代表开启,off 代表关闭。下同) logdir = "C:/BtSoft/wwwlogs/waf/" --攻击日志文件存放目录(修改为你想设置的,注意路径要真实存在) UrlDeny="on" --是否开启恶意 url 拦截 Redirect="on" --拦截后是否重定向 CookieMatch="off" --是否开启恶意 Cookie 拦截 postMatch="off" --是否开启 POST 攻击拦截 whiteModule="on" --是否开启 url 白名单 black_fileExt={"php","jsp"} --文件后缀名上传黑名单,如有多个则用英文逗号分隔。如:{"后缀名1","后缀名2","后缀名3"……} ipWhitelist={"127.0.0.1"} --白名单 IP,如有多个则用英文逗号分隔。如:{"127.0.0.1","127.0.0.2","127.0.0.3"……} 下同 ipBlocklist={"1.0.0.1"} --黑名单 IP CCDeny="off" --是否开启 CC 攻击拦截 CCrate="300/60" --CC 攻击拦截阈值,单位为秒。"300/60" 代表 60 秒内如果同一个 IP 访问了 300 次则拉黑 ``` 在该目录下的wafconf目录下,可以看到具体的防护规则,如您不了解正则表达式,请不要随意修改这些文件,保持默认即可。 总结一些,通过这些步骤操作之后,我们就成功开启了nginx防火墙,在遇到渗透与扫描的时候,可以对黑客行为进行缓解。 网络安全无小事,特别是网络安全法和网站安全负责人负责制建立以后,每个人都要对网站安全负起责任来,单纯的使用防火墙、依靠安全软件堆积无法真正解决安全问题,人工加固,定期巡检,保持程序更新,及时修复安全漏洞才是关键。 # 常见问题 1.为什么没有拦截日志? 答:请手动在/BtSoft/wwwlogs/下创建waf文件夹。 2.误报怎么办? 答:查看拦截日志,找到误报的那一条,查看是哪条规则误报,删除那条规则即可。 最后修改:2024 年 03 月 13 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 10 如果觉得我的文章对你有用,请随意赞赏
26 条评论
老大,可以参考这个改版升级下,就更厉害了哈
https://toscode.gitee.com/chleniang/cls_lua_waf/tree/master
老大,能不能定制增加一个IP拦截的,我是想着拦截海外的IP,虽然下载了各种IP库,但是不知道如何配置
老大,可以在win宝塔里面添加面板吗?就像linux那样有面板配置waf这些功能
这个不可以
lua防火墙配置文件 下载地址失效了,还望可以给一个下载地址,谢谢。
已修复此问题
win2016 安装配置好了以后没有报任何错误,但是针对 http://test.com/test.php?id=非法字符 没有任何拦截提示!
你好,已通过邮件答复
我配置完毕后,nginx启动啥的一切正常,config中白名单切换也是有效的,但是针对 http://test.com/test.php?id=非法字符,这种的无法拦截。博主有遇到过嘛。配置如下
RulePath = "D:/BtSoft/nginx/conf/waf/wafconf/"
--规则存放目录
attacklog = "on"
--是否开启攻击信息记录,需要配置logdir
logdir = "D:/BtSoft/nginx/conf/waf/log"
--log存储目录,该目录需要用户自己新建,切需要nginx用户的可写权限
UrlDeny="on"
--是否拦截url访问
Redirect="on"
--是否拦截后重定向
CookieMatch = "on"
--是否拦截cookie攻击
postMatch = "on"
--是否拦截post攻击
whiteModule = "off"
--是否开启URL白名单
black_fileExt={"php","jsp"}
--填写不允许上传文件后缀类型
ipWhitelist={"127.0.0.1"}
--ip白名单,多个ip用逗号分隔
ipBlocklist={"1.0.0.1"}
--ip黑名单,多个ip用逗号分隔
CCDeny="on"
--是否开启拦截cc攻击(需要nginx.conf的http段增加lua_shared_dict limit 10m;)
CCrate = "100/60"
--设置cc攻击频率,单位为秒.
--默认1分钟同一个IP只能请求同一个地址100次
html=[[Please go away~~]]
--警告内容,可在中括号内自定义
--备注:不要乱动双引号,区分大小写
你从别的地方复制的吧,本站不是从github中提取的,不一样
是的
按本站教程来,github那些,是针对linux的
是是试了文件中的下载发现不行,又找的github,还是不行,哭了
除了路径,不要修改任何东西,你是宝塔面板用户吗
另外,我遇到了
[alert] 10708#15212: OpenEvent("ngx_master_12104") failed (2: The system cannot find the file specified)
是什么原因?
你是怎么知道这个网站的,另外,你用的是宝塔windows面板吗,这个都是按照宝塔的来的
hi,这个文件链接好像下不了啊
已修复
你好,感谢反馈,稍后会进行修复。
有没有基于luawaf的规则更新git
luawaf官方规则已经不更新了,我这个是有更新的,包括log4j的规则都有。
防火墙2.0版本是用的新规则,可以防更多攻击,如果有误报,请在评论区留言。
这个lua防火墙脚本太老了,好多年都不更新了!我记得好像都没有人维护了!推荐试试 Fail2ban !
您好,此规则相对于原生luawaf,规则已做更新,可以防护更多攻击,同时有效降低误报。
我的体验是误伤率极高!(´இ皿இ`)
我用着还好,误报的情况很少,本站已对规则进行优化,误报低,提供的是基础通用防护规,同时对于最近很火的log4j漏洞也有防护效果。