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

So installieren und konfigurieren Sie ModEvasive mit Apache unter Ubuntu 18.04

Der Schutz Ihres Webservers vor verschiedenen Arten von Angriffen ist eine entscheidende Verantwortung für jeden Systemadministrator. ModEvasive ist ein Apache-Webservermodul, das Ihnen hilft, Ihren Webserver im Falle von DoS-, DDoS- und Brute-Force-Angriffen zu schützen. Diese Arten von Angriffen führen dazu, dass dem Server der Arbeitsspeicher ausgeht und Ihre Website abstürzt.

Das mod_evasive-Modul funktioniert, indem es eine Hash-Tabelle von IP-Adressen und URIs erstellt und auf verdächtige eingehende Serveranfragen überwacht, wie zum Beispiel:

  • Mehr als 100 gleichzeitige Verbindungen pro Sekunde herstellen.
  • Mehrmals pro Sekunde dieselbe Seite anfordern.

Wenn eine solche verdächtige Anfrage auftritt, sendet das Modul mod_evasive einen 403-Fehler und blockiert die IP-Adresse.

In diesem Tutorial zeigen wir Ihnen, wie Sie mod_evasive mit Apache auf einem Ubuntu 18.04-Server 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 – Atlantic.Net Cloud-Server erstellen

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 1 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 – Installiere mod_evasive

Bevor Sie beginnen, muss der Apache-Webserver auf Ihrem Server installiert werden. Wenn es nicht installiert ist, können Sie es mit dem folgenden Befehl installieren:

apt-get install apache2 apache2-utils -y

Sobald der Apache-Webserver installiert ist, können Sie mod_evasive mit dem folgenden Befehl installieren:

apt-get install libapache2-mod-evasive -y

Während der Installation werden Sie aufgefordert, einen Postfix-Mailserver für die E-Mail-Benachrichtigung zu konfigurieren. Sie können die gewünschte Option auswählen, um die Installation abzuschließen. Wenn Sie sich nicht sicher sind, wählen Sie einfach Nur lokal aus oder keine Konfiguration .

Nach der Installation von mod_evasive können Sie überprüfen, ob das Modul mod_evasive aktiviert ist, indem Sie den folgenden Befehl ausführen:

apachectl -M | grep evasive

Sie sollten die folgende Ausgabe erhalten:

[Mon Jan 27 13:55:35.707317 2020] [so:warn] [pid 29031] AH01574: module dav_module is already loaded, skipping
 evasive20_module (shared)

An diesem Punkt ist das Modul mod_evasive installiert und aktiviert. Sie können jetzt mit dem nächsten Schritt fortfahren.

Schritt 3 – mod_evasive konfigurieren

Die Standardkonfigurationsdatei von mod_evasive befindet sich unter /etc/apache2/mods-enabled/evasive.conf. Sie müssen diese Datei gemäß Ihren Anforderungen konfigurieren.

Sie können diese Datei wie unten gezeigt mit dem Nano-Editor öffnen:

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

Ändern Sie die Datei wie unten gezeigt. Wir empfehlen, DOSEmailNotify an die Adresse zu ändern, an die die E-Mail gesendet werden soll (falls konfiguriert) und DOSSystemCommand – zum Beispiel „su – richard -c ‘/sbin… %s …’“

<IfModule mod_evasive20.c>
    DOSHashTableSize    3097
    DOSPageCount        2
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   100
    DOSEmailNotify      [email protected]  
    DOSSystemCommand    "su - someuser -c '/sbin/... %s ...'"
    DOSLogDir           "/var/log/mod_evasive"
</IfModule>

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Eine kurze Erklärung jeder Option finden Sie unten:

  • DOSHashTableSize :mod_evasive verwendet diese Option, um die Hash-Tabellengröße zu steuern. Es wird empfohlen, dies zu erhöhen, wenn Sie einen ausgelasteten Webserver haben.
  • DOSPageCount :Diese Option gibt den Schwellenwert für die Anzahl der zulässigen Anfragen an denselben URI pro Sekunde an. Sobald der Schwellenwert überschritten wurde, wird die IP-Adresse des Clients auf die schwarze Liste gesetzt.
  • DOSSiteCount :Diese Option gibt die Grenze für die Gesamtzahl der zulässigen Anfragen an dieselbe IP-Adresse an.
  • DOSPageInterval :Diese Option gibt das Seitenzählintervall an.
  • DOSSiteInterval :Diese Option gibt das Site-Zählintervall an.
  • DOSBlockingPeriode :Diese Option definiert die Zeitspanne in Sekunden, die ein Client blockiert wird.
  • DOSEmailNotify :Diese Option sendet eine E-Mail an die angegebene Adresse, wenn eine IP-Adresse auf die schwarze Liste gesetzt wurde.
  • DOSSystemCommand :Immer wenn eine IP-Adresse auf die schwarze Liste gesetzt wurde, wird der angegebene Systembefehl ausgeführt.
  • DOSLogDir :Diese Option definiert das Protokollverzeichnis von mod_evasive.

