Nginx_Naxsi 实现简单的web防御

核能气质少年 提交于 2020-01-16 18:20:29

Nginx+Naxsi

Naxsi是基于Nginx的轻量级的第三方Web安全防护模块。相对ModSecurity,Naxsi基于严格的字符过滤,结合白名单规则实现防御,可以认为是基于白名单的防御方式。优点是规则简单容易上手,基于白名单的方式可以防御未知的攻击,缺点是容易误杀,需要结合业务配置白名单。 Naxsi提供了从日志中学习生成白名单的工具。

模式:

Naxsi可以在两种模式下运行:拦截模式和学习模式。拦截模式下会利用每条规则去匹配请求,并累计匹配分数,一旦分数达到阀值,则拒绝此请求并记录日志。学习模式下同样会匹配请求累计分数,但是分数达到阀值之后仍然继续匹配剩下的规则,最后仅记录日志。拦截模式用于生产环境,学习模式用于记录正常请求生成白名单。

规则:

Naxsi包含三种规则:MainRule(在Nginx的http段声明,一般作为黑规则) 、BasicRule(在Nginx的location段声明,一般作为白规则)、CheckRule(判断规则,在Nginx的location段声明)。黑规则声明检查域、检查内容、匹配分值。白规则声明例外条件和例外规则。 CheckRule声明判断分数和防御手段。

拒绝URL:

DeniedUrl指定当判定为拒绝请求的时候,Nginx所执行的location段,在Nginx的location段声明。一般配置为返回403。

安装

wget http://nginx.org/download/nginx-1.10.1.tar.gz

wget https://github.com/nbs-system/naxsi/archive/0.55rc2.tar.gz

./configure --add-module=/opt/tools/nginx-1.10.1/nginx_installer/naxsi-0.55rc2/naxsi_src/ \

--with-pcre=/opt/tools/nginx-1.10.1/nginx_installer/pcre-8.38 \

--with-pcre-jit \

--with-zlib=/opt/tools/nginx-1.10.1/nginx_installer/zlib-1.2.8 \

--with-openssl=/opt/tools/nginx-1.10.1/nginx_installer/openssl-OpenSSL_1_0_1t \

--with-http_ssl_module \ --without-mail_pop3_module \

--without-mail_smtp_module \ --without-mail_imap_module \

--without-http_uwsgi_module \ --without-http_scgi_module \

--prefix=/opt/nginx-1.10.1

make && make install

配置

 

#拷贝内置黑规则到Nginx配置文件目录

cp ./naxsi-0.55rc2/naxsi_config/naxsi_core.rules /opt/nginx-1.10.1/conf/

#配置Naxsi                                                                                 

vim /opt/nginx-1.10.1/conf/naxsi_config.rules

#配置Nginx

vim /opt/nginx-1.10.1/conf/nginx.conf

 运行

#测试配置文件

./sbin/nginx –t

#重启

Nginx ./sbin/nginx –s reload

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!