Nginx+ModSecurity安全模块部署的实现

 更新时间:2021年08月13日 09:38:39   作者:逝月流  
本文主要介绍了Nginx+ModSecurity安全模块部署的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

为演示已安装Nginx而未添加ModSecurity的情况,以下操作为先安装Nginx,后添加ModSecurity模块。

ModSecurity是一个开源的跨平台Web应用程序防火墙(WAF)引擎,,完美兼容nginx,是nginx官方推荐的WAF,并且支持支持OWASP规则。

中文网站:http://www.modsecurity.cn

应用实战可参考:http://www.modsecurity.cn/practice/

一、下载

1.Nginx下载

wget http://nginx.org/download/nginx-1.14.2.tar.gz

2.ModSecurity下载

wget http://www.modsecurity.cn/download/modsecurity/modsecurity-v3.0.4.tar.gz

二、部署

1.Nginx部署

1.1安装依赖

yum  install  -y pcre* openssl* gcc c++ make

1.2 编译安装
解压文件

tar  -xvf nginx-1.14.2.tar.gz 
cd nginx-1.14.2/

配置模块

./configure  --prefix=/usr/local/nginx  --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/var/log/nginx/error.log  --http-log-path=/var/log/nginx/access.log  --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock  --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre

执行编译

make
make install

创建账号和目录

useradd nginx -s /sbin/nologin
mkdir /var/tmp/nginx/

2.ModSecurity部署

2.1 安装依赖

yum install -y gcc-c++ flex bison yajl yajl-devel curl-devel curl GeoIP-devel doxygen zlib-devel pcre-devel lmdb-devel libxml2-devel ssdeep-devel lua-devel libtool autoconf automake

2.2 编译安装
解压文件

tar -xvf modsecurity-v3.0.4.tar.gz
cd modsecurity-v3.0.4/

编译安装

./configure
make
make install
cp modsecurity.conf-recommended /usr/local/modsecurity/modsecurity.conf
cp unicode.mapping /usr/local/modsecurity/

3.添加ModSecurity模块

3.1查看Nginx编译参数

/usr/local/nginx/sbin/nginx -V

3.2下载ModSecurity模块

git clone https://github.com/SpiderLabs/ModSecurity-nginx.git

或至下载
https://github.com/SpiderLabs/ModSecurity-nginx 

3.3重新编译Nginx

解压模块

unzip ModSecurity-nginx-master.zip 
#仅在下载安装包情况下,如果是git clone 则不需要

编译安装

./configure  --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre --add-module=../ModSecurity-nginx

 
#此处需要注意/ModSecurity-nginx路径
make
make install

/usr/local/nginx/sbin/nginx -V #查看已经有了ModSecurity模块

添加配置文件

mkdir /usr/local/nginx/conf/modsecurity
cp /usr/local/modsecurity/modsecurity.conf  /usr/local/nginx/conf/modsecurity/
cp /usr/local/modsecurity/unicode.mapping  /usr/local/nginx/conf/modsecurity/

4.配置Nginx虚拟主机

4.1虚拟主机配置

vim /usr/local/nginx/conf/nginx.conf
    modsecurity on;
    modsecurity_rules_file /usr/local/nginx/conf/modsecurity/modsecurity.conf;
    
 #在http节点添加表示全局配置,在server节点添加表示为指定网站配置

4.2Modsecurity配置

vim /usr/local/nginx/conf/modsecurity/modsecurity.conf
#更改一下部分
SecRuleEngine On
SecAuditLogParts ABCDEFHZ

#追加到配置文件
Include /usr/local/nginx/conf/modsecurity/crs-setup.conf
Include /usr/local/nginx/conf/modsecurity/rules/*.conf

4.3下载规则文件

wget http://www.modsecurity.cn/download/corerule/owasp-modsecurity-crs-3.3-dev.zip
#Modsecurity中文网下载
wget https://github.com/coreruleset/coreruleset
#github下载

4.4 配置规则

unzip owasp-modsecurity-crs-3.3-dev.zip 
cd owasp-modsecurity-crs-3.3-dev/

cp crs-setup.conf.example /usr/local/nginx/conf/modsecurity/crs-setup.conf
cp -r rules /usr/local/nginx/conf/modsecurity/

cd /usr/local/nginx/conf/modsecurity/rules
mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
mv RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf

4.5测试

#浏览器 或 curl访问测试,返回403
curl -I 'http://localhost/?id=1 AND 1=1' 

到此这篇关于Nginx+ModSecurity安全模块部署的实现的文章就介绍到这了,更多相关Nginx ModSecurity部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • win10系统安装Nginx的详细步骤

    win10系统安装Nginx的详细步骤

    Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器,同时也提供了IMAP/POP3/SMTP服务,这篇文章主要介绍了win10系统安装Nginx的详细步骤,需要的朋友可以参考下
    2023-02-02
  • Nginx配置防盗链的完整步骤

    Nginx配置防盗链的完整步骤

    这篇文章主要给大家介绍了关于Nginx配置防盗链的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用Nginx具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • Nginx报:Nginx - 504 Gateway Time-out问题解决办法

    Nginx报:Nginx - 504 Gateway Time-out问题解决办法

    这篇文章主要给大家介绍了关于Nginx报:Nginx - 504 Gateway Time-out问题的解决办法,一般是由于程序执行时间过长导致响应超时,例如程序需要执行90秒,而nginx最大响应等待时间为30秒,这样就会出现超时,需要的朋友可以参考下
    2024-01-01
  • 使用supervisor管理nginx+tomcat容器的方法示例

    使用supervisor管理nginx+tomcat容器的方法示例

    这篇文章主要介绍了使用supervisor管理nginx+tomcat容器的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Nginx负载均衡详细介绍

    Nginx负载均衡详细介绍

    nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动态、静态页面的分离,可以按照轮询、ip哈希、URL哈希、权重等多种方式对后端服务器做负载均衡,同时还支持后端服务器的健康检查
    2016-09-09
  • nginx动态添加访问白名单的方法

    nginx动态添加访问白名单的方法

    本篇文章主要介绍了nginx动态添加访问白名单的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • ELK收集Nginx日志的项目实战

    ELK收集Nginx日志的项目实战

    本文主要介绍了ELK收集Nginx日志的项目实战,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • nginx下gzip配置参数详解

    nginx下gzip配置参数详解

    这篇文章主要介绍了nginx下gzip配置参数详解,本文同时给出了配置例子,以及一些注意事项,需要的朋友可以参考下
    2014-08-08
  • nginx openresty 快速入门指南

    nginx openresty 快速入门指南

    OpenResty是基于Nginx与Lua 的高性能Web平台,其**内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项,**用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关,这篇文章主要介绍了nginx openresty 快速入门指南,需要的朋友可以参考下
    2024-02-02
  • nginx配置多个前端项目实现步骤

    nginx配置多个前端项目实现步骤

    本文主要介绍了nginx配置多个前端项目实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03

最新评论