目前使用的版本是:v1.10.7-lts
更新到这个版本后感觉WAF不适应,之前写的LUA脚本不能用了,于是我在网站的配置文件中加了两条:
access_by_lua_file /www/common/waf/access.lua;
set $RulePath /www/sites/xxx.com.cn/waf/rules;
之后发现waf中设置的UA规则似乎是不起作用了。
我非常后悔升级到了这个版本,现在的WAF不好用,如果我去除这两条,则lua脚本就不生效,加上这两条,新WAF似乎就不生效。真是不知道咋办了~~
新版本的 WAF重构了 以前的 Lua 脚本失效 你需要自己重新挂载 Lua 脚本
可既然弃用了lua,那使用OpenResty的意义在哪呢……为什么不直接切换到nginx。我实在是不明白现在的WAF功能,感觉比较魔幻,我把Lua脚本挂上以后,竟然面板本身自带的WAF失效了,比如我把某个IP加入WAF的黑名单,但却没有任何效果。
没有弃用 Lua ,只是弃用了以前的 Lua 脚本,你自己挂载 Lua 也是没问题的
稍微研究一下就可以
好的谢谢,我已经挂上了,奇怪的是,我自从升级了之后,WAF就失效了。无论是否挂上LUA都不起作用。UA防火墙和IP黑名单都测试了,没效果咋回事……
你是自己的 WAF 还是用的 1panel 的 WAF
1panel的,我升级以后就发现黑名单不管用了,我把全局也开了,各自的项目也都开启了,但却无效。
你改 nginx 配置文件了吗 Openresty 配置和网站配置文件截图看一下
网站的这个配置 会替换到我们的 WAF 所以 网站的优先生效 我们的就不会生效了
这不是lua脚本的路径吗?又回到了一开始的问题了……我想用官方的WAF也想用LUA脚本,但我加上LUA脚本,官方WAF就不生效。有啥解决办法能同时使用官方WAF和自己的LUA脚本么。。。
关于 lua 的 配置文件
在这个位置 /opt/1panel/apps/openresty/openresty/1pwaf/data/conf/waf.conf
你可以考虑修改 access_by_lua_file /usr/local/openresty/1pwaf/waf.lua;
改成你自己的 然后 require 加载一下 /usr/local/openresty/1pwaf/waf.lua
我没试过 你可以看一下 Openresty 的 Lua 文档 然后尝试一下
我把lua的全给注释掉了,但新版的WAF依然不生效。
配置如下(已将敏感信息替换):
server {
listen 80 ;
listen 443 ssl http2 ;
server_name example.com www.example.com;
index index.php index.html index.htm default.php default.htm default.html;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
access_log /www/sites/example/log/access.log;
error_log /www/sites/example/log/error.log;
set $logdir /www/sites/example/log;
location ^~ /.well-known/acme-challenge {
allow all;
root /usr/share/nginx/html;
}
if ($scheme = http) {
return 301 https://$host$request_uri;
}
if ($http_referer ~* (image\.baidu)) {
return 403;
}
ssl_certificate /www/sites/example/ssl/fullchain.pem;
ssl_certificate_key /www/sites/example/ssl/privkey.pem;
ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";
error_page 497 https://$host$request_uri;
proxy_set_header X-Forwarded-Proto https;
ssl_stapling on;
ssl_stapling_verify on;
include /www/sites/example/proxy/*.conf;
location ~ .*\.(js|css|png|jpg|jpeg|gif|ico|bmp|swf|eot|svg|ttf|woff|woff2|webp)$ {
expires 30d;
log_not_found off;
valid_referers example.com www.example.com;
if ($invalid_referer) {
return 404;
access_log off;
}
}
}
目前已经将openresty删除后重新部署了,waf正常生效。
我再次尝试自己写的/www/1panel/apps/openresty/openresty/1pwaf/waf.lua脚本,挂进1panel容器的 /usr/local/openresty/1pwaf/waf.lua。
神奇的是,我自己写的lua脚本生效了,然后自带的WAF失效了。
有什么办法能够让两者都生效吗?
之前专业版活动的时候没赶上也就算了……这升级了以后,连起码的自己写规则的方法也堵了,真的太闹心了。