【网络安全】如何在 Apache 安装开源 WAF

2023-05-16

说明:本文以 Windows 环境下的 Apache 安装 mod_security 为例,介绍开源 WAF 产品的安装使用。

http://www.modsecurity.cn/
https://github.com/SpiderLabs/ModSecurity

一、WAF 基本介绍

WAF 全称 Web Application Firewall,即 Web 应用防火墙。Web 应用防火墙是通过执行一系列针对 HTTP/HTTPS 的安全策略来专门为 Web 应用提供保护的一款产品,跟网络防火墙的作用不同。

WAF 的使用场景:例如服务器中有些安全性比较差的应用程序,比如旧版的 wordpress、discuz、phpwind 等,审计和修改全部代码比较麻烦,这时候最好的办法就是通过部署 WAF 来实现安全防护。

WAF 可以防护的常见风险包括:SQL 注入、XSS、利用本地/远程文件包含漏洞进行攻击、PHP 代码注入、黑客扫描网站、源代码/错误信息泄露等等。

目前市面上的 WAF 非常多,总体上可以分成 3 类:硬件型 WAF(厂商安装)、云 WAF(比如阿里云腾讯云华为云的 WAF,购买服务)、软件型 WAF(可以部署在 Apache、Nginx 等 HTTPServer 中,有很多开源的产品)。

二、下载 mod_security

下载和安装 Apache 的步骤参考:《02-Windows 安装 phpstudy》。

如果使用 phpstudy 内置的 Apache,Apache 文件在 Extensions 目录下,如:E:\phpstudy_pro\Extensions\Apache2.4.39

1、下载 mod_security

下载 mod_security,根据操作系统位数选择,win64 是 64 位,win32 是 32 位。Apache VS17 binaries and modules download

解压 mod_security-2.9.3-win64-VS16.zip,复制两个文件:1)复制 mod_security2.so 到 apache/modules 文件夹 2)复制 yajl.dll 到 apache/bin 文件夹

2、修改 Aapche 配置文件

修改 Apache2.4.39\conf\httpd.conf 主要修改内容(没有就加上,有就取消注释,放在相同的模块附近):取消注释:

LoadModule security2_module modules/mod_security2.so

下面添加一行:


LoadModule unique_id_module modules/mod_unique_id.so
  
LoadModule unique_id_module modules/mod_unique_id.so

添加

