如何设置 ModSecurity Apache 在 Ubuntu 22.04 LTS 上

在本教程中,我们将向您展示如何设置 ModSecurity Apache 在 Ubuntu 22.04 LTS 上。 对于那些不知道的人,ModSecurity 也称为 Modsec 是一个强大的开源防火墙应用程序,用于 Apache 网络服务器。 它通过规则集运行,允许您自定义和配置服务器安全性。

本文假设您至少具备 Linux 的基本知识,知道如何使用 shell,最重要的是,您将网站托管在自己的 VPS 上。 安装非常简单,假设您在 root 帐户下运行,如果不是,您可能需要添加 ‘sudo‘ 到命令以获取 root 权限。 我将向您展示 ModSecurity 的逐步安装 Apache 在 Ubuntu 22.04(果酱水母)上。 对于 Ubuntu 18.04、16.04 和任何其他基于 Debian 的发行版,如 Linux Mint,您可以按照相同的说明进行操作。

先决条件

  • 运行以下操作系统之一的服务器:Ubuntu 22.04、20.04、18.04 和任何其他基于 Debian 的发行版,如 Linux Mint。
  • 建议您使用全新的操作系统安装来防止任何潜在问题。
  • 对服务器的 SSH 访问(或者如果您在桌面上,则只需打开终端)。
  • 一个 non-root sudo user或访问 root user. 我们建议充当 non-root sudo user,但是,如果您在充当 root 时不小心,可能会损害您的系统。

设置 ModSecurity Apache 在 Ubuntu 22.04 上

步骤 1. 首先,通过运行以下命令确保所有系统包都是最新的 apt 终端中的命令。

sudo apt update sudo apt upgrade

步骤 2. 安装 ModSecurity Apache 在 Ubuntu 22.04 上。

默认情况下,ModSecurity 在 Ubuntu 22.04 基础存储库中可用。 现在运行以下命令将最新版本的 ModSecurity 安装到您的系统中:

sudo apt install libapache2-mod-security2

然后,启用模块并重新启动 Apache2 服务以影响新模块和更改:

sudo a2enmod security2 sudo systemctl restart apache2

步骤 3. 配置 ModSecurity。

ModSecurity 设置为根据默认规则记录事件。 您需要编辑配置文件以调整规则以检测和阻止流量:

sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

接下来,使用您喜欢的编辑器编辑您复制的文件:

sudo nano /etc/modsecurity/modsecurity.conf

更改值 SecRuleEngine 从检测 OnlyOn

SecRuleEngine On

Save 和 close 文件,然后重新启动 Apache 使更改生效:

sudo systemctl restart apache2

步骤 4. 安装最新的 OWASP ModSecurity 规则。

现在我们从 Open Web Application Security Project (OWASP) 下载最新的 ModSecurity Core Rule Set (CRS):

wget https://github.com/coreruleset/coreruleset/archive/refs/tags/v3.3.2.zip

接下来,解压下载的文件:

unzip v3.3.2.zip.zip

将 CRS 设置文件从新目录移动到您的 ModSecurity 目录中:

mv coreruleset-3.3.2/crs-setup.conf.example /etc/modsecurity/crs-setup.conf

之后,我们编辑您的 Apache security2.conf 文件,以确保它会加载 ModSecurity 规则:

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

在末尾添加以下两行:

IncludeOptional /etc/modsecurity/*.conf Include /etc/modsecurity/rules/*.conf

Save 和 close 文件,然后重新启动 Apache 使更改生效:

sudo systemctl restart apache2

步骤 4. 测试 ModSecurity 配置。

现在我们编辑默认值 Apache 配置文件并添加两个附加指令,以默认配置为例:

sudo nano /etc/apache2/sites-available/000-default.conf

添加以下文件:

<VirtualHost *:80>     ServerAdmin [email protected]     DocumentRoot /var/www/html      ErrorLog ${APACHE_LOG_DIR}/error.log     CustomLog ${APACHE_LOG_DIR}/access.log combined      SecRuleEngine On     SecRule ARGS:modsecparam "@contains test" "id:4321,deny,status:403,msg:'ModSecurity test rule has triggered'" </VirtualHost>

Save 和 close 文件,然后重新启动 Apache 使更改生效:

sudo systemctl restart apache2

最后,在下面输入以下命令:

curl localhost/index.html?modsecparam=test

响应代码应该是 403。日志中应该有一条消息显示定义的 ModSecurity 规则有效。

恭喜! 您已成功安装 ModSecurity Apache. 感谢您使用本教程安装 ModSecurity Apache 在 Ubuntu 22.04 LTS Jammy Jellyfish 系统上。 如需更多帮助或有用信息,我们建议您查看 ModSecurity 官方网站.