ModSecurity, auch bekannt als Modsec, ist eine kostenlose Open-Source-Firewall für Webanwendungen für Apache-Webserver. ModSecurity ist ein Apache-Modul, das Ihnen hilft, Ihren Webserver vor verschiedenen Arten von Angriffen zu schützen, darunter SQL-Injection, XSS, Trojaner, Bots, Session Capture/Hijacking und viele mehr. ModSecurity bietet leistungsstarke Regelsätze mit Webüberwachung, Protokollierung und Zugriffskontrolle in Echtzeit.
In diesem Tutorial zeigen wir Ihnen, wie Sie Mod Security mit Apache unter Ubuntu 18.04 installieren und konfigurieren.
Voraussetzungen
- Ein frisches Ubuntu 18.04 VPS auf der Atlantic.Net Cloud Platform.
- Eine statische IP-Adresse, die auf Ihrem Server konfiguriert ist.
Schritt 1 – Erstellen Sie einen Atlantic.Net Cloud-Server
Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie Ubuntu 18.04 als Betriebssystem mit mindestens 2 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.
Sobald Sie sich bei Ihrem Ubuntu 18.04-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.
apt-get update -y
Schritt 2 – LAMP Stack installieren
Zuerst müssen Sie LAMP Stack auf Ihrem Server installieren. Sie können es installieren, indem Sie den folgenden Befehl ausführen:
apt-get install apache2 mariadb-server php7.2-mysql php7.2 libapache2-mod-php7.2 unzip git -y
Starten Sie nach der Installation von LAMP den Apache-Dienst und aktivieren Sie ihn nach dem Systemneustart mit dem folgenden Befehl:
systemctl start apache2 systemctl enable apache2
An diesem Punkt ist der Apache-Webserver installiert und wird auf Ihrem Server ausgeführt.
Schritt 3 – ModSecurity installieren
apt-get install libapache2-mod-security2 -y
Sobald die Installation abgeschlossen ist, starten Sie den Apache-Dienst neu, um die Änderungen zu übernehmen.
systemctl restart apache2
Als nächstes können Sie auch überprüfen, ob das Modul geladen wurde oder nicht, indem Sie den folgenden Befehl ausführen:
apachectl -M | grep security
Sie sollten die folgende Ausgabe erhalten:
security2_module (shared)
Schritt 4 – ModSecurity konfigurieren
Standardmäßig sind keine Sicherheitsregeln konfiguriert, daher müssen Sie sie zuerst aktivieren. Benennen Sie dazu die ModSecurity-Standardkonfigurationsdatei /etc/modsecurity/modsecurity.conf-recommended in /etc/modsecurity/modsecurity.conf.
umcp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
Als nächstes bearbeiten Sie die Datei mit Ihrem bevorzugten Texteditor:
nano /etc/modsecurity/modsecurity.conf
Suchen Sie die folgende Zeile:
SecRuleEngine DetectionOnly
Ersetzen Sie es durch Folgendes:
SecRuleEngine On
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den Apache-Dienst neu, damit die Änderungen wirksam werden.
systemctl restart apache2
Schritt 5 – ModSecurity Core Rule herunterladen und konfigurieren
Der Standardregelsatz von ModSecurity ist im Verzeichnis /usr/share/modsecurity-crs verfügbar, aber es wird empfohlen, einen neuen Regelsatz von GitHub herunterzuladen.
Entfernen Sie zuerst die alten Regeln mit dem folgenden Befehl:
rm -rf /usr/share/modsecurity-crs
Laden Sie als Nächstes den neuesten Regelsatz mit dem folgenden Befehl herunter:
git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git /usr/share/modsecurity-crs
Als nächstes müssen Sie diesen Regelsatz in der Apache-Konfiguration aktivieren. Sie können es aktivieren, indem Sie die Datei /etc/apache2/mods-enabled/security2.conf:
bearbeitennano /etc/apache2/mods-enabled/security2.conf
Fügen Sie die folgenden Zeilen oberhalb der Zeile „“
hinzuIncludeOptional "/usr/share/modsecurity-crs/*.conf IncludeOptional "/usr/share/modsecurity-crs/rules/*.conf
Speichern und schließen Sie die Datei. Starten Sie dann den Apache-Dienst neu und aktivieren Sie das Apache-Header-Modul, um die Änderungen zu implementieren.
a2enmod headers systemctl restart apache2
Zu diesem Zeitpunkt ist ModSecurity so konfiguriert, dass es mit dem Apache-Webserver funktioniert.
Schritt 6 – ModSecurity testen
Nach der Konfiguration von ModSecurity können Sie versuchen, bösartige Skripte in einem Webbrowser auszuführen und prüfen, ob ModSecurity-Regeln ausgelöst werden.
Öffnen Sie Ihren Webbrowser und geben Sie die URL http://your-server-ip/index.html?exec=/bin/bash ein . Sie sollten auf der folgenden Seite eine verbotene Fehlermeldung erhalten:
Um die Regeln von ModSecurity zum Schutz vor einem simulierten XSS-Angriff zu testen, greifen Sie auf die URL http://your-server-ip/?q="> zu von Ihrem Webbrowser. Sie sollten den folgenden Bildschirm sehen:
Um die ModSecurity-Regeln anhand von Nessus-Scans zu testen, verwenden Sie einen curl-Befehl mit Nessus-Scannern, um HTTP-Anforderungen wie unten gezeigt an den Apache-Server zu senden:
curl -i http://your-server-ip -A Nessus
Sie sollten eine 403 Forbidden-Antwort erhalten, da ModSecurity den User Agent als Nessus-Scan identifiziert hat:
HTTP/1.1 403 Forbidden Date: Sat, 21 Dec 2019 04:17:24 GMT Server: Apache/2.4.29 (Ubuntu) Content-Length: 278 Content-Type: text/html; charset=iso-8859-1
Schritt 7 – Eine bestimmte Domain von ModSecurity ausschließen
In einigen Fällen müssen Sie eine bestimmte Domain vom ModSecurity-Schutz ausschließen. Um ModSecurity für eine bestimmte Domäne zu deaktivieren, öffnen Sie die Konfigurationsdatei des virtuellen Apache-Hosts für eine bestimmte Domäne:
nano /etc/apache2/site-enabled/your-domain.conf
Fügen Sie die folgenden Zeilen innerhalb des Blocks
<IfModule security2_module> SecRuleEngine Off </IfModule>
Speichern und schließen Sie die Datei. Starten Sie dann den Apache-Dienst neu, um die Änderungen zu übernehmen.
systemctl restart apache2
Schlussfolgerung
Wir haben überprüft, wie Sie ModSecurity installieren und konfigurieren, um Ihren Apache-Webserver vor böswilligen Angriffen zu schützen. Weitere Informationen finden Sie in der ModSecurity-Dokumentation unter ModSecurity.