zoukankan      html  css  js  c++  java
  • nginx waf安装配置

    1、编译安装ModSecurity
    1.1)安装依赖包
    sudo apt install apt-utils autoconf automake build-essential git libcurl4-openssl-dev libgeoip-dev liblmdb-dev libpcre++-dev libtool libxml2-dev libyajl-dev pkgconf wget zlib1g-dev

    1.2)安装modsecurity
    git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity
    cd ModSecurity
    git submodule init
    git submodule update
    ./build.sh
    注:build时出现fatal: No names found, cannot describe anything.时不用管它
    ./configure
    make
    sudo make install
    安装位置/usr/local/modsecurity

    2、编译安装ModSecurity-nginx
    2.1)下载连接器源码
    git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git

    2.2)查看nginx版本号
    nginx -v
    nginx version: nginx/1.14.0 (Ubuntu)

    2.3)下载nginx对应版本号的源码包,并gpg验证
    wget http://nginx.org/download/nginx-1.14.0.tar.gz

    gpg签名验证
    wget http://nginx.org/download/nginx-1.14.0.tar.gz.asc
    wget http://nginx.org/keys/nginx_signing.key
    gpg --import nginx_signing.key
    gpg --verify nginx-1.14.0.tar.gz.asc nginx-1.14.0.tar.gz
    如果还找不到public key时,可以按提示的KEY ID 搜索一下 gpg --search-keys 520A9993A1C052F8

    2.4)编译模块,并配置到nginx中
    编译模块:
    tar zxvf nginx-1.14.0.tar.gz
    cd nginx-1.14.0/
    ./configure (这里把nginx -V查看到配置参数全放到这里) --add-dynamic-module=../ModSecurity-nginx
    配置提示error: SSL modules require the OpenSSL library时需要安装
    sudo apt install libssl-dev
    配置提示error: the HTTP XSLT module requires the libxml2/libxslt时需要安装
    sudo apt install libxslt1-dev
    配置提示 error: the HTTP image filter module requires the GD library时需要安装
    sudo apt install libgd-dev
    make modules

    复制模块到对应位置:
    sudo cp objs/ngx_http_modsecurity_module.so /usr/lib/nginx/modules
    sudo chmod -x /usr/lib/nginx/modules/ngx_http_modsecurity_module.so

    创建模块配置文件:
    sudo cp /usr/share/nginx/modules-available/mod-http-geoip.conf /usr/share/nginx/modules-available/mod-http-modsecurity.conf

    编辑模块配置文件:
    load_module modules/ngx_http_modsecurity_module.so;

    创建链接:
    sudo ln -s /usr/share/nginx/modules-available/mod-http-modsecurity.conf /etc/nginx/modules-enabled/50-mod-http-modsecurity.conf

    检查配置:
    sudo nginx -t

    3、nginx站点开启waf
    sudo mkdir /etc/nginx/modsec
    sudo cp ~/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf
    sudo cp ~/ModSecurity/unicode.mapping /etc/nginx/modsec/
    modsecurity.conf中SecRuleEngine 设置为On

    sudo touch /etc/nginx/modsec/main.conf
    内容:
    Include "/etc/nginx/modsec/modsecurity.conf"
    SecRule ARGS:testparam "@contains test" "id:1234,deny,status:403"

    默认站点配置启用WAF
    server {
    # ...
    modsecurity on;
    modsecurity_rules_file /etc/nginx/modsec/main.conf;
    }
    main.conf和modsecurity.conf修改后也需要sudo nginx -s reload
    测试 curl localhost?testparam=test 返回403

    4、modsecurity常用配置文件
    TODO

  • 相关阅读:
    作业八
    作业七:用户体验设计案例分析
    作业六。合作编程
    作业五:需求分析
    作业四:结对编程2
    作业四:合作
    作业三:词频统计
    学习进度表
    java程序练习
    简单博客练习
  • 原文地址:https://www.cnblogs.com/xiaomacs/p/11697254.html
Copyright © 2011-2022 走看看