So konfigurieren Sie mod_evasive für Apache DDoS-Schutz

0
125
Den Rise/Shutterstock.com< /figure>

mod_evasive ist ein Apache-Modul, das Ihren Server gegen Brute-Force- und Denial-of-Service-Angriffe schützt. Das Einrichten von mod_evasive bietet Ihnen ein Sicherheitsnetz, um böswillige Akteure abzufangen, bevor sie die Leistung Ihres Servers beeinträchtigen können.

Das Modul wird mit mehreren Konfigurationsparametern geliefert, mit denen Sie die Anzahl gleichzeitiger Anfragen definieren können, die ein Client in einem festgelegten Zeitrahmen stellen kann. Weitere Anfragen werden nach Überschreiten des Limits für einen bestimmten Zeitraum blockiert.

Mod_evasive installieren

Die Installationsschritte variieren je nach Betriebssystem-Distribution und Apache-Version. Verwenden Sie für die beliebteste Kombination von Apache 2.4 auf einem Debian-basierten System die folgenden Schritte. Anweisungen zum Erstellen aus dem Quellcode finden Sie auch im Repository des Projekts.

apt update apt install libapache2-mod-evasive

Installationen über apt aktivieren das Modul automatisch.

Sie können dies mit dem Dienstprogramm apachectl überprüfen:

apachectl -M | grep evasive

Der Name des Moduls sollte angezeigt werden, wenn es aktiv ist.

Konfigurieren der Blockierungseinstellungen

Die Konfigurationsdatei mod_evasive befindet sich normalerweise unter /etc/apache2/mods-enabled/evasive.conf. Es verwendet das gleiche Format wie andere Apache-Konfigurationsdateien. Eine vollständige Referenz finden Sie in den mod_evasive-Dokumenten.

Hier ist eine Beispielkonfigurationsdatei mit mehreren Anpassungen:

<IfModule mod_evasive20.c> DOSPageCount 5 DOSSiteCount 10 DOSPageInterval 1 DOSSiteInterval 2 DOSBlockingPeriod 300 DOSEmailNotify user@example.com </IfModule> Werbung

mod_evasive unterscheidet zwischen Anfragen für eine Seite und Anfragen für eine Site. Sie können diese beiden Sperrfaktoren unabhängig voneinander einstellen. In diesem Beispiel werden Clients blockiert, die den gleichen URI fünfmal in einem Sekundenintervall anfordern. Clients, die innerhalb von zwei Sekunden mehr als zehn URIs von einer einzelnen Site anfordern, werden zusätzlich gesperrt.

Wenn einer der Grenzwerte überschritten wird, wird der Client daran gehindert, weitere Anfragen für a . zu stellen fünf Minuten (300 Sekunden). mod_evasive sendet eine E-Mail an user@example.com, um zu informieren, dass die IP-Adresse gesperrt wurde.

mod_evasive unterstützt auch das Ausführen eines beliebigen Systembefehls, wenn ein Limit erreicht ist. Dies kann verwendet werden, um das Tool in Ihre eigene Anwendung oder Firewall zu integrieren, damit Sie einen Block in Ihrer Datenbank aufzeichnen können. Legen Sie die DOSSystemCommand-Einstellung fest, indem Sie %s verwenden, um die blockierte IP-Adresse anzugeben:

DOSSystemCommand /app/blacklisted_ip.php –ip=%s

Whitelisting Known IPs

mod_evasive unterstützt eine Whitelist bekannter IPs, um die Entwicklung und das Testen zu unterstützen. Entwickler können während der Arbeit an einem Server manchmal ein hohes Anforderungsvolumen erstellen, sei es absichtlich oder nicht.

Verwenden Sie die Einstellung DOSWhiteList, um zu ignorierende IP-Adressbereiche anzugeben. Auf keine dieser Adressen werden Beschränkungen angewendet.

DOSWhiteList 127.0.0.1 DOSWhiteList 192.168.0.*

Wie funktioniert es?

mod_evasive funktioniert, indem es eine Hash-Tabelle von IP-Adressen und URIs in einer temporären Blacklist verwaltet. Die IP-Adresse und die URI werden gehasht, um einen Schlüssel zu erstellen, mit dem überprüft werden kann, ob der Client dieselbe Seite zuvor angefordert hat.

