Hero Image

Install ModSecurity WAF on Apache – RHEL 9

Install ModSecurity WAF on Apache – RHEL 9

ModSecurity is an open-source Web Application Firewall (WAF) for Apache.

Step 1 – Install ModSecurity

dnf install -y mod_security
systemctl restart httpd

Step 2 – Configure ModSecurity

Copy the recommended baseline configuration:

cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf 2>/dev/null || \
cp /usr/share/doc/libapache2-mod-security2/examples/modsecurity.conf-recommended \
   /etc/modsecurity/modsecurity.conf 2>/dev/null

Set engine to On:

sed -i 's/SecRuleEngine DetectionOnly/SecRuleEngine On/' /etc/modsecurity/modsecurity.conf

Step 3 – Install OWASP Core Rule Set (CRS)

cd /etc/modsecurity
git clone https://github.com/coreruleset/coreruleset.git crs
cp crs/crs-setup.conf.example crs/crs-setup.conf

Add to Apache config:

IncludeOptional /etc/modsecurity/*.conf
IncludeOptional /etc/modsecurity/crs/crs-setup.conf
IncludeOptional /etc/modsecurity/crs/rules/*.conf

Step 4 – Test and reload Apache

apachectl configtest && systemctl reload apache2 2>/dev/null || \
apachectl configtest && rc-service apache2 reload

Step 5 – Test WAF is active

curl 'http://localhost/?q=<script>alert(1)</script>'
# Should receive 403 Forbidden