文档章节

CentOS7下Nginx使用ModSecurity进行WAF防护

從此迷花粉
 從此迷花粉
发布于 01/25 13:55
字数 718
阅读 89
收藏 2

CentOS7下Nginx使用ModSecurity进行WAF防护

环境:CentOS7,当前yum源中Nginx最新版本1.12.2。ModSecurity为v3.本文适用于nginx反代Tomcat,或者nginx和php的环境,一切nginx可以反向代理的环境理论上都适合。

1 安装nginx

yum install nginx -y
yum update nginx
yum info nginx

2 安装编译依赖环境

yum install autoconf automake bzip2 flex gcc git httpd-devel libaio-devel libass-devel libjpeg-turbo-devel libpng12-devel libtheora-devel libtool libva-devel libvdpau-devel libvorbis-devel libxml2-devel libxslt-devel perl texi2html unzip zip openssl openssl-devel geoip geoip-devel

yum install -y gcc make automake autoconf libtool
yum install -y pcre pcre-devel libxml2 libxml2-devel curl curl-devel httpd-devel

4 编译ModSecurity lib

git clone https://github.com/SpiderLabs/ModSecurity
cd ModSecurity
git checkout -b v3/master origin/v3/master
sh build.sh
git submodule init
git submodule update
./configure
make && make install

输入路径为:/usr/local/modsecurity/lib

5 编译ModSecurity-Nginx[需要nginx源码]

git clone https://github.com/SpiderLabs/ModSecurity-nginx.git
wget http://nginx.org/download/nginx-1.12.2.tar.gz

解压nginx: tar zxvf nginx-1.12.2.tar.gz
查看nginx参数: nginx -V CentOS7源中nginx的输出为,复制configure arguments后面的参数备用

cd nginx-1.12.2 开始编译,注意add-dynamic-module前面是两个横线

./configure –prefix=/usr/share/nginx –sbin-path=/usr/sbin/nginx –modules-path=/usr/lib64/nginx/modules –conf-path=/etc/nginx/nginx.conf –error-log-path=/var/log/nginx/error.log –http-log-path=/var/log/nginx/access.log –http-client-body-temp-path=/var/lib/nginx/tmp/client_body –http-proxy-temp-path=/var/lib/nginx/tmp/proxy –http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi –http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi –http-scgi-temp-path=/var/lib/nginx/tmp/scgi –pid-path=/run/nginx.pid –lock-path=/run/lock/subsys/nginx –user=nginx –group=nginx –with-file-aio –with-ipv6 –with-http_auth_request_module –with-http_ssl_module –with-http_v2_module –with-http_realip_module –with-http_addition_module –with-http_xslt_module=dynamic –with-http_image_filter_module=dynamic –with-http_geoip_module=dynamic –with-http_sub_module –with-http_dav_module –with-http_flv_module –with-http_mp4_module –with-http_gunzip_module –with-http_gzip_static_module –with-http_random_index_module –with-http_secure_link_module –with-http_degradation_module –with-http_slice_module –with-http_stub_status_module –with-http_perl_module=dynamic –with-mail=dynamic –with-mail_ssl_module –with-pcre –with-pcre-jit –with-stream=dynamic –with-stream_ssl_module –with-google_perftools_module –with-debug –with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' –with-ld-opt='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E' --add-dynamic-module=../ModSecurity-nginx

make modules
编译完成的so文件在: ./objs/ngx_http_modsecurity_module.so

6 下载默认的配置文件

  • 下载ModSecurity配置文件:
mkdir modsec
cd modsec
wget https://raw.githubusercontent.com/SpiderLabs/ModSecurity/v3/master/modsecurity.conf-recommended
mv modsecurity.conf-recommended /etc/nginx/modsecurity.conf

打开此文件,设置启用waf设置,修改
SecRuleEngine DetectionOnly 为 SecRuleEngine On
  • 配置WAF核心规则:
git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
cd owasp-modsecurity-crs/
cp -R rules/ /etc/nginx/conf/
cp crs-setup.conf.example /etc/nginx/crs-setup.conf

设置启用这些规则:
vim /etc/nginx/modsecurity.conf

