如何设置 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
从检测 Only
至 On
:
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 官方网站.