window系统中为Nginx增加WAF应用防火墙
window系统中为Nginx增加WAF应用防火墙
由于发布的系统被XSS攻击、SQL注入,前段时间直接搬了Nginx 防止SQL注入、XSS攻击的实践配置方法 - 运维学习笔记 (imydl.tech)安安稳稳的过了年,今天客户又发来了:SQL注入攻击截图,继续研究
本轮参考了宝塔Windows面板nginx开启lua防火墙教程 - iMin博客 (iminbk.com),以及GitHub - heartshare/ngx_lua_waf-2: ngx_lua_waf二次开发,保留大部分原有功能特性,整合其他猿的新增功能,优化、维护等,由于本人的系统是window,通过参考和借鉴完成了正确配置;
以下为window操作系统正确配置:
下载OpenResty最新版本1.21.4.1,根据操作系统下载对应的 window文件。OpenResty - Download

参考GitHub - unixhot/waf: 使用Nginx+Lua实现的WAF(版本v1.0),下载waf文件夹,并放置在openresty解压目录下

,WAF部署,由于是window配置稍微变更了一下:
http {
include mime.types;
default_type application/octet-stream;
#include luawaf.conf;
lua_shared_dict limit 50m;
lua_package_path "d:/openresty/waf/?.lua;;";
lua_package_cpath "d:/openresty/lualib/?.so;;";
init_by_lua_file "d:/openresty/waf/init.lua";
access_by_lua_file "d:/openresty/waf/access.lua";

没有这句是会报错的,错误如下:

修改config.lua文件中config_rule_dir为openresty文件夹的绝对路径。


这样就可以正常启动了:


下来对nginx.conf文件进行改造一下,

大家都体验过nginx中修改nginx.conf文件后,莫名奇妙的一个空格让你找N个小时的体验吧。增加一个 conf文件如:luawaf.conf,将http{}中的配置迁移至luawaf.conf文件中,
lua_shared_dict limit 50m;
lua_package_path "d:/openresty/waf/?.lua;;";
lua_package_cpath "d:/openresty/lualib/?.so;;";
init_by_lua_file "d:/openresty/waf/init.lua";
access_by_lua_file "d:/openresty/waf/access.lua";
nginx.conf修改为如下:
http {
include mime.types;
default_type application/octet-stream;
include luawaf.conf;
重新启动,规则测试效果如下:

美中不足的是config.lua文件中日志的位置,目前没有任何记录,
config_log_dir = "/tmp"
修改日志路径为绝对路径
config_log_dir = "d:/openresty/tmp"
重新启动,

日志中有记录了

大功告成!
更多推荐
所有评论(0)