首页 > 系统相关 >Nginx 安装 ModSecurity 模块

Nginx 安装 ModSecurity 模块

时间:2023-06-08 18:12:18浏览次数:36  
标签:conf nginx ModSecurity modsecurity Nginx usr 模块 local

1、安装ModSecurity
cd /usr/local
git clone https://github.com/SpiderLabs/ModSecurity.git
cd ModSecurity
git submodule init
git submodule update
sh build.sh
./configure
make
make install

2、安装ModSecurity-nginx
cd /usr/local
git clone https://github.com/SpiderLabs/ModSecurity-nginx

3、进入nginx源码目录
./configure --user=www \
--group=www --with-http_ssl_module \
--with-http_stub_status_module \
--with-http_realip_module \
--with-http_slice_module \
--add-module=/usr/local/ModSecurity-nginx

make
make install


4、添加常用的OWASP规则

OWASP(开放式Web应用程序安全项目)是一个开放的社区,由非营利组织 OWASP基金会支持的项目。对所有致力于改进应用程序安全的人士开放,旨在提高对应用程序安全性的认识。其最具权威的就是“10项最严重的Web 应用程序安全风险列表” ,总结并更新Web应用程序中最可能、最常见、最危险的十大漏洞,是开发、测试、服务、咨询人员应知应会的知识。

拷贝modsecurity基础配置文件
mkdir -p /usr/local/nginx/modsecurity/rules
cp /usr/local/ModSecurity/modsecurity.conf-recommended  /usr/local/nginx/modsecurity/modsecurity.conf

下载OWASP规则包,并拷贝配置文件
cd /usr/local
git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
cd owasp-modsecurity-crs
cp crs-setup.conf.example /usr/local/nginx/modsecurity/crs-setup.conf
cp -r rules/ /usr/local/nginx/modsecurity/

进入规则目录,启用自定义规则文件
cd /usr/local/nginx/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

这2个文件就是自定义规则文件
REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf

5、编辑nginx.conf,启用ModSecurity

在http或server节点中添加以下内容(在http节点添加表示全局配置,在server节点添加表示为指定网站配置)这里看具体需要,实际生产业务推荐写在server,这样方便控制

modsecurity on;
modsecurity_rules_file /usr/local/nginx/modsecurity/modsecurity.conf;

nginx -t

如果提示:
nginx: [emerg] "modsecurity_rules_file" directive Rules error. File: /usr/local/nginx/modsecurity/modsecurity.conf. Line: 258. Column: 17. Failed to locate the unicode map file from: unicode.mapping Looking at: 'unicode.mapping', 'unicode.mapping', '/usr/local/nginx/modsecurity/unicode.mapping', '/usr/local/nginx/modsecurity/unicode.mapping'.

拷贝缺失文件
cp /usr/local/ModSecurity/unicode.mapping /usr/local/nginx/modsecurity/unicode.mapping

nginx -t

如果提示:
nginx: [emerg] "modsecurity_rules_file" directive Rules error. File: /usr/local/nginx/modsecurity/rules/REQUEST-910-IP-REPUTATION.conf. Line: 75. Column: 22. This version of ModSecurity was not compiled with GeoIP or MaxMind support.

因为nginx没有添加ngx_http_geoip_module模块,这个模块用于对IP地址进行地域信息的读取。客户端在访问时,通过ip地址能够知道客户端所在的国家,城市。常用于处理不同国家的客户访问。不需要的话可以去掉该规则

mv /usr/local/nginx/modsecurity/rules/REQUEST-910-IP-REPUTATION.conf /usr/local/nginx/modsecurity/rules/REQUEST-910-IP-REPUTATION.conf.bak


修改ModSecurity配置文件

vi /usr/local/nginx/modsecurity/modsecurity.conf

SecRuleEngine DetectionOnly 改为 SecRuleEngine On
SecAuditLogParts ABIJDEFHZ 改为 SecAuditLogParts ABCDEFHZ
SecAuditLog /var/log/modsec_audit.log 审计日志保存到磁盘空间充足的目录