Werbung

Eine Blockierung tritt auf, wenn ein URI oder eine Site in der Hash-Tabelle der IP-Adresse häufiger als von Ihnen zugelassen erscheint. Dies führt dazu, dass ein 403-Statuscode an den Client zurückgesendet wird. Der Status ist die einzige Antwort, die der Client erhält, wodurch die Serverressourcen minimiert werden, die benötigt werden, um Anfragen zu bearbeiten, die als unecht oder bösartig gelten.

Sobald eine Obergrenze erreicht ist, muss der Client die angegebene DOSBlockingPeriod abwarten, bevor er eine weitere erfolgreiche Anforderung stellen kann. Ein erneuter Versuch während der Wartezeit führt zu einer noch längeren Sperre. Andere IP-Adressen werden weiterhin wie gewohnt zugelassen und sollten nicht durch den Denial-of-Service-Versuch gestört werden.

Das Modul kann auf sehr aktiven Servern zu Leistungseinbußen führen. Es muss jede Anfrage aufzeichnen und prüfen, ob die IP gesperrt wurde oder gesperrt werden muss. Beschäftigte Server mit ausreichend Arbeitsspeicher sollten die Einstellung DOSHashTableSize erhöhen, um eine größere speicherinterne Hashtabelle zu ermöglichen. Dies reduziert die Zeit, die benötigt wird, um eine eingehende IP mit ihren anderen aktuellen Anfragen abzugleichen.

DOSHashTableSize 32768

Testen Ihrer Installation

Die beste Methode zum Testen von mod_evasive besteht darin, eine kurze Flut von Anfragen zu starten, um zu überprüfen, wie Ihr Server reagiert. Wenn mod_evasive korrekt aktiviert ist, sollten Sie schnell 403s und eine E-Mail-Benachrichtigung sehen, wenn es konfiguriert ist.

Das ab-Befehlszeilentool kann verwendet werden, um massenhaft Verbindungen zu initiieren:

ab – n 1000 -c 50 http://…

Sie sollten die Parameter -n und -c an Ihre mod_evasive-Konfiguration und die erwarteten Auswirkungen auf den Server anpassen:

  • -n – Die Gesamtzahl der zu stellenden Anforderungen.
  • -c – Die Anzahl der gleichzeitig zu öffnenden Verbindungen.

Werbung

Das obige Beispiel sendet 1.000 Anfragen in Stapeln von 50.

ab ist ein leistungsstarkes Tool, das initiieren kann ein echter Denial-of-Service-Angriff. Vergewissern Sie sich doppelt, dass Sie die richtige Serveradresse angegeben haben, bevor Sie die Anfragen senden!

Zusammenfassung

mod_evasive ist ein einfaches, aber effektives Modul, um zu verhindern, dass Brute-Force-Angriffe den Betrieb Ihres Servers beeinträchtigen. Sie können Beschränkungen pro Seite und pro Site konfigurieren, die für jeden Client gelten, der eine Verbindung versucht. Wenn der Kunde das Limit überschreitet, erhält er eine 403 und muss einer vorübergehenden Sperrfrist zustimmen.

Als Administrator können Sie sich für den Erhalt von E-Mail-Benachrichtigungen bei einer neuen Sperre anmelden wird auferlegt. So bleiben Sie über potenzielle Angriffe auf dem Laufenden und können auf Fehlalarme überwachen. Sie benötigen einen funktionierenden E-Mail-Stack auf dem Server – mod_evasive sendet mit dem System-Mail-Transfer-Agent.

Schließlich ist es möglich, mod_evasive in andere Teile Ihrer Anwendung zu integrieren, indem Sie immer dann einen Systembefehl ausführen, wenn eine IP auf der schwarzen Liste steht. Diese Funktion kann verwendet werden, um einen Datenbankbenutzer zu kennzeichnen, eine Warnung in einem Überwachungstool eines Drittanbieters zu erstellen oder den Block an Ihre anderen Server weiterzuleiten, um zusätzliche Teile Ihrer Infrastruktur zu schützen.