Einrichten von Fail2ban, um Apache vor einem DDOS-Angriff zu schützen
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
Apache ist einer der am häufigsten verwendeten und beliebtesten Webserver der Welt. Daher ist es wichtig, Ihre Website und Benutzer vor Brute-Force-Angriffen zu schützen. Fail2ban ist eine in Python geschriebene Open-Source-Intrusion-Prevention-Software. Fail2Ban analysiert fortlaufend die Log-Dateien verschiedener Dienste (wie Apache, SSH, Postfix ...), und wenn es bösartige Angriffe entdeckt, erstellt es Regeln auf der Firewall, um Hacker-IP-Adressen für eine bestimmte Zeit zu blockieren. Fail2Ban informiert auch einen Systemadministrator mit einer E-Mail über seine Aktivität.
In diesem Artikel werde ich erklären, wie fail2ban installiert und konfiguriert wird, um Ihre Apache-Protokolle auf Fehlversuche bei böswilliger Authentifizierung zu überwachen.
Bedarf
- Ubuntu-Server 14.04 mit Apache installiert
- Apache mit Passwortauthentifizierung konfiguriert
Installation von Fail2Ban
Stellen Sie zunächst sicher, dass der Apache-Server ausgeführt wird und die Kennwortauthentifizierung aktiviert ist.
Als nächstes können Sie Fail2ban installieren, indem Sie Folgendes ausführen:
sudo apt-get Aktualisierung sudo apt-get install fail2ban
Konfigurieren Sie fail2ban für Apache
Der fail2ban behält seine Konfigurationsdatei "jail.conf" im Verzeichnis "/ etc / fail2ban /". Es enthält eine Reihe vordefinierter Filter für verschiedene Dienste. Es wird empfohlen, diese Datei nicht zu bearbeiten. Sie müssen vordefinierte Apache-Jails aktivieren, indem Sie eine Datei "/etc/fail2ban/jail.local" erstellen:
Um eine neue Datei "jail.local" zu erstellen, führen Sie Folgendes aus:
sudo nano /etc/fail2ban/jail.local
Fügen Sie den folgenden Inhalt hinzu:
[apache] aktiviert = wahr port = http, https filter = apache-auth logpath = /var/log/apache2/*error.log maxretry = 3 findzeit = 600 ignorepip = 192.168.1.227 [apache-noscript] aktiviert = true port = http, https filter = apache-noscript logpath = /var/log/apache2/*error.log maxretry = 3 findzeit = 600 ignoreip = 192.168.1.227 [apache-überläufe] enabled = wahr port = http, https filter = apache-overflows logpath = /var/log/apache2/*error.log maxretry = 2 findtime = 600 ignogeip = 192.168.1.227 [apache-badbots] aktiviert = wahr port = http, https filter = apache-badbots logpath = / var / log / apache2 /*error.log maxretry = 2 findtime = 600 ignoreip = 192.168.1.227
Speichern und schließen Sie die Datei und starten Sie fail2ban neu, damit die Änderungen wirksam werden.
sudo /etc/init.d/fail2ban neustarten
Sie können die Regeln überprüfen, die von Fail2Ban in iptables mithilfe des folgenden Befehls hinzugefügt wurden:
sudo iptables -L
Die Ausgabe sieht ungefähr so aus:
Hinweis : Sie finden die Details zu jedem der folgenden Gefängnisse:
[apache]
: Dieses Jail wird verwendet, um fehlgeschlagene Anmeldeversuche zu blockieren.[apache-noscript]
: Dieses[apache-noscript]
wird verwendet, um Remote-Clients zu blockieren, die nach Skripts auf der Website suchen, die ausgeführt werden sollen.[apache-overflows]
: Mit diesem Jail werden Clients blockiert, die verdächtige URLs anfordern.[apache-noscript]
: Dieses[apache-noscript]
wird verwendet, um Remote-Clients zu blockieren, die nach Scripts auf der Website suchen, um sie auszuführen.[apache-badbots]
: Mit diesem[apache-badbots]
bösartige Bot-Anfragen blockiert.
Hinweis : Sie finden die Details jeder Regel, die im Folgenden beschrieben wird.
enabled
: Diese Option bedeutet, dass der Apache-Schutzenabled
ist.port
: Diese Option gibt die Dienste an, die fail2ban überwacht.filter
: Diese Option verweist auf die Konfigurationsdatei, die sich im Verzeichnis/etc/fail2ban/filter.d/
.logpath
: Diese Option gibt den Speicherort der Protokolldatei an.bantime
: Diese Option gibt die Anzahl der Sekunden an, die ein Remote-Host vom Server blockiert wird.maxretry
: Diese Option gibt die Anzahl fehlgeschlagener Anmeldeversuche an, bevor ein Remote-Host für die Dauer dermaxretry
blockiert wird.ignoreip
: Mit dieser Option können Sie bestimmte IP-Adressen auf dieignoreip
.
Überprüfen Sie den Fail2ban-Sperrstatus
Sobald die Gefängnisse aktiviert sind, können Sie fail2ban mit dem Befehl fail2ban-client
prüfen:
Sudo fail2ban-Client-Status
Sie können eine Liste aller von Ihnen aktivierten Gefängnisse sehen.
Um den Status eines bestimmten Knotens wie Apache, Apache-Badbots anzuzeigen, führen Sie die folgenden Befehle aus:
sudo fail2ban-client Status Apache
Die Ausgabe sieht so aus:
Sie können auch ban oder unban IP-Adressen manuell festlegen.
Zum Beispiel, um eine IP-Adresse (192.168.1.20) mit einem Apache-Gefängnis zu verbieten:
sudo fail2ban-client set apache banip 192.168.1.20
Entsperren einer IP-Adresse (192.168.1.21) mit einem Apache-Gefängnis:
sudo fail2ban-client set apache unbanip 192.168.1.21
Fail2Ban testen
Es ist wichtig, Ihr fail2ban zu testen, ob es wie erwartet funktioniert oder nicht. Öffnen Sie jetzt auf einem Remote-Computer Ihren Webbrowser und geben Sie die URL Ihrer Domain (oder die IP-Adresse Ihres Servers) ein. Wenn Apache zur Authentifizierung auffordert, geben Sie wiederholt einen falschen Benutzernamen und ein falsches Kennwort ein. Nachdem Sie das Limit erreicht haben, sollten Sie blockiert werden und nicht auf die Site zugreifen können.
Überprüfen Sie den Status mit dem Befehl fail2ban-client
:
sudo fail2ban-client Status Apache
Sie werden sehen, dass Ihre IP-Adresse von der Site blockiert wird.
Fazit
Jetzt haben Sie genug Kenntnisse, um fail2ban zu konfigurieren. Die Verwendung von fail2ban ist eine gute und einfache Möglichkeit, Überschwemmungen zu stoppen (Brute-Force-Angriffe). Es ist auch eine gute Möglichkeit, die Anzahl der fehlerhaften Anfragen auf Ihrem Apache-Webserver zu begrenzen.