增加以下几行:
#加载规则配置文件
Include crs-setup.conf
#加载所有规则
Include rules/*.conf
#禁用某个规则方法
#SecRuleRemoveById 911250
  • 配置nginx启用so链接库
复制链接库
cp ./nginx-1.12.2/objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/
修改配置文件
vim /etc/nginx/nginx.conf
增加下面一行
load_module /usr/share/nginx/modules/ngx_http_modsecurity_module.so
修改主机定义,或者虚拟主机定义文件
load_module /usr/share/nginx/modules/ngx_http_modsecurity_module.so;
http {
    server {
        #针对全局启用
         modsecurity on;
        modsecurity_rules_file /etc/nginx/modsecurity.conf;
        location / {
            #如果需要针对单个应用启用,编辑这里
        }
    }
}

7 重启nginx

service nginx restart

tailf /var/log/modsec_audit.log

本文转载自:http://www.duyaofei.com/2018/05/06/centos7%E4%B8%8Bnginx%E4%BD%BF%E7%94%A8modsecurity%E8%BF%9B%E8...

從此迷花粉

從此迷花粉

粉丝 7
博文 174
码字总数 63807
作品 0
海淀
程序员
私信 提问
wget无法下载github上的软件

github上的这种地址https://github.com/downloads/SpiderLabs/ModSecurity/modsecurity-apache_2.7.1.tar.gz用wget下载报错,用curl下载是可以的 wget https://github.com/downloads/Spider......

pyruby
2014/10/14
5.5K
5
简单搭建 ELK + OpenWAF 环境

ELK 是比较火的开源日志分析系统 文章主要介绍,ELK 的 docker 部署及与 OpenWAF 的结合 OpenWAF简介 OpenWAF是第一个全方位开源的Web应用防护系统(WAF),他基于nginx_lua API分析HTTP请求...

温柔魔君
2017/07/05
2
0
senginx中配置了modsecurity后,访问网站,modsecurity报好多error

@InfoHunter 你好,想跟你请教个问题: 1.senginx中配置了modsecurity后,访问网站,modsecurity报好多error,如下图 我看别人都是只报info信息,这是怎么回事呢? 2.在编译安装时,加了--w...

小苏1106
2014/06/27
584
0
senginx下如何正确使用modsecurity,同样都是web防火墙与Naxsi有啥区别

@InfoHunter 你好,想跟你请教个问题: 1.按照官网上的使用步骤配置在location / {...}下,关于modsecurity的打印信息就都在error.log中了吗?我查看了一下只有几行打印信息如下图: 之后就没...

小苏1106
2014/06/25
1K
1
WAF-FLE 0.6.0 RC2 发布,ModSecurity 控制台

WAF-FLE 前两天刚刚发布了 0.6.0 RC1 版本,包含了非常多的新特性和改进,但因为其中发现一些严重的问题,今天紧急发布了 0.6.0 RC2 版本,修复了导致用户无法创建新的传感器以及一些使用上的...

oschina
2012/10/28
830
0

没有更多内容

加载失败,请刷新页面

加载更多

浅谈Adapter适配器模式

一、前言 适配器模式分为两类,所谓“适配”就是适当的配合或者恰当的配合,想一下电源的适配器,完成的作用是将交流电220V转化成不同的直流电压,来对手机、电脑、台灯等充电,如果没有这些...

青衣霓裳
9分钟前
0
0
Kubernetes+Docker+Istio 容器云实践

随着社会的进步与技术的发展,人们对资源的高效利用有了更为迫切的需求。近年来,互联网、移动互联网的高速发展与成熟,大应用的微服务化也引起了企业的热情关注,而基于Kubernetes+Docker的...

宜信技术学院
11分钟前
0
0
工作流升级登场,云盒子让文件流转更顺畅

云盒子企业网盘作为深耕企业私有云盘领域的老选手, 深谙企业用户对文档管理的细致化追求, 同时从日积月累的各行各业用户口中,收集产品使用体验和痛点, 将“用户体验”贯穿整个网盘产品的设计...

yhz66
16分钟前
0
0
linux:nohup 不生成 nohup.out的方法

nohup java -jar /xxx/xxx/xxx.jar >/dev/null 2>&1 & 关键在于最后的 >/dev/null 2>&1 部分,/dev/null是一个虚拟的空设备(类似物理中的黑洞),任何输出信息被重定向到该设备后,将会石沉...

OSC知行合一
18分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部