一、找文档
- 这个链接下页面,点击进去
- 填写信息,就会发邮件给你一份全英文PDF文档,
- 这是我自己下载下来的:https://pan.baidu.com/s/1tVoMImW6AmynlV5pgDRSOQ
提取码:653l
二、安装编译ModSecurity
- 根据服务器而定,我自己是跳过
apt-get install -y 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
2. 按顺讯执行下去,大约15分钟,fatal: No names found, cannot describe anything
出现这个也没关系
$ git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity
$ cd ModSecurity
$ git submodule init
$ git submodule update
$ ./build.sh
$ ./configure
$ make
$ make install
三、下载nginx连接器
# Git地址可能会有变
$ git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx
四、重新编译nginx
- 查看当前系统nginx版本
nginx -V
,configure arguments后面的参数很重要,复制出来
- 下载nginx
$ wget http://nginx.org/download/nginx-1.18.0.tar.gz
$ tar zxvf nginx-1.18.0.tar.gz
- 编译动态模块
$ cd nginx-1.18.0
$ ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl=/root/openssl-1.1.1g --with-pcre=/root/pcre-8.44 --with-pcre-jit --with-ld-opt=-ljemalloc --add-dynamic-module=/root/ModSecurity-nginx
$ make modules
$ cp objs/ngx_http_modsecurity_module.so /usr/local/nginx/modules/ngx_http_modsecurity_module.so
./configure --with-compat --add-dynamic-module=…/ModSecurity-nginx
注意:1.有些添加了–with-compat 编译出来的模块不能用,也是查了好久。链接 2、nginx -V,自己版本的参数也是需要复制进来,缺少什么就需要安装什么,不然就会出现is not binary compatible
- 在nginx.conf添加配置,验证nginx配置文件是否正确
nginx -t
,然后重启nginx服务
load_module /usr/local/nginx/modules/ngx_http_modsecurity_module.so;
五、nginx配置
1.vim nginx.conf
# 注意下面路径是绝对路径
modsecurity on;
modsecurity_rules_file /usr/local/nginx/conf/modsecurity/main.conf;
2.复制modsecurity.conf-recommended文件和unicode.mapping文件
3. 复制crs-setup.conf.example文件
4. 创建main.conf, 注意下面路径是绝对路径
Include /usr/local/nginx/conf/modsecurity/modsecurity.conf
Include /usr/local/nginx/conf/modsecurity/crs-setup.conf
5.文件位置