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 Open-Source-Software zur Verhinderung von Eindringlingen, die in Python geschrieben wurde. Fail2Ban analysiert kontinuierlich die Protokolldateien verschiedener Dienste (wie Apache, ssh, postfix…). Wenn böswillige Angriffe erkannt werden, werden Regeln für die Firewall erstellt, um die IP-Adressen von Hackern für einen bestimmten Zeitraum zu blockieren. Fail2Ban informiert einen Systemadministrator auch per E-Mail über seine Aktivitäten.
In diesem Artikel werde ich erklären, wie Sie fail2ban installieren und konfigurieren, um Ihre Apache-Protokolle auf böswillige Authentifizierungsfehler zu überwachen.
Bedarf
- Ubuntu Server 14.04 mit installiertem Apache
- Apache mit Kennwortauthentifizierung konfiguriert
Fail2Ban installieren
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 update sudo apt-get install fail2ban
Konfigurieren Sie fail2ban für Apache
Fail2ban speichert die 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:
Führen Sie Folgendes aus, um eine neue Datei “jail.local” zu erstellen:
sudo nano /etc/fail2ban/jail.local
Fügen Sie den folgenden Inhalt hinzu:
[apache] enabled = true port = http,https filter = apache-auth logpath = /var/log/apache2/*error.log maxretry = 3 findtime = 600 ignoreip = 192.168.1.227 [apache-noscript] enabled = true port = http,https filter = apache-noscript logpath = /var/log/apache2/*error.log maxretry = 3 findtime = 600 ignoreip = 192.168.1.227 [apache-overflows] enabled = true port = http,https filter = apache-overflows logpath = /var/log/apache2/*error.log maxretry = 2 findtime = 600 ignoreip = 192.168.1.227 [apache-badbots] enabled = true 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 restart
Mit dem folgenden Befehl können Sie die von Fail2Ban in iptables hinzugefügten Regeln überprüfen:
sudo iptables -L
Die Ausgabe sieht ungefähr so aus:
Hinweis : Sie können die Details jedes Gefängnisses unten beschrieben finden:
-
[apache]
: Dieses Gefängnis wird verwendet, um fehlgeschlagene Anmeldeversuche zu blockieren. -
[apache-noscript]
: Dieses Gefängnis wird verwendet, um Remote-Clients zu blockieren, die auf der Website nach Skripten suchen, die ausgeführt werden sollen. -
[apache-overflows]
: Dieses Gefängnis wird verwendet, um Clients zu blockieren, die versuchen, verdächtige URLs anzufordern. -
[apache-noscript]
: Dieses Gefängnis wird verwendet, um Remote-Clients zu blockieren, die auf der Website nach Skripten suchen, die ausgeführt werden sollen. -
[apache-badbots]
: Dieses Gefängnis wird verwendet, um böswillige Bot-Anfragen zu blockieren.
Hinweis : Sie finden die Details jeder unten beschriebenen Regel.
-
enabled
: Diese Option bedeutet, dass der Apache-Schutz aktiviert ist. -
port
: Diese Option gibt die Dienste an, die fail2ban überwacht. -
filter
: Diese Option verweist auf die Konfigurationsdatei in der/etc/fail2ban/filter.d/
Verzeichnis. -
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 der fehlgeschlagenen Anmeldeversuche an, bevor ein Remote-Host für die Dauer der Sperrzeit blockiert wird. -
ignoreip
: Mit dieser Option können Sie bestimmte IP-Adressen vor dem Blockieren auf die Whitelist setzen.
Überprüfen Sie den Fail2ban-Verbotsstatus
Sobald die Gefängnisse aktiviert sind, können Sie fail2ban mit dem überprüfen fail2ban-client
Befehl:
sudo fail2ban-client status
Sie können eine Liste aller von Ihnen aktivierten Gefängnisse anzeigen.
Um den Status eines bestimmten Gefängnisses wie Apache, Apache-Badbots anzuzeigen, führen Sie die folgenden Befehle aus:
sudo fail2ban-client status apache
Die Ausgabe sieht folgendermaßen aus:
Sie können IP-Adressen auch manuell sperren oder aufheben.
So verbieten Sie beispielsweise eine IP-Adresse (192.168.1.20) mit einem Apache-Gefängnis:
sudo fail2ban-client set apache banip 192.168.1.20
So entsperren Sie eine IP-Adresse (192.168.1.21) mit einem Apache-Gefängnis:
sudo fail2ban-client set apache unbanip 192.168.1.21
Testen von Fail2Ban
Es ist wichtig, dass Sie Ihr fail2ban testen, ob es wie erwartet funktioniert oder nicht. Öffnen Sie jetzt auf einem Remotecomputer 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 sein und nicht mehr auf die Site zugreifen können.
Überprüfen Sie den Status mit dem fail2ban-client
Befehl:
sudo fail2ban-client status apache
Sie werden sehen, dass Ihre IP-Adresse von der Site blockiert wird.
Fazit
Jetzt haben Sie genug Wissen, um fail2ban zu konfigurieren. Die Verwendung von fail2ban ist eine gute und einfache Möglichkeit, Überschwemmungen zu stoppen (Brute-Force-Angriffe). Dies ist auch eine gute Möglichkeit, die Anzahl der auf Ihrem Apache-Webserver empfangenen fehlerhaften Anfragen zu begrenzen.