ModSecurity: Web Application Firewall | Enjyn Gruppe
Hallo Welt
Hallo Welt
Original Lingva Deutsch
Übersetzung wird vorbereitet...
Dieser Vorgang kann bis zu 60 Sekunden dauern.
Diese Seite wird erstmalig übersetzt und dann für alle Besucher gespeichert.
0%
DE Zurück zu Deutsch
Übersetzung durch Lingva Translate

241 Dokumentationen verfügbar

Wissensdatenbank

ModSecurity WAF Apache Nginx

Zuletzt aktualisiert: 11.01.2026 um 12:07 Uhr

ModSecurity: Web Application Firewall

ModSecurity ist eine Open-Source WAF (Web Application Firewall), die Webanwendungen vor Angriffen wie SQL-Injection, XSS und anderen OWASP Top 10 Bedrohungen schützt.

Installation (Apache)

# Ubuntu/Debian
sudo apt update
sudo apt install libapache2-mod-security2 -y

# Modul aktivieren
sudo a2enmod security2

# Basis-Konfiguration aktivieren
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

# Apache neustarten
sudo systemctl restart apache2

Installation (Nginx)

# ModSecurity für Nginx kompilieren
sudo apt install -y libmodsecurity3 libmodsecurity-dev

# Nginx ModSecurity Connector
git clone https://github.com/SpiderLabs/ModSecurity-nginx.git

# Nginx mit Modul kompilieren (oder dynamisch laden)

ModSecurity aktivieren

sudo nano /etc/modsecurity/modsecurity.conf
# Von DetectionOnly auf On ändern
SecRuleEngine On

# Audit-Log aktivieren
SecAuditEngine On
SecAuditLog /var/log/apache2/modsec_audit.log

# Request Body prüfen
SecRequestBodyAccess On
SecRequestBodyLimit 13107200
SecRequestBodyNoFilesLimit 131072

OWASP Core Rule Set (CRS)

# CRS herunterladen
cd /etc/modsecurity
sudo git clone https://github.com/coreruleset/coreruleset.git

# Konfiguration
sudo cp coreruleset/crs-setup.conf.example coreruleset/crs-setup.conf

# In Apache einbinden
sudo nano /etc/apache2/mods-enabled/security2.conf
<IfModule security2_module>
    SecDataDir /var/cache/modsecurity
    IncludeOptional /etc/modsecurity/*.conf
    IncludeOptional /etc/modsecurity/coreruleset/crs-setup.conf
    IncludeOptional /etc/modsecurity/coreruleset/rules/*.conf
</IfModule>

Wichtige Regeln

Das CRS schützt vor:

  • SQL-Injection (SQLi)
  • Cross-Site Scripting (XSS)
  • Local File Inclusion (LFI)
  • Remote Code Execution (RCE)
  • Session Fixation
  • Scanner Detection

Eigene Regeln

sudo nano /etc/modsecurity/custom-rules.conf
# IP blockieren
SecRule REMOTE_ADDR "@ipMatch 192.168.1.100" "id:1001,phase:1,deny,status:403,msg:'IP blocked'"

# User-Agent blockieren
SecRule REQUEST_HEADERS:User-Agent "BadBot" "id:1002,phase:1,deny,status:403"

# SQL-Injection Pattern
SecRule ARGS "@detectSQLi" "id:1003,phase:2,deny,status:403,msg:'SQL Injection detected'"

# Path Traversal
SecRule REQUEST_URI "\.\./" "id:1004,phase:1,deny,status:403,msg:'Path traversal'"

Whitelist / False Positives

# Regel deaktivieren
SecRuleRemoveById 941100

# Für bestimmten Pfad deaktivieren
<Location /admin/editor>
    SecRuleRemoveById 941100 942100
</Location>

# Für bestimmten Parameter
SecRuleUpdateTargetById 941100 "!ARGS:content"

Logs analysieren

# Audit-Log
sudo tail -f /var/log/apache2/modsec_audit.log

# Blockierte Requests
sudo grep "Access denied" /var/log/apache2/error.log

# ModSecurity Debug
SecDebugLog /var/log/modsec_debug.log
SecDebugLogLevel 3

Paranoia Level

# In crs-setup.conf
# Level 1 = Standard (wenig False Positives)
# Level 2 = Strenger
# Level 3 = Noch strenger
# Level 4 = Paranoid (viele False Positives)
SecAction "id:900000,phase:1,nolog,pass,t:none,setvar:tx.paranoia_level=1"

Weitere Hilfe

Enjix Beta

Enjyn AI Agent

Hallo 👋 Ich bin Enjix — wie kann ich dir helfen?
120