添加
Include /usr/local/nginx/modsecurity/crs-setup.conf
Include /usr/local/nginx/modsecurity/rules/*.conf

最后再检查一次配置
nginx -t

6、重启nginx,检查规则是否生效
systemctl restart nginx

测试访问:http://xxx.com/?id=2%27or%201-3

如果返回403拒绝访问则说明配置成果

标签:conf,nginx,ModSecurity,modsecurity,Nginx,usr,模块,local
From: https://www.cnblogs.com/lbnnbs/p/17467320.html

相关文章

  • CentOS 安装部署 nginx(详细过程)
    准备工作下载nginx:NGINX官方下载可以手动下载,拷贝至CentOS目录,也可以直接在CentOS目录通过wget指令下载$cd/home#进入指定目录,目录请自行选择$wgethttps://nginx.org/download/nginx-1.21.2.tar.gz#下载安装包,版本请自行选择1安装步骤————————......
  • Python使用os模块创建带时间戳的文件
    直接上源码:importosimporttime#定义函数名:在py文件路径下创建cache的txt文件deftxt(name,text):#os.getcwd()获取当前的工作路径;new=os.getcwd()+'/cache/'#判断当前路径是否存在,没有则创建new文件夹ifnotos.path.exists(new):......
  • 智能座舱之蓝牙模块测试要点
    智能座舱蓝牙模块是车辆中的一项重要功能,用于提供与移动设备的无线连接,例如手机、音乐播放器等。下面是对智能座舱蓝牙模块测试的详细介绍:1.连接和配对测试测试蓝牙模块的连接性能,验证其能够与各种类型的设备进行配对和连接。验证蓝牙模块的连接稳定性,包括在连接过程中的自......
  • ASEMI代理英飞凌TDK5100F射频模块的性能与应用分析
    编辑-Z本文将对TDK5100F射频模块进行详细的介绍与分析,包括其性能特点、应用领域、使用方法。通过对这三个方面的阐述,希望能够帮助读者更好地了解TDK5100F射频模块的优势和应用场景。 1、TDK5100F射频模块的性能特点TDK5100F射频模块是一款高性能的无线通信模块,具有以下几个显著的......
  • ASEMI代理英飞凌TDK5100F射频模块的性能与应用分析
    编辑-Z本文将对TDK5100F射频模块进行详细的介绍与分析,包括其性能特点、应用领域、使用方法。通过对这三个方面的阐述,希望能够帮助读者更好地了解TDK5100F射频模块的优势和应用场景。 1、TDK5100F射频模块的性能特点TDK5100F射频模块是一款高性能的无线通信模块,具有以下几个显......
  • Nginx conf for fastapi backend project with variables
    带变量的nginx后端项目配置不同的api项目,挂载不同的域名,只需在配置夹里,修改文件名(建议文件名和域名保持一致)、修改端口号、修改第5行第22行backend_api后面的编号、修改第11行的项目名、可能还需要修改第12行的文件夹名、修改第14行的域名$cat/etc/nginx/sites-avaliable/myap......
  • create_ln.py同步nginx中两个文件夹的内容
    在nginx的sites-avaliable中,增加新文件之后,需要创建软连接到sites-enable里,reload才会生效,所以写了如下脚本:create_ln.py#!/usr/bin/envpython3importosfrompathlibimportPathdefrun_and_echo(cmd:str)->int:print('-->',cmd)returnos.system(cmd)......
  • python基础day21 正则表达式和re模块
     正则表达式的介绍他是一门独立的语言,跟python等的语言没有任何的关系,但是其他语言可以使用正则表达式来做一些功能,主要是用来筛选数据的^(13|14|15|18)[0-9]{9}$形如上述代码的就是正则表达式什么是正则表达式:利用一些特殊符号匹配出想要的数据就是正则表达式,简称正则......
  • Nginx大文件分片上传/多线程上传
    ​ 前言一、SpringMVC简介1.1、SpringMVC引言为了使Spring有可插入的MVC架构,SpringFrameWork在Spring基础上开发SpringMVC框架,从而在使用Spring进行WEB开发时可以选择使用Spring的SpringMVC框架作为web开发的控制器框架。 spring知识图谱分享:1.2、SpringMV......
  • 实验7 面向对象编程与内置模块
    实验任务1task1.py实验源码:classAccount:'''一个模拟银行账户的简单类'''def__init__(self,name,account_number,initial_amount=10):'''构造新账户'''self._name=nameself._card_no......