Einführung
Das mod_evasive-Modul ist ein Apache-Webdienstmodul, das Ihrem Server hilft, im Falle eines Angriffs am Laufen zu bleiben. Eine übliche Art von Cyber-Angriffen erfolgt in Form von Denial of Service (DoS), Distributed Denial of Service (DDoS) oder Brute-Force-Angriffen, bei denen versucht wird, Ihre Sicherheit zu überwältigen.
Die Natur dieser Angriffe besteht darin, mehrere verschiedene Computer zu verwenden, um wiederholt Anfragen an Ihren Server zu stellen. Dies führt dazu, dass dem Server die Rechenleistung, der Arbeitsspeicher und die Netzwerkbandbreite ausgehen und er nicht mehr reagiert.
Diese Anleitung führt Sie durch die Konfiguration und Installation von mod_evasive zum Schutz vor DoS und DDoS.
Voraussetzungen
- Der LAMP-Stack (Linux, Apache, MySQL, PHP) ist installiert und konfiguriert
- Zugriff auf ein Benutzerkonto mit sudo oder Root-Rechte
- Ein funktionierender Mailserver (für E-Mail-Benachrichtigungen)
Wie funktioniert Apache mod_evasive?
Der mod_evasive Apache Das Dienstprogramm überwacht eingehende Serveranforderungen. Das Tool überwacht auch verdächtige Aktivitäten von einer IP, wie z. B.:
- Mehrere Anfragen für dieselbe Seite in einer Sekunde.
- Mehr als 50 gleichzeitige Anfragen pro Sekunde.
- Anfragen, die gestellt werden, während die IP vorübergehend auf der schwarzen Liste steht.
Das Modul sendet einen 403-Fehler, wenn eines dieser Dinge eintritt. Dazu gehört standardmäßig auch eine Wartezeit von 10 Sekunden auf der Blacklist. Wenn die IP-Adresse, die die Anfrage stellt, es in diesem 10-Sekunden-Fenster erneut versucht, verlängert sich die Wartezeit.
mod_evasive hilft Ihnen bei der Verteidigung gegen diese Art von Angriffen durch Netzwerkerkennung und -verwaltung.
Schritte zur Installation des Dienstprogramms mod_evasive Apache
Schritt 1:Apache-Webserver-Dienstprogramm installieren
Aktualisieren Sie vor der Installation des Dienstprogramms das Paket-Repository mit dem Befehl für Ihre Linux-Distribution:
Debian / Ubuntu :
sudo apt update
RedHat / CentOS :
sudo yum update
Erlauben Sie dem System, Ihre Softwarelisten zu aktualisieren und zu aktualisieren.
Installieren Sie dann ein Hilfsprogramm:
Debian / Ubuntu :
sudo apt install apache2-utils
RedHat / CentOS :
sudo yum install httpd-devel
Der letzte Abschnitt der Ausgabe sieht folgendermaßen aus:
Dieses Dienstprogramm ist für die Installation von mod_evasive erforderlich .
Schritt 2:Installiere mod_evasive
Debian / Ubuntu
Um die mod_evasive zu installieren Modul auf Debian / Ubuntu, geben Sie Folgendes ein:
sudo apt install libapache2-mod-evasive
Wenn Sie dazu aufgefordert werden, wählen Sie Ok aus und wählen Sie Ihre Konfiguration aus.
Wenn Sie sich nicht sicher sind, wählen Sie Keine Konfiguration aus oder Nur lokal.
CentOS / RedHat
So installieren Sie das mod_evasive-Modul auf RedHat / CentOS:
Fügen Sie das EPEL-Repository hinzu:
sudo yum install epel-release
Geben Sie dann ein:
sudo yum install mod_evasive
Warten Sie, bis der Vorgang abgeschlossen ist.
Schritt 3:Konfigurieren Sie mod_evasive
Wie die meisten Linux-Softwarepakete ist mod_evasive wird durch eine Konfigurationsdatei gesteuert. Nehmen Sie als ersten Schritt zur Verhinderung von DDoS-Angriffen die folgenden Änderungen in der Konfigurationsdatei vor:
1. Verwenden Sie einen Texteditor Ihrer Wahl mit den folgenden Befehlen:
Debian / Ubuntu :
sudo nano /etc/apache2/mods-enabled/evasive.conf
RedHat / CentOS :
sudo nano /etc/httpd/conf.d/mod_evasive.conf
2. Suchen Sie folgenden Eintrag:
#DOSEmailNotify [email protected]
Entfernen Sie das #
unterschreiben und dann [email protected]
ersetzen mit Ihrer tatsächlichen E-Mail-Adresse. Verwenden Sie eine E-Mail, die Sie regelmäßig abrufen – an diese sendet das Tool Benachrichtigungen.
3. Entfernen Sie das Kommentar-Tag von den folgenden Einträgen, sodass die Protokolldatei wie folgt aussieht:
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSEmailNotify [email protected]
DOSLogDir "/var/log/apache2/"
4. Speichern Sie die Datei und beenden Sie sie. Laden Sie den Apache-Dienst neu, indem Sie Folgendes eingeben:
Debian / Ubuntu :
sudo systemctl reload apache2
RedHat / CentOS :
sudo systemctl restart httpd.service
Mod_evasive testen
Lassen Sie uns nun überprüfen, ob das Modul ordnungsgemäß funktioniert.
Verwenden Sie in diesem Beispiel die Datei test.pl Skript zum Testen von mod_evasive.
Das Skript befindet sich unter:/usr/share/doc/libapache2-mod-evasive/examples/test.pl .
Verwenden Sie den folgenden Befehl, um das Skript auszuführen:
perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl
Die Ausgabe sollte diese Nachricht zurückgeben:
Parameter und Einstellungen
Es gibt viele mod_evasive Parameter, die Sie konfigurieren können:
DOSSystemCommand
: Zunächst ist Ihnen vielleicht aufgefallen, dass diese Option als Kommentar deaktiviert wurde. Mit diesem Befehl können Sie einen Systembefehl angeben, der ausgeführt werden soll, wenn eine IP-Adresse zur schwarzen Liste hinzugefügt wird. Sie können dies verwenden, um einen Befehl zum Hinzufügen einer IP-Adresse zu einer Firewall oder einem IP-Filter zu starten.DOSHashTableSize
: Erhöhen Sie dies für stark ausgelastete Webserver. Diese Konfiguration weist Speicherplatz zum Ausführen der Suchvorgänge zu. Das Erhöhen der Größe verbessert die Geschwindigkeit auf Kosten des Arbeitsspeichers.DOSPageCount
: Die Anzahl der Anfragen für eine einzelne Seite, die eine Blacklist auslöst. Dies ist auf 2 eingestellt, was niedrig (und aggressiv) ist – erhöhen Sie diesen Wert, um Fehlalarme zu reduzieren.DOSSiteCount
: Die Gesamtzahl der Anfragen für dieselbe Site von derselben IP-Adresse. Standardmäßig ist dieser Wert auf 50 eingestellt. Sie können ihn auf 100 erhöhen, um Fehlalarme zu reduzieren.DOSPageInterval
: Anzahl der Sekunden fürDOSPageCount
. Standardmäßig ist dies auf 1 Sekunde eingestellt. Das bedeutet, dass, wenn Sie es nicht ändern, das Anfordern von 2 Seiten in 1 Sekunde eine IP-Adresse vorübergehend auf die schwarze Liste setzt.DOSSiteInterval
: Ähnlich wieDOSPageInterval
, gibt diese Option die Anzahl der Sekunden an, dieDOSSiteCount
überwacht. Standardmäßig ist dies auf 1 Sekunde eingestellt. Das bedeutet, wenn eine einzelne IP-Adresse in einer einzigen Sekunde 50 Ressourcen auf derselben Website anfordert, wird sie vorübergehend auf die schwarze Liste gesetzt.DOSBlockingPeriod
: Die Zeit, die eine IP-Adresse auf der Blacklist verbleibt. Standardmäßig auf 10 Sekunden eingestellt, können Sie dies auf einen beliebigen Wert ändern. Erhöhen Sie diesen Wert, um blockierte IP-Adressen länger im Timeout zu halten.DOSLogDir
: Standardmäßig ist dies so eingestellt, dass Protokolle nach /var/log/mod_evasive geschrieben werden. Diese Protokolle können später überprüft werden, um das Clientverhalten zu bewerten.
Sie können ein neues Verzeichnis erstellen, um diese Apache-Zugriffsprotokolle zu speichern – stellen Sie sicher, dass Sie den Eigentümer auf Apache ändern, und aktualisieren Sie dann den Speicherort in diesem Eintrag:
sudo mkdir /var/log/apache/mod_evasive
sudo chown -R apache:apache /var/log/apache/mod_evasive
sudo nano /etc/apache2/mods-enabled/evasive.conf
DOSLogDir "/var/log/apache/mod_evasive"
IP-Adressen auf die weiße Liste setzen: Diese Option ist nicht in der evasive.conf f enthalten Datei standardmäßig.
Öffnen Sie die Datei zum Bearbeiten erneut und fügen Sie dann die folgende Zeile hinzu:
DOSWhitelist 192.168.0.13
DOSWhitelist 192.168.0.*
Ersetzen Sie die IP-Adresse durch diejenige, die Sie auf die Whitelist setzen möchten. Außerdem sollten Sie nur einen Eintrag pro Zeile auflisten . Dies wird normalerweise mit einem vertrauenswürdigen Client verwendet, der viele Daten mit Ihrer Website austauscht.
Dieses Tool ist gut darin, Bots und Skripte zu erkennen. Wenn Sie Bots oder Skripts zulassen möchten, können Sie sie auf die Whitelist setzen, um zu verhindern, dass diese Bots und Skripts eine Blacklist-Aktion auslösen.
Achten Sie darauf, die Datei zu speichern und zu beenden. Laden Sie dann Ihren Apache-Dienst neu, bevor Sie eine dieser Optionen testen.