Loading...
 
Skip to main content

History: ModSecurity

Source of version: 20 (current)

Copy to clipboard
            {syntax type="markdown"  editor="wysiwyg"} # ModSecurity Configuration for Tiki

# 1. Introduction

ModSecurity is a powerful, open-source web application firewall (WAF) module that enhances security by protecting **web applications, including Tiki sites, from a wide range of threats** such as **SQL injection, cross-site scripting (XSS), and malicious bots attempting to scrape content or exploit vulnerabilities**. It operates based on predefined rules to filter and block potentially harmful requests. This guide provides a comprehensive walkthrough for setting up and configuring ModSecurity, ensuring **optimal security while preserving Tiki's usability and functionality**.

# 2. Installation

## Step 1: Install ModSecurity

**For Apache (Debian/Ubuntu)**
{CODE(colors=>lua)}
sudo apt update
sudo apt install libapache2-mod-security2
{CODE}

## Step 2: Enable ModSecurity

Enable ModSecurity by copying the recommended configuration file: 
{CODE(colors=>lua)}
sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
{CODE} 
Then, **edit the file**: 
{CODE(colors=>lua)}
sudo nano /etc/modsecurity/modsecurity.conf
{CODE} 
Find: 
{CODE(caption=>apache)}
SecRuleEngine DetectionOnly
{CODE} 
Change it to: 
{CODE(caption=>apache)}
SecRuleEngine On
{CODE} 
**Save and close the file.**

## Step 3: Verify Installation

Check if ModSecurity is enabled: 
{CODE(colors=>lua)}
sudo apachectl -M | grep security2
{CODE} 
Expected output: 
{CODE(colors=>lua)}
 security2_module (shared)
{CODE} 
If the module is not loaded, restart Apache: 
{CODE(colors=>lua)}
sudo systemctl restart apache2
{CODE}

# 3. Basic Configuration

## Step 1: Enable the OWASP CRS Rules

Enable the **OWASP Core Rule Set (CRS)**: 
{CODE(colors=>lua)}
sudo nano /etc/apache2/mods-enabled/security2.conf
{CODE} 
Ensure this line is included: 
{CODE(caption=>apache)}
IncludeOptional /usr/share/modsecurity-crs/*.conf
{CODE} 
Restart Apache: 
{CODE(colors=>lua)}
sudo systemctl restart apache2
{CODE}

## Step 2: Adjust Anomaly Scoring

Modify anomaly scoring to **reduce false positives**: 
{CODE(colors=>lua)}
sudo nano /etc/modsecurity/crs/crs-setup.conf
{CODE} 
Change: 
{CODE(caption=>apache)}
SecAction "id:900110,phase:1,nolog,pass,t:none,setvar:tx.inbound_anomaly_score_threshold=10000"
SecAction "id:900120,phase:2,nolog,pass,t:none,setvar:tx.inbound_anomaly_score_threshold=10000"
SecAction "id:900130,phase:1,nolog,pass,t:none,setvar:tx.outbound_anomaly_score_threshold=10000"
{CODE} 
Restart Apache: 
{CODE(colors=>lua)}
sudo systemctl restart apache2
{CODE}

# 4. Tiki-Specific Configuration

## Step 1: Handling False Positives

Exclude **static files**: 
{CODE(colors=>lua)}
sudo nano /etc/modsecurity/crs/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
{CODE} 
Add: 
{CODE(caption=>apache)}
SecRule REQUEST_URI "\.(jpeg|jpg|gif|png|bmp|ico|css|js)$" "id:1000017,phase:1,pass,nolog,ctl:ruleEngine=Off"
{CODE}

Allow **file uploads in Tiki**: 
{CODE(caption=>apache)}
SecRule REQUEST_URI "@beginsWith /tiki-upload_file.php" "id:1000021,phase:2,pass,nolog,ctl:ruleRemoveById=200004"
{CODE} 
Restart Apache: 
{CODE(colors=>lua)}
sudo systemctl restart apache2
{CODE}

## Step 2: Handling Language-Specific False Positives

Some actions by users on Tiki sites may trigger alerts or blocking due to ModSecurity's filtering rules. For example, words with multiple accented characters in a single word, like **"Měšťáček"** (Czech), can be flagged as suspicious.

To prevent such cases from causing a **500 error** or blocking the page:

## Review ModSecurity logs for blocked requests:

 {CODE(colors=>lua)}
   sudo tail -f /var/log/apache2/modsec_audit.log
   {CODE}

## Identify the specific rule blocking the request.

## Create an exception rule in `REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf`.

 {CODE(caption=>apache)}
   SecRule REQUEST_URI "@beginsWith /tiki-editpage.php" "id:1000022,phase:2,pass,nolog,ctl:ruleRemoveById=942100"
   {CODE}

## Restart Apache:

 {CODE(colors=>lua)}
   sudo systemctl restart apache2
   {CODE}

This ensures ModSecurity does not incorrectly block legitimate content written in different languages.

# Conclusion

This guide helps secure Tiki with ModSecurity, prevent false positives, and block malicious bots. Regularly monitor logs and adjust exclusion rules for usability.




{DIV(class=titlebar)}related pages{DIV}


((Security Admin)) 
((Advanced Settings))


{DIV(class=titlebar)}external links{DIV}


- http://www.modsecurity.org
- http://es.wikipedia.org/wiki/Mod_Security
- http://sourceforge.net/projects/mod-security/



{DIV(class=titlebar)}aliases for this page{DIV}


(alias(mod security)) | (alias(mod_security))