• 首页
    • English
    • 中文
  • 关于我们
  • 服务项目
    • 谷歌SEO服务
    • WordPress建站服务
    • 谷歌ADS/SEM代运营
  • 项目案例
    • 医疗
    • 建材
    • 机械加工
    • 照明
    • 电商
    • 电脑硬件
  • 博客
    • 服务器运维
      • aliyun
      • 服务器安装
      • 宝塔面板
      • 虚拟化
      • 阿里云
      • Centos
      • linux
      • nginx
    • 电子商务
    • 免费资源
    • PHP
      • Magento
      • WordPress
    • 大数据采集
    • Python
    • Javascript
    • SEO
    • 未分类
  • 联系我们
What's Hot

机械模具加工公司网站设计案例

24 10 月, 2023

快速原型公司案例

24 10 月, 2023

陶瓷加工网站案例

24 10 月, 2023
Facebook Twitter Instagram
  • 中文
  • English
Facebook Twitter Instagram
VPSEO VPSEO
  • 首页
    • English
    • 中文
  • 关于我们
  • 服务项目
    • 谷歌SEO服务
    • WordPress建站服务
    • 谷歌ADS/SEM代运营
  • 项目案例
    • 医疗
    • 建材
    • 机械加工
    • 照明
    • 电商
    • 电脑硬件
  • 博客
    • 服务器运维
      • aliyun
      • 服务器安装
      • 宝塔面板
      • 虚拟化
      • 阿里云
      • Centos
      • linux
      • nginx
    • 电子商务
    • 免费资源
    • PHP
      • Magento
      • WordPress
    • 大数据采集
    • Python
    • Javascript
    • SEO
    • 未分类
  • 联系我们
VPSEO VPSEO
Home»nginx»Nginx 平台下安装 Modsecurity 并配置规则
nginx

Nginx 平台下安装 Modsecurity 并配置规则

chrispengcnBy chrispengcn20 10 月, 2021没有评论1 Min Read
Facebook Twitter Pinterest LinkedIn Tumblr Email
Share
Facebook Twitter LinkedIn Pinterest Email

Modsecurity介绍

Modsecurity起初是Apache服务器的一个开源模块,用于实现一个简单的WAF,但随着Web服务的发展,Nginx的使用量越来越多,最新统计如下:

但是如果想Nginx也能使用Modsecurity,实现WAF功能,则必须安装Apache相关的软件,因为这个时候,Modsecurity是强依赖于Apache的。所以,作者在最新版V3.x后,直接重构了Modsecurity,去掉了所有Apache相关的依赖,直接把Modsecurity变成了一个库,也就是libmodsecurity,具体区别,可以查看:http://www.modsecurity.cn/practice/post/13.html

安装前说明

如果想要Nginx可以使用libmodsecurity,来实现WAF功能,总共要安全三个部分:

  • 最新版的Nginx:额,为什么是最新版?因为这样最简单。如果是比较旧的版本,就得去查查是否支持了。
  • ModSecurity-nginx connector:负责调用libmodsecurity对Nginx请求进行识别。
  • libmodsecurity:modsecurity核心部分,用于实现请求识别。
    当上述的三部分安装完了,Nginx就具备了WAF功能了,但是刚开始,没有任何规则,有和没有一样。因此我们需要一批初始化的规则,来实现基本的WAF功能,这里有三个免费的规则集,可以用来完成WAF规则初始化。
  • CRS:OWASP维护,也是modsecurity官方规则集
  • Comodo:comodo维护的免费规则,comodo是个商业化安全公司,需要注册账号才能下载,下载时要选择 nginx/modsecurityV3.0 那个版本下载。
  • AtomiCorp:AtomiCorp维护的规则,也需要注册账号才能下载。

实践安装

由于Nginx默认是不支持modsecurity,所以Nginx要采用编译安装,在编译时,把modsecurity模块编译到Nginx里,安装步骤分为三步:

  1. 编译libmodsecurity,得到libmodsecurity 库和头文件。
  2. 下载ModSecurity-nginx connector:git clone https://github.com/SpiderLabs/ModSecurity-nginx.git
  3. 编译Nginx,指定configure参数:./configure –add-module=/path/to/ModSecurity-nginx

编译libmodsecurity

  1. 从项目主页:https://github.com/SpiderLabs/ModSecurity 获取最新的release版本,截止本文发表时,最新版本是V3.0.4
  2. 解压下载到的压缩包,得到目录:modsecurity-v3.0.4
  3. 运行以下命令,编译并安装:
cd modsecurity-v3.0.4
./build.sh
./configure --prefix=/usr/local/modsecurity
make && make install

这样就得到了libmosecurity相关的文件,以供Nginx调用。

编译Nginx

  1. 从Nginx主页:http://nginx.org/en/download.html 下载最新的Nginx源码包,本教程用的是nginx-1.18.0
  2. 下载ModSecurity-nginx connector:git clone https://github.com/SpiderLabs/ModSecurity-nginx.git
  3. 解压Nginx和ModSecurity-nginx源码包,得到两个文件夹:modsecurity-nginx-v1.0.1和nginx-1.18.0
  4. 运行一下命令编译Nginx:
cd nginx-1.18.0
./configure --add-module=/root/download/modsecurity-nginx-v1.0.1/ --prefix=/usr/local/nginx 
make && make install

以上命令没有任何错误输出,即表示安装成功。

配置Nginx并启动

  1. 从libmodsecurity源码文件夹里,获取modsecurity配置文件:modsecurity.conf-recommended
  2. 执行命令:mv modsecurity.conf-recommended /usr/local/nginx/conf/modsecurity.conf
  3. 修改Nginx配置文件,启用modsecurity
  4. 下载CRS规则集:git clone https://github.com/coreruleset/coreruleset/
  5. 在modsecurity.conf文件中修改:SecRuleEngine为on,并在末尾增加如下配置(注意修改路径):
Include /root/coreruleset/crs-setup.conf
Include /root/coreruleset/rules/*.conf
  1. 启动Nginx: /usr/local/nginx/sbin/nginx

效果对比

为了验证modsecurity是否真的可以起到web应用防火墙的作用,这里搭建一个开源安全靶机(搭建方法点击打开项目主页即可获取),并且使用AWVS进行扫描,观察使用前后的漏洞数量变化,结果如下:

从上倒下分别是:

  • 不开启modsecurity:高危漏洞11个
  • 开启modsecurity,使用comodo规则:高危漏洞7个
  • 开启modsecurity,使用crs规则:高危漏洞6个
  • 开启modsecurity,只记录,不拦截攻击:高危漏洞11个

由此可以,开源的规则可以帮我们拦截掉一些攻击,但不能拦截所有的。
modsecurity提供了完整的WAF功能,但是如果拦截、识别攻击,需要我们自己根据自己的业务形态,自定义规则去识别。

写在最后

modsecurity提供了完整的WAF功能,并且免费的规则集可以帮助我们快速搭建起一个可用的WAF,降低Web服务被攻击的风险。但是如果想识别的准确、降低误报率,这还需要我们自己去学习modsecurity规则编写的方法,根据自己公司业务的需求,制定规则。
还有两个地方,在使用modsecurity时需要注意的,第一就是如果服务器时Apache,那么请使用V2.x版本,因为现在apache connector还不太稳定。第二就是别期望太高,正如前面所说的,modsecurity提供的是WAF功能,不是规则,所以,要想准确识别攻击,还是需要自己写规则,这个逃不过去。
如果你想使用modsecurity,这个Modsecurity中文站上的教程还是很完整的,可以多看看:http://modsecurity.cn/

https://www.freebuf.com/sectool/274495.html

Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
chrispengcn
  • Website

Related Posts

nginx wordpress 反向代理缓存规则

14 5 月, 2023

nginx屏蔽中国ip地址以及开放特定ip地址

23 6 月, 2022

Nginx 自动识别PC端与Mobile移动端

7 1 月, 2022

在CentOS上安装ClamAV

4 1 月, 2022
Add A Comment

Leave A Reply Cancel Reply

*

code

导航
  • 首页
  • 关于我们
  • 服务项目
  • 项目案例
  • 博客文章
  • 联系我们
博客
  • 服务器运维
  • 服务器安装
  • nginx
  • PHP
  • WordPress
  • Python
  • Javascript
  • SEO
  • 电子商务
  • 大数据采集
  • 宝塔面板
  • 数据库
  • 电子商务
  • 虚拟化
  • 阿里云
导航
  • 首页
  • 关于我们
  • 谷歌SEO服务
  • 谷歌ADS/SEM代运营
  • WordPress建站服务
  • 项目案例
  • 博客
  • 联系我们
最新文章
  • 机械模具加工公司网站设计案例
  • 快速原型公司案例
  • 陶瓷加工网站案例
  • CNC数控加工日文网站案例
  • 触摸一体机数字标牌厂家网站案例
关于我们
关于我们

广州纬来科技有限公司
联系地址:广东省广州市番禺区富华中路富源二街18号合和大厦809

QQ : 13602156
Email : 13926026058@139.com
Contact: +86 13926026058

Facebook Twitter YouTube LinkedIn
© 2025 广州纬来科技有限公司 粤ICP备2023105857号-2
  • 首页
  • 关于我们
  • 谷歌SEO服务
  • 谷歌ADS/SEM代运营
  • WordPress建站服务
  • 项目案例
  • 博客
  • 联系我们

Type above and press Enter to search. Press Esc to cancel.