This article describes how to install mod_security2 on Debian Lenny. It should work on Etch, too.
On the http://www.modsecurity.org website there is a link to the mod_security2 pakets for Debian. (Community-Produced Binary packages)
Note: You should check this website for the latest versions and change the example „wget“ commands in this howto.
1. Download the pakets and install via dpkg:
wget http://etc.inittab.org/~agi/debian/libapache-mod-security2/2.5.x/etch/libapache2-mod-security2_2.5.5-1~etch1_amd64.deb wget http://etc.inittab.org/~agi/debian/libapache-mod-security2/2.5.x/etch/mod-security2-common_2.5.5-1~etch1_all.deb dpkg -i mod-security2-common_2.5.5-1~etch1_all.deb libapache2-mod-security2_2.5.5-1~etch1_amd64.deb
Note: You may need an other paket than amd64 !!!
2. Create a subfolder for the mod_security rules in the Apache config folder:
mkdir /etc/apache2/modsecurity2 chmod 600 /etc/apache2/modsecurity2
3. Download the rulsets from http://www.modsecurity.org/download/direct.html
wget http://www.modsecurity.org/download/modsecurity-core-rules_2.5-1.6.1.tar.gz
and extract the files and move the „conf“ files to mod security:
tar vfx modsecurity-core-rules_2.5-1.6.1.tar.gz mv *.conf /etc/apache2/modsecurity2/
4. You have to create a symlink to fit Apache log directory to the Debian logs.
(Or fix all rules :-))
ln -s /var/log/apache2 /etc/apache2/logs
5. Enable modsecurity
a2enmod mod-security
6. Configuration
Edit „/etc/apache2/conf.d/mod_security“:
# mod_security configuration directives # ... # Turn the filtering engine On or Off SecFilterEngine On # Some sane defaults #Check if URL characters where encoded SecFilterCheckURLEncoding On #Check UTF-8 encoding SecFilterCheckUnicodeEncoding Off #Allow 1 byte characters # Accept almost all byte values SecFilterForceByteRange 0 255 # Server masking is optional # SecServerSignature "Microsoft-IIS/0.0" SecAuditEngine RelevantOnly # The name of the audit log file SecAuditLog /var/log/apache2/audit_log # You normally won't need debug logging # Debug level set to a minimum SecFilterDebugLog /var/log/apache2/modsec_debug_log SecFilterDebugLevel 0 # Should mod_security inspect POST payloads SecFilterScanPOST On # By default log and deny suspicious requests # with HTTP status 500 SecFilterDefaultAction "deny,log,status:500"
7. Now you can restart your Apache webserver:
/etc/init.d/apache2 restart
8. Links:
http://www.modsecurity.org
http://www.howtoforge.com/apache_mod_security
http://www.debuntu.org/2006/08/13/86-secure-your-apache2-with-mod-security
Pingback: IT Tips and Tricks » Installing Apache2 mod_secutity2 on Debian Lenny
william
31 Dez 2011article doesnt enable modsecurity at all – just intsalls it – mod-security.load never gets loaded – article doesnt talk about the required config settings as well
sebastian
2 Jan 2012sorry my fault.
Wrong revison was online. Fixed it.
Ramses
8 Jan 2012Thanks for sharing!