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
来源:https://www.cnblogs.com/Smoredemo/p/11214539.html