zoukankan      html  css  js  c++  java
  • Nginx_Naxsi 实现简单的web防御

    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

  • 相关阅读:
    Percona Toolkit安装、使用
    Mysql 5.6主从搭建
    AngularJs 抓狂系列索引
    AngularJs 抓狂之: $q promise 自动unwarp功能被禁用了
    AngularJs 的 好文章
    AngularJs 抓狂之:Angular的元素是驼峰命名法,但是HTML属性是用-分隔的,两者不一致!
    Ajax请求永远是304的解决方案
    Java 7 Pocket Guide 读书笔记
    MFC中获取App,MainFrame,Doc和View类等指针的方法
    Thrift实践:(一)安装 -- 未完待续
  • 原文地址:https://www.cnblogs.com/Smoredemo/p/11214539.html
Copyright © 2011-2022 走看看