在Ubuntu的Apache2上使用ModSecurity

我已经在Ubuntu 20.04上验证了在Debian/Ubuntu上使用Apache设置ModSecurity的方法。

sudo apt install libapache2-mod-security2
sudo a2enmod security2
sudo systemctl restart apache2

确认安全性2已经启用。

$ ls /etc/apache2/mods-available/ | grep security2
security2.conf
security2.load

modsecurity.conf 的配置

cd /etc/modsecurity
sudo mv modsecurity.conf-recommended modsecurity.conf
SecRuleEngine On
(省略)
SecAuditLogParts ABCEFHJKZ
(省略)

重新启动 Apache2

sudo systemctl restart apache2

下载规则

wget https://github.com/coreruleset/coreruleset/archive/v3.3.0.tar.gz
tar xvf v3.3.0.tar.gz

下载的规则设置

sudo mkdir /etc/apache2/modsecurity-crs/
sudo mv coreruleset-3.3.0/ /etc/apache2/modsecurity-crs/
cd /etc/apache2/modsecurity-crs/coreruleset-3.3.0/
sudo mv crs-setup.conf.example crs-setup.conf
#       IncludeOptional /usr/share/modsecurity-crs/*.load
        IncludeOptional /etc/apache2/modsecurity-crs/coreruleset-3.3.0/crs-setup.conf
        IncludeOptional /etc/apache2/modsecurity-crs/coreruleset-3.3.0/rules/*.conf

验证Apache2的配置是否正确

sudo apache2ctl -t

重新启动Apache2

sudo systemctl restart apache2

如果想暂时停止使用ModSecurity,请按照以下方法重新启动apache2。

SecRuleEngine Off
(省略)