What is Mod_Security?
ModSecurity is an embeddable web application firewall. It provides protection from a range of attacks against web applications and allows for HTTP traffic monitoring and real-time analysis with no changes to existing infrastructure.
It is an open source project that aims to make the web application firewall technology available to everyone.
Detect requests by malicious automated programs such as robots, crawlers and security scanners
Protects against SQL injection and Blind SQL injection.
Blocks Cross Site Scripting (XSS).
OS Command Injection and remote command access.
File name injection.
ColdFusion, PHP and ASP injection.
HTTP Response Splitting.
Universal PDF XSS.
Trojans & Backdoors Detection
How To Install:-
1. Login to your server as a root user.
2. Now, get the full download of the latest version of mod_security by following command
3. Next we unzip the archive and navigate into the directory
tar zxvf modsecurity-apache_2.6.2.tar.gz
4. Now you need to determine which version of Apache you use:
APACHE 1.3.x users
APACHE 2.x users
5. Lets Compile the module now:
/usr/local/apache/bin/apxs -cia mod_security.c
6. Ok, now its time to edit the httpd conf file.
But then, First we will make a backup just in case something goes wrong (“PRECAUTION” is better than “CURE”). And also get the assistance of senior admins in case if you are not confident while setting the various parameters for server.
cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.backup
7. Now that we have backed it all up, we can edit the httpd.conf. Replace pico with nano depending on what you have by below mentioned command
ln -s /usr/bin/nano /usr/bin/pico
so that you can edit the file by pico
Or else you can go with vi editor
8. Lets look for something in the config, do this by holding control and pressing W and you are going to search for
(although any of the IfModules would work fine)
9. Now add this
# Turn the filtering engine On or Off
# Change Server: string
SecServerSignature ” ”
# Make sure that URL encoding is valid
# This setting should be set to On only if the Web site is
# using the Unicode encoding. Otherwise it may interfere with
# the normal Web site operation.
# Only allow bytes from this range
SecFilterForceByteRange 1 255
# The audit engine works independently and
# can be turned On of Off on the per-server or
# on the per-directory basis. “On” will log everything,
# “DynamicOrRelevant” will log dynamic requests or violations,
# and “RelevantOnly” will only log policy violations
# The name of the audit log file
# Should mod_security inspect POST payloads
# Action to take by default
# Require HTTP_USER_AGENT and HTTP_HOST in all requests
SecFilterSelective “HTTP_USER_AGENT|HTTP_HOST” “^$”
# Prevent path traversal (..) attacks
# Weaker XSS protection but allows common HTML tags
# Very crude filters to prevent SQL injection attacks
# Protecting from XSS attacks through the PHP session cookie
SecFilterSelective ARG_PHPSESSID “!^[0-9a-z]*$”
SecFilterSelective COOKIE_PHPSESSID “!^[0-9a-z]*$”
10. Save the file.
Nevertheless to say For Pico editors Ctrl + X then Y and “Esc” :wq! for Vi editors.
11. Restart Apache.
Additionally you can get mod_security rules here:-