Erstellen Sie als Nächstes ein Verzeichnis zum Speichern des mod_evasive-Protokolls und ändern Sie seinen Besitz mit dem folgenden Befehl in www-data:

mkdir /var/log/mod_evasive
chown -R www-data:www-data /var/log/mod_evasive

Starten Sie abschließend den Apache-Dienst neu, um die Änderungen zu implementieren:

systemctl restart apache2

Schritt 4 – mod_evasive testen

An dieser Stelle wird das Modul mod_evasive installiert und konfiguriert. Es ist an der Zeit zu testen, ob das Modul richtig funktioniert.

Gehen Sie zum Remote-System und senden Sie mit dem ab-Befehl eine Bulk-Page-Anfrage an den Server:

ab -n 1000 -c 20 http://your-server-ip/

Dieser Befehl verursacht das Äquivalent eines DoS-Angriffs, indem er 1000 Seitenanforderungen in 10 gleichzeitigen Verbindungen sendet.

Überprüfen Sie auf dem Server das E-Mail-Protokoll, indem Sie den folgenden Befehl ausführen:

tail -15 /var/mail/root

Sie sollten sehen, dass die Client-IP-Adresse von mod_evasive auf die schwarze Liste gesetzt wurde:

Received: by ubuntu1804 (Postfix, from userid 33)
            id B0C3EC1753; Mon, 27 Jan 2020 14:15:09 +0000 (UTC)
To: [email protected]
MIME-Version: 1.0
Content-Type: text/plain; charset="ANSI_X3.4-1968"
Content-Transfer-Encoding: 8bit
Message-Id: <[email protected]>
Date: Mon, 27 Jan 2020 14:15:09 +0000 (UTC)
From: www-data <[email protected]>

To: [email protected]
Subject: HTTP BLACKLIST 103.250.161.100

mod_evasive HTTP Blacklisted 103.250.161.100

Sie können mod_evasive auch mit dem eingebauten Skript test.pl testen. Sie müssen dieses Skript ändern, damit es funktioniert.

Sie können das Skript wie folgt bearbeiten:

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

Suchen Sie die folgende Zeile:

print $SOCKET "GET /?$_ HTTP/1.0\n\n";

Ersetzen Sie es durch Folgendes:

print $SOCKET "GET /?$_ HTTP/1.0\r\nHost: 127.0.0.1\r\n\r\n";

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Führen Sie dann das Skript mit dem Perl-Befehl aus:

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

Wenn alles korrekt funktioniert, sollten Sie die folgende Ausgabe erhalten:

HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden

Schlussfolgerung

Herzliche Glückwünsche! Das Modul mod_evasive ist jetzt so konfiguriert, dass es Ihren Server vor DDoS- und Brute-Force-Angriffen schützt.


Linux
  1. So installieren und konfigurieren Sie einen NFS-Server unter Ubuntu 20.04

  2. So installieren und konfigurieren Sie VNC unter Ubuntu 20.04

  3. So installieren und konfigurieren Sie den DHCP-Server unter Ubuntu 20.04

  4. So installieren und konfigurieren Sie den Redis-Server in Ubuntu

  5. So installieren und konfigurieren Sie den Apache-Webserver unter Ubuntu 13.10

So installieren Sie Drupal auf einem Ubuntu 20.04-Server mit Apache

So installieren und konfigurieren Sie Parse Server unter Ubuntu 20.04

So installieren und konfigurieren Sie einen TeamSpeak Server auf Ubuntu 18.04

So installieren und konfigurieren Sie einen LAMP-Webserver unter Ubuntu 18.04

So installieren und konfigurieren Sie einen Minecraft-Server unter Ubuntu 18.04

So installieren und konfigurieren Sie Memcached mit Apache und PHP