Dieser Artikel ist Teil der Apache Server Guide-Reihe:

  • Sicherung von Apache auf Ubuntu - Teil 1
  • Sicherung von Apache auf Ubuntu - Teil 2
  • Apache-Performance optimieren - Teil 1
  • Apache Performance optimieren - Teil 2
  • Einrichten von namensbasiertem Virtualhost Apache
  • Einrichten von IP und Port-Based Virtualhost in Apache
  • So richten Sie das Kennwortschutz-Webverzeichnis in Apache ein
  • Einrichten von Apache Server mit SSL-Unterstützung unter Ubuntu
  • Einrichten von Fail2ban, um Apache vor einem DDOS-Angriff zu schützen
  • Wie man Webdav mit Apache auf Ubuntu einrichtet
  • Überwachen Sie Apache Web Server mit Mod_status
  • So schützen Sie sich gegen DDoS mit Mod_evasive auf Apache Server

Mod_evasive ist ein Apache-Modul, das im Falle eines HTTP-DoS- oder DDoS-Angriffs oder eines Brute-Force-Angriffs Ausweichmaßnahmen bietet. mod_evasive meldet derzeit schädliche Aktivitäten per E-Mail und Syslog. Das mod_evasive-Modul erstellt eine interne dynamische Hash-Tabelle mit IP-Adressen und URIs und verweigert jede einzelne IP-Adresse unter einer der folgenden Bedingungen:

  • Die gleiche Seite mehr als einige Male pro Sekunde anfordern
  • Mehr als 50 gleichzeitige Anfragen für dasselbe Kind pro Sekunde erstellen
  • Anfragen während temporärer Sperrliste stellen (in einer Sperrliste)

In diesem Tutorial werde ich erklären, wie man mod_evasive auf Ihrem Apache-Server installiert, konfiguriert und verwendet. Dieses Tutorial verwendet einen Ubuntu 14.04 Server.

Installieren von mod_evasive

Stellen Sie zunächst sicher, dass der Apache-Server installiert ist und ausgeführt wird.

Als Nächstes können Sie das Modul mod_evasive installieren, indem Sie Folgendes ausführen:

 sudo apt-get installieren libapache2-mod-evasive 

Nach der Installation von mod_evasive können Sie dieses Modul überprüfen, indem Sie die folgenden Befehle ausführen:

 sudo apachectl -M | Grep ausweichend 

Wenn mod_evasive aktiviert ist, wird folgende Ausgabe angezeigt:

 evasive20_module (geteilt) 

Konfigurieren Sie Mod_evasive

Das mod_evasive-Modul liest seine Konfiguration aus "/etc/apache2/mods-enabled/evasive.conf". Sie können das mod_evasive-Modul einfach über die Konfigurationsdatei "evasive.conf" anpassen. Standardmäßig sind die Konfigurationsoptionen von mod_evasive deaktiviert. Sie müssen sie daher zuerst aktivieren. Bearbeiten Sie dazu die Datei "evasive.conf":

 sudo nano /etc/apache2/mods-enabled/evasive.conf 

Entfernen Sie # aus den folgenden Zeilen:

 DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 DOSEmailNotify [email protected] DOSLogDir "/ var / log / apache2 /" 

Speichern Sie die Datei und starten Sie Apache neu, damit Ihre Änderungen wirksam werden:

 sudo /etc/init.d/apache2 neustarten 

Sie können die obigen Werte entsprechend der Menge und Art des Datenverkehrs ändern, den Ihr Webserver verarbeiten muss.

DOSHashTableSize : Diese Anweisung gibt an, wie mod_evasive verfolgt, wer auf was zugreift. Wenn Sie diese Zahl erhöhen, erhalten Sie eine schnellere Suche nach den Websites, die der Client in der Vergangenheit besucht hat.

DOSPageCount : Diese Anweisung gibt an, wie viele identische Anforderungen an einen bestimmten URI ein Besucher über das DOSPageInterval-Intervall stellen kann.

DOSSiteCount : Dies entspricht DOSPageCount, entspricht jedoch der Anzahl der Anforderungen, die ein Besucher insgesamt über das DOSSiteInterval-Intervall an Ihre Site stellen kann.

DOSBlockingPeriod : Wenn ein Besucher die von DOSSPageCount oder DOSSiteCount gesetzten Grenzen überschreitet, wird seine IP-Adresse während der DOSBlockingPeriod-Zeit blockiert. Während dieses Intervalls erhält er einen Fehler 403 (Verboten).

DOSEmailNotify : Eine E-Mail wird an die angegebene E-Mail-Adresse gesendet, sobald eine IP-Adresse auf die schwarze Liste gesetzt wird.

DOSLogDir : Diese Anweisung gibt den Speicherort des Protokollverzeichnisses an.

Testen von Mod_evasive

Jetzt ist es an der Zeit zu testen, ob das Modul mod_evasive funktioniert oder nicht. Sie können dies tun, indem Sie ein Perl-Skript "test.pl" verwenden, das sich im Verzeichnis "/ usr / share / doc / libapache2-mod-evasive / examples /" befindet.

Sie können das Skript ausführen, indem Sie den folgenden Befehl ausführen:

 sudo perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl 

Sie sollten die folgende Ausgabe sehen:

Das Skript stellt 100 Anfragen an Ihren Webserver. Der Antwortcode 403 zeigt an, dass der Zugriff vom Webserver verweigert wird.

Fazit

mod_evasive ist ein sehr wichtiges Werkzeug, um einen Apache Webserver gegen mehrere Bedrohungen zu schützen. Sie können mit verschiedenen Optionen in einer Testumgebung mit mod_evasive experimentieren. Wenn Sie Fragen haben, können Sie sie in das Kommentarfeld unten schreiben.