用心打造
VPS知识分享网站

如何安装ModSecurity Apache模块?教程来了!

什么是 ModSecurity?

ModSecurity 是一个开源的 Web 应用程序防火墙 (WAF) 模块,适用于 Apache HTTP 服务器 (Apache) 和其他 Web 服务器。它通过监控和过滤客户端与 Web 应用程序之间的 HTTP 流量,提供额外的安全保障。ModSecurity 模块旨在保护 Web 应用程序免受各种类型的攻击,包括但不限于:
跨站点脚本 (XSS) 攻击: ModSecurity 可以检查并过滤 HTTP 请求和响应,以查找可能被注入网页并利用漏洞的恶意脚本或代码。SQL
注入攻击: ModSecurity 可以通过分析和验证 HTTP 请求的内容来检测并阻止执行未经授权的 SQL 查询的尝试。
远程文件包含 (RFI) 攻击: ModSecurity 可以阻止攻击者将远程文件包含到 Web 应用程序中,从而防止恶意代码的执行。
本地文件包含 (LFI) 攻击: ModSecurity 可以检测并阻止利用 Web 应用程序漏洞包含本地文件的尝试,这些尝试可能会暴露敏感的系统文件。
跨站点请求伪造 (CSRF) 攻击: ModSecurity 可以强制执行安全措施,以确保对 Web 应用程序发出的请求是合法的并且来​​自授权来源。

ModSecurity 使用基于规则的引擎,根据预定义的规则集分析和评估 HTTP 请求和响应。这些规则集定义了触发特定操作(例如阻止、记录或修改请求)的模式和条件。ModSecurity 支持自定义规则创建,允许管理员根据其特定需求定制安全策略。在本文中,您将学习如何安装 ModSecurity Apache 模块。

如何安装ModSecurity Apache模块?教程来了!

如何安装 ModSecurity Apache 模块

步骤1.安装ModSecurity

打开终端或通过 SSH 连接到您的 Ubuntu 20.04 服务器,并使用以下命令切换到 root 用户,以便您拥有后续操作的权限。然后,根据提示输入密码。

$ sudo -i
使用 sudo -i 切换到 root 用户

接下来,更新软件包存储库以确保您拥有最新的软件包信息。

$ apt update -y
更新软件包存储库

使用以下命令下载并安装 ModSecurity Apache 模块,然后键入 y 并回车。

$ apt install libapache2-mod-security2
更新软件包存储库

重新启动 Apache 服务

$ systemctl 重启 apache2
重新启动 Apache 服务

确保安装的软件版本至少为 2.9

$ apt-cache 显示 libapache2-mod-security2
确保安装的软件版本至少为 2.9

步骤2.配置ModSecurity

将默认的 ModSecurity 配置文件复制到一个新文件。然后使用您喜欢的编辑器编辑该文件。在本例中,我们使用 nano 编辑器。

$ cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
$ nano /etc/modsecurity/modsecurity.conf
将默认的 ModSecurity 配置文件复制到新文件

将 SecRuleEngine 的值从DetectionOnly更改为On

更改 SecRuleEngine 的值

然后,按 Ctrl + X 保存更改,然后按 y 并回车。接下来重新启动 Apache 服务。

$ systemctl 重启 apache2
重启 Apache 服务

下载 OWASP 核心规则集

OWASP 核心规则集 (CRS) 是一组旨在通过防御各种类型的攻击来增强 Web 应用程序安全性的规则。OWASP CRS 是一个由社区驱动的开源项目。它由安全专业人员和志愿者团队持续更新和维护,确保其与新出现的威胁和漏洞保持同步。下载 CRS,您可以受益于安全社区的集体知识和专业知识。

请定期更新 CRS 规则集,以便及时获取最新的安全增强功能和改进。为了确保您拥有最新的 ModSecurity 规则,您可以从开放 Web 应用程序安全项目 (OWASP) 的CoreRuleSet.org下载最新的 ModSecurity 核心规则集 (CRS) ,并根据需要替换 GitHub 链接。

