GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Abwehr von DoS &DDoS auf Apache mit mod_evasive

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ür DOSPageCount . 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 wie DOSPageInterval , gibt diese Option die Anzahl der Sekunden an, die DOSSiteCount ü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.


Ubuntu
  1. Abwehr von DoS &DDoS auf Apache mit mod_evasive

  2. Sichern Sie Apache mit Lets Encrypt auf Ubuntu 18.04

  3. So installieren und konfigurieren Sie Nextcloud mit Apache unter Ubuntu 18.04

  4. So installieren Sie Joomla mit Apache unter Ubuntu 18.04

  5. Apache 2.4 mit Fastcgi auf Ubuntu 16.04 konfigurieren – Was mache ich mit Php7.0-fpm.conf?

Installieren Sie WordPress auf Ubuntu 20.04 mit Apache, MariaDB, PHP7.4 (LAMP)

So installieren Sie WordPress 4.7 auf Ubuntu 16.04 mit Apache, MariaDB, PHP7

So installieren Sie mehrere PHP-Versionen mit Apache unter Ubuntu 18.04 und 16.04

So installieren Sie Apache mit Let’s Encrypt SSL unter Ubuntu 20.04 LTS

So installieren Sie Apache mit PHP-FPM auf CentOS 8

So sichern Sie Apache mit Let’s Encrypt unter Ubuntu 20.04