Include conf/modsecurity/*.conf

3、修改 modsecutiry 配置文件

打开 mod_security-2.9.3-win64-VS16\mod_security-2.9.3\mod_security 复制一个 modsecurity.conf-recommended,改名为 modsecurity.conf

在 Apache2.4.39\conf 下创建一个文件夹,命名为 modsecurity 把 modsecurity.conf 放在 modsecurity 文件夹下

modsecurity.conf 修改/添加两行配置:

SecRuleEngine On
SecDefaultAction "deny,phase:2,status:403"

此处含义是开启安全规则引擎,如果触发规则,默认防护措施是返回 HTTP 403 错误。修改日志路径,否则 Apache 启动会报路径不存在的错误:

SecAuditLog E:\phpstudy_pro\Extensions\Apache2.4.39\logs\modsec_audit.log

因为没有 unicode.mapping 文件,这一行要注释

SecUnicodeMapFile unicode.mapping 20127

三、添加 owasp 规则

1、下载规则文件

https://github.com/SpiderLabs/owasp-modsecurity-crs

2、配置规则

解压 owasp-modsecurity-crs-3.2.0,把 rules 文件夹复制到 Apache2.439\conf\modsecurity 目录下复 制 crs 根 目 录 下 的 crs-setup.conf.example , 重 命 名 为 crs-setup.conf,放在 Apache2.4.39\conf\modsecurity 目录下

3、修改 httpd.conf

Apache2.4.39\conf\httpd.conf 再添加下面这一行(第一行前面添加过了):

Include conf/modsecurity/rules/*.conf

4、重启 Apache

所有配置修改完以后重启 Apache。

5、测试注入

这时候尝试注入,返回 phpstudy 的 403 页面:

如果 sqlmap 也无法注入:

sqlmap --purge     (先清空缓存)
sqlmap.py -u http://localhost/school/url.php?id=1

结果显示有 75 次 403 禁止访问的错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【网络安全】如何在 Apache 安装开源 WAF 的相关文章

  • Raspberry Pi B安装系统,无需显示屏玩转树莓派

    准备物品 xff1a 1 树莓派开发板 xff0c 我的是B型 xff08 比较老 xff0c 建议买2B 43 xff09 xff1b 2 SD卡 xff0c 用于存储 xff0c 我用的是16G的 xff08 最低多少G我没查 xff0
  • Win10安装DNW相关驱动

    我用的是开发板使用的是S5PV210的芯片 xff0c 想要使用DNW工具进行烧录程序就要先安装相关的驱动 下面我来说一下安装的具体步骤 xff0c 因为常规方法是没有办法正常安装的 1 禁用驱动签名 步骤一 xff1a 要先禁止掉系统的强
  • 从零开始编写一个上位机(串口助手)QT Creator + C++

    提示 xff1a 本博客作为学习笔记 xff0c 有错误的地方希望指正 xff0c 此文可能会比较长 xff0c 作为学习笔记的积累 xff0c 希望对来着有帮助 绪论 xff1a 笔者这里使用的是QTCreator和C 43 43 来实现
  • MPU6050对卡尔曼、一阶互补滤波、二阶互补滤波的比较

    这是总体的滤波效果 这是放大的版的 可以看出 xff0c 卡尔曼和二阶基本在重合在一起 xff0c 一阶也还好 xff0c 也没有差得太远 这里是从一放在桌子上一段时间后再进行测试的 xff0c 可以看出一阶的跟随性上面要比其他二个都要好
  • 基于UCOSIII+机智云的远程空调遥控器

    一年前 xff0c 我通过师兄的介绍知道了机智云这家创业公司 xff0c 后来 xff0c 他们的经理来我们学校开了一次宣讲会 xff0c 然后我就以个人开发者的名义申请了他们家的GoKit2代开发板 xff0c 开始对这家公司有一定的关注
  • VMware Workstation12安装Ubuntu和VMware Tools教程

    之前我通过百度经验上的过程来安装Ubuntu16 xff0c 但是每次安装的时候没有什么问题 xff0c 就是安装好了Tools xff0c 也设置好了共享文件夹 xff0c 但是在路径 xff1a mnt hgfs 下每次都找不到共享文件
  • IIC上拉电阻的选择

    上周项目评审的时候 xff0c 评审部门问了我一个问题 xff1a 为什么单片机内部有上拉电阻 xff0c 你们还要用外部的上拉电阻 xff1f 我的答复如下 xff1a 上拉电阻的选取要考虑上限值和下限值这两点 xff1a 上限值的最大限
  • 手写RTOS-创建工程

    今天开始我手写RTOS的第一步 xff0c 创建一个工程 这个工程要能够在MDK环境中能够进行编译和仿真 xff0c 不用借助任何的开发板和仿真器 xff0c 完全基于Cotex M3内核进行实验 现在我们开始创建这一个工程 xff0c 首
  • STM8S之TIM2_CH1输出不了PWM波解决办法

    最近由于项目需要 xff0c 用到STM8S103F3P6 xff0c 开发方式采用库函数方式开发 xff0c 编译环境为ST Visual Develop 43 Cosmic CxSTM8 32K 4 3 4 初始化PWM的程序如下 xf
  • 陀螺仪和加速度计互补滤波的一些推导

    1 首先 xff0c 简单介绍一下加速度计和陀螺仪的一些特性 加速度计 xff1a 静态稳定性好 xff0c 动态响应较慢 xff0c 在高频时信号不可用 xff0c 在运动时其数据相对不可靠 陀螺仪 xff1a 动态性能好 xff0c 响
  • 树莓派4B gpio readall 出现Oops - unable to determine board type... model: 17

    树莓派使用GPIO接口是基于wiringPi的 官网链接 xff1a http wiringpi com 1 xff1a 出现问题的界面 pi 64 raspberrypi gpio v gpio version 2 50 Copyrigh
  • 树莓派4B +远程SSH+远程桌面

    一 有线SSH连接树莓派 我的实验环境是笔记本电脑 43 树莓派4B 具体步骤为 xff1a 1 电脑连接上无线网络 xff0c 将电脑网线连接树莓派 2 打开如下界面 3 双击WLAN gt gt 点击属性 gt gt 再点击共享 选择以
  • 树莓派4B+wifi远程无线连接

    在树莓派无线连接前 xff0c 先设置一个静态IP 一来可以防范DHCP自动分配的ip来回变动 xff0c 导致远程SSH时常无法连接 xff1b 二来还可以提高树莓派的网络连接速率 1 一般先使用HDMI连接树莓派 xff0c 若没有额外
  • ESP32 FreeRTOS-流缓冲区(12)

    提示 xff1a 好记性不如烂笔头 本博客作为学习笔记 xff0c 有错误的地方希望指正 文章目录 前言 xff1a 一 xStreamBufferCreate xStreamBufferCreateWithCallback 二 xStre
  • windows10下安装docker,并运行ubuntu

    先上三个参考链接 xff1a 安装参考链接docker安装 xff1b docker镜像仓库 xff1a docker hub xff1b docker官方windows安装参考文档 xff1a install docker desktop
  • windows10下使用docker开启Ubuntu桌面

    先安装docker xff1a https blog csdn net Mr FengT article details 107007999 然后随便在仓库中选择一个带有桌面的Ubuntu 比如我下载的 xff1a docker pull
  • Linux下的tar压缩解压缩命令详解

    tar c 建立压缩档案 x xff1a 解压 t xff1a 查看内容 r xff1a 向压缩归档文件末尾追加文件 u xff1a 更新原压缩包中的文件 这五个是独立的命令 xff0c 压缩解压都要用到其中一个 xff0c 可以和别的命令
  • Apex安装

    直接 xff1a pip install apex 最后发现会出错 xff0c 用不了 所以使用以下方法来安装 xff1a git clone https github com NVIDIA apex cd apex python setu
  • ROS 主从通信机制要点记录

    本文主机是PC xff0c 从机是树莓派4B 1 主从机器都处于同一局域网下 xff0c 即连接同一wifi 2 分别在主从机上终端输入 ifconfig 查看当前ip 3 分别打开主从机器的 etc hosts 文件 xff0c 使用su
  • 怎么制作自己的数据集

    我们在做深度学习时 xff0c 一般都是跑别人公开的数据集 xff0c 如果想要跑自己的数据集怎么办 xff1f 今天就记录一下我自己用的一种方法 1 假设待分类一共有n类 2 新建一个文件夹 xff0c 在该文件夹下新建n子个文件夹和n个

随机推荐

  • python 将列表中的字符串转为数字

    python 将列表中的字符串转为数字 转自 xff1a https www jb51 net article 86561 htm 本文实例讲述了Python中列表元素转为数字的方法 分享给大家供大家参考 xff0c 具体如下 xff1a
  • AI编程软件会取代程序员吗?

    最近听到同事问了这样一个问题 xff0c 今天就来好好的唠一唠 xff0c 随着科学技术的发展 xff0c 现在生命上都已经开始出现AI编程软件了 不由得感叹 xff0c 一句现在时代发展还真快呀 xff01 然后我就和他一样产生了一种小小
  • python的requests快速上手、高级用法和身份认证

    https www cnblogs com linkenpark p 10221362 html 快速上手 迫不及待了吗 xff1f 本页内容为如何入门 Requests 提供了很好的指引 其假设你已经安装了 Requests 如果还没有
  • MongoDB

    MongoDB简介 MongoDB是一个基于分布式文件存储的数据库 由C 43 43 语言编写 旨在为WEB应用提供可扩展的高性能数据存储 解决方案 MongoDB是一个介于关系数据库和非关系数据库之间的产品 xff0c 是非关系数据库当中
  • 路由器的连接——图解

    导读 现如今路由器的使用越来越普遍 xff0c 路由器有很多网线口 xff0c 你知道这些网线口该如何连接吗 xff1f 路由器后面都有哪些口 下图为一张最常用的路由器接口示意图 我们可以看到 xff0c 除了电源接口外 xff0c 路由器
  • 【PX4自动驾驶用户指南】距离传感器

    距离传感器 xff08 测距仪 xff09 距离传感器提供距离测量 xff0c 可用于地形跟踪 地形保持 如摄影时精确悬停 改进着陆行为 距离辅助 高度限制警告 碰撞预防等 本节列出了PX4支持的距离传感器 链接到更详细的文档 xff0c
  • 【MATLAB UAV Toolbox】使用指南(一)

    开始使用UAV Toolbox 设计 xff0c 仿真和部署无人机应用程序 UAV Toolbox给设计 仿真 测试和部署无人机应用程序提供了工具和参考应用 你能够设计自动飞行算法 无人机任务和飞行控制器 飞行日志分析仪应用程序可以让您交互
  • 【MATLAB UAV Toolbox】使用指南(二)

    可视化和回放MAVLink飞行日志 这个例子将展示如何将包含MAVLink包的遥测日志 xff08 TLOG xff09 加载进MATLAB 提取的详细信息用来绘图 然后再次仿真飞行 xff0c 这些消息通过MAVLink通信接口重新发布
  • ROS小乌龟程序在服务器通信的应用

    上次我们已经利用launch 文件和话题通信成功实现了小乌龟的位置与姿态的消息发布 xff0c 这次我们将利用服务通信来实现这一功能 我们将以spawn 产卵 xff0c 生成新的小乌龟 为例进行实践 首先是对相关信息的获取 xff1a r
  • STM32实验:串口接受和发送消息

    在STM32里 xff0c USART负责进行串口通信 STM32可以通过串口和其他设备进行传输并行数据 xff0c 是全双工 异步时钟控制 xff0c 设备之间进行的是点对点的数据传输 对应的STM32引脚分别是RX xff08 接收端
  • 关于传感器标定(imu标定,camera标定,camera-imu联合标定)

    博主最近在帮同门做实验 关于传感器这些标定也是初次接触 xff0c 使用orb slam3代码包 其中涉及一些传感器标定 xff0c 这里就把我用的东西汇总一下 目录 1 imu标定 1 1 使用imu utlies标定 1 1 1安装步骤
  • nuxt服务器渲染,获取数据赋值给组件 - nuxtServerInit

    前言 xff1a vue 43 nuxt js 项目中 xff0c 根据IP定位赋值 xff0c 头部可切换城市 xff0c header在layouts下调用 xff0c 首页根据定位接口返回一些数据 async asyncData ct
  • Docker基础篇

    视频链接 xff1a https www bilibili com video BV1og4y1q7M4 xff08 大名鼎鼎的B站狂神说 xff09 1 概述 官网 xff1a https docs docker com 1 1 容器较为
  • Docker进阶篇

    视频链接 xff1a https www bilibili com video BV1og4y1q7M4 xff08 大名鼎鼎的B站狂神说 xff09 1 Docker镜像详解 1 1 UnionFS xff08 联合文件系统 xff09
  • sw模型转urdf,并在gazebo和rviz中显示

    sw模型转urdf xff0c 并在gazebo和rviz中显示 1 sw模型转urdf1 1建立机器人的三维模型1 2机器人三维模型预处理1 3装配1 4建立坐标系 2 显示2 1 在gazebo中显示2 2 在rviz中显示 3 让模型
  • JSON对象/数组与JSON字符串之间的相互转换

    文章目录 前言JSON介绍如何判断JS数据类型JSON数组转化为JSON字符串JSON对象转化为JSON字符串JSON字符串转化为JSON数组 对象注意点 前言 这里先介绍一个个人觉得很好用的谷歌浏览器的功能 xff1a snippet 就
  • js分片上传&断点续传

    一 基本介绍 1 xff0c 什么是 WebUploader xff1f WebUploader 是由百度公司团队开发的一个以 HTML5 为主 xff0c FLASH 为辅的现代文件上传组件 官网地址 xff1a http fex bai
  • JavaScript超大文件上传解决方案:分片断点上传(一)

    前段时间做视频上传业务 xff0c 通过网页上传视频到服务器 视频大小 小则几十M xff0c 大则 1G 43 xff0c 以一般的HTTP请求发送数据的方式的话 xff0c 会遇到的问题 xff1a 1 xff0c 文件过大 xff0c
  • 基于JS的大文件分片

    项目需要上传超大文件 xff0c 后台为DJANGO xff0c 不能直接用H5 的FILE API来POST xff0c 所以采用slice分片 在分片后为BLOB不能直接传 xff0c bolb转file有些浏览器又有支持问题 所以做一
  • 【网络安全】如何在 Apache 安装开源 WAF

    说明 xff1a 本文以 Windows 环境下的 Apache 安装 mod security 为例 xff0c 介绍开源 WAF 产品的安装使用 http www modsecurity cn https github com Spid