$ wget https://github.com/coreruleset/coreruleset/archive/v3.3.0.zip
下载最新的 ModSecurity 核心规则集(CRS)

根据提供的消息摘要验证下载文件的校验和,将“vFileName”替换为实际文件名(例如 v3.3.0.zip)。

$ sha1sum FileName.zip && echo ProvidedChecksum
根据提供的消息摘要验证下载文件的校验和

然后,解压缩该文件。

$ unzip 文件名.zip
解压缩文件

接下来,将 CRS 安装文件从新目录移动到您的 ModSecurity 目录中。

$ mv coreruleset-3.3.0/crs-setup.conf.example /etc/modsecurity/crs-setup.conf
移动 CRS 安装文件

您也可以选择将规则目录从新目录移动到您的 ModSecurity 目录。此步骤是可选的。

$ mv coreruleset-3.3.0/rules/ /etc/modsecurity/
移动规则目录

之后,编辑 Apache security2.conf 文件,确保它能够加载 ModSecurity 规则。和往常一样,我们使用 nano 编辑器。

$ nano /etc/apache2/mods-enabled/security2.conf

在配置文件中,确保包含以下两行。如果没有,请将其添加到文件中。完成编辑后,保存文件。

包括可选的 /etc/modsecurity/*.conf
包括 /etc/modsecurity/rules/*.conf
编辑你的 Apache security2.conf 文件

重新启动 Apache 服务。

$ systemctl 重启 apache2
重新启动 Apache 服务

如果您无法重新启动 Apache,请返回 Apache security2.conf 文件并通过在行首添加 # 来注释掉此文件路径:# IncludeOptional /usr/share/modsecurity-crs/owasp-crs.load。

$ nano /etc/apache2/mods-enabled/security2.conf
重新启动 Apache 服务

现在,您应该能够重新启动 Apache 服务。

$ systemctl 重启 apache2
重新启动 Apache 服务

步骤3.测试ModSecurity配置

现在,我们可以创建一个测试阻止规则并检查是否会收到 403 错误和 ModSecurity 日志条目。

编辑默认 Apache 配置文件。如果您尚未更改默认 Apache 配置文件,则其名称应为 /etc/apache2/sites-available/000-default.conf。在本例中,我们将默认文件更改为 /etc/apache2/sites-available/mytestsite.com.conf。请将默认配置文件替换为您的默认配置文件。

$ nano /etc/apache2/sites-available/000-default.conf
编辑您的默认 Apache 配置文件。

在文件底部上方,添加以下自定义 ModSecurity 规则。您可以根据需要更改 ID 号和消息。

$ SecRuleEngine开启
SecRule ARGS:testparam "@contains test" "id:999,deny,status:403,msg:'测试成功'"
编辑您的默认 Apache 配置文件。

按 Ctrl + X,然后按 y 并回车保存更改。

重新启动 Apache 服务。

$ systemctl 重启 apache2
重新启动 Apache 服务

打开浏览器,访问你的服务器 IP 或该服务器上的域名,并在后面加上 ?testparam=test(例如 domain.com/?testparam=test)。在本例中,我们使用 mytestsite.com/?testparam=test。不出所料,我们收到了 403 禁止访问错误。

测试成功

在 Apache 的 ModSecurity 错误日志中,您还可以使用错误消息(“测试成功”)或 ID 号(999)搜索此日志:

$ cat /var/log/apache2/error.log | grep '测试成功'
搜索错误日志

之后,您可以从配置文件中删除此测试规则。

结论

安装 ModSecurity Apache 模块是增强 Web 服务器安全性并保护 Web 应用程序免受常见攻击的重要一步。记得利用其强大的功能来检测和预防各种类型的 Web 漏洞。ModSecurity 模块及其丰富的规则集提供了额外的防御层,让您安心无虞,并帮助您满足安全要求。请务必定期更新规则集并微调配置,以确保在不影响合法流量的情况下提供最佳保护。

赞(0)
未经允许不得转载;国外VPS测评网 » 如何安装ModSecurity Apache模块?教程来了!
分享到