Nginx + Lua 搭建网站WAF防火墙 (5)

demo

4.1.环境

clone代码并移动到nginx的waf目录下

git

简单说下里面的规则分别有啥用:

args里面的规则get参数进行过滤的

url是只在get请求url过滤的规则

post是只在post请求过滤的规则

whitelist是白名单,里面的url匹配到不做过滤

user-agent是对user-agent的过滤规则

4.2.配置

修改必要配置

waf

详细说明我引用一下我的上篇文章:

参数简单说明下:红色字体部分需要修改

pms

nginx.config的http下添加如下内容:

lua图示

lua_package_path "/etc/nginx/waf/?.lua"; lua_shared_dict limit 10m; init_by_lua_file /etc/nginx/waf/init.lua; access_by_lua_file /etc/nginx/waf/waf.lua; 4.3.生效

配置语法检查:nginx -t -c /etc/nginx/nginx.conf

PS:不重启的方式加载配置:Nginx -s reload -c /etc/nginx/nginx.conf

reload

4.4.简单验证

ok

PS:其实绕过很简单,看看他默认规则即可,这款WAF的强大之处在于轻量级,而且规则可以自定化

过滤规则在wafconf下,可根据需求自行调整,每条规则需换行,或者用|分割

举个例子:?id=1 or 1=1

PS:默认规则没有这点的防护

old

那么我们可以在args规则中添加比如\sor\s+,然后nginx -s reload一下就行了

PS:如果是从post进行注入,或者cookie中转注入,那么在对应规则里面添加就行,我这边只是演示下防火墙被绕过该怎么解决~(多看看日志)

add

4.5.CC验证

留个课后作业:使用ab来测试下nginx+lua的waf对cc的防御效果

提示:可以使用ab -n 2000 -c 200 来简单测试

PS:测试前curl 看看返回内容,测试后再curl看看返回内容

扩展:隐藏Nginx版本信息

防止被黑客进行针对性渗透,隐藏下版本信息

PS:其他配置今天就不详细讲解了,下次讲Nginx的时候会说的

原来:

old

配置下:vi /etc/nginx/nginx.conf

http下添加:server_tokens off;

conf

检查下语法:nginx -t

不重启的方式加载配置文件:nginx -s reload

nginx

现在效果:

new

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzdpj.html