Mehrere fehlgeschlagene Anmeldeversuche bei phpMyAdmin können auf eine Brute-Force-Attacke hindeuten. Um solche Angriffe auf die phpMyAdmin-Oberfläche zu verhindern, sollte man phpMyAdmin unter die Beobachtung von Fail2ban stellen.
Eine unzureichend gesicherter Server könnte ein attraktives Ziel für Hacker sein. Fail2Ban kann Brute-Force-Angriffe und andere verdächtige Aktivitäten erkennen und automatisch IP-Adressen blockieren, die diese Angriffe durchführen. Dies erhöht die Sicherheit deines Servers erheblich und schützt somit auch persönliche Daten vor unautorisiertem Zugriff. Fail2ban ist eine von mehreren Sicherheitsvorkehrungen.
Fail2ban installieren
Falls noch nicht geschehen, wird Fail2ban einfach mit folgendem Befehl installiert:
apt-get install fail2ban
Filter erstellen
Erstelle jetzt einen Filter für phpMyAdmin. Dazu wird eine neue Datei angelegt:
nano /etc/fail2ban/filter.d/phpmyadmin.conf
In diese wird folgender Inhalt eingefügt:
[Definition] denied = mysql-denied|allow-denied|root-denied|empty-denied failregex = user denied: .* \((?:%(denied)s)\) fromignoreregex =
Bearbeite nun die jail.local-Datei von Fail2ban. Die jail.local-Datei ist eine Konfigurationsdatei für Fail2ban, das dazu verwendet wird, den Zugriff auf ein System oder eine Anwendung zu blockieren, wenn ein Benutzer bestimmte Sicherheitsregeln verletzt. Die jail.local-Datei enthält Regeln und Einstellungen, die von der Hauptkonfigurationsdatei jail.conf überschrieben werden. Sie wird verwendet, um Benutzerdefinierte Einstellungen für Fail2ban festzulegen, wie zum Beispiel den Zeitraum, für den ein Benutzer gesperrt bleibt, oder die Protokolldateien, die Fail2ban zum Scannen von Sicherheitsverstößen verwendet.
nano /etc/fail2ban/jail.local
Hier wird an eine freie Stelle folgender Inhalt eingefügt. Die Anmeldeversuche werden unter var/log/auth.log geloggt, daher wird diese Datei überwacht. In diesem Beispiel sind maximal 3 Anmeldeversuche möglich, bis die IP-Adresse des Users gesperrt wird. Die Zeit, wie lange die Sperre anhält, wird bereits am Anfang der Konfigurationsdatei mit dem Wert bantime festgelegt.
enabled = true port = http,https filter = phpmyadmin logpath = /var/log/auth.log maxretry = 3
Um die Änderung in Kraft zu setzen, wird Fail2ban nun noch neu gestartet:
systemctl restart fail2ban
Ab sofort wird die Anmeldung der phpMyAdmin-Oberfläche von Fail2ban überwacht:
root@vps:/# fail2ban-client -i status phpmyadmin Status for the jail: phpmyadmin |- Filter | |- Currently failed: 1 | |- Total failed: 1 | `- File list: /var/log/auth.log `- Actions |- Currently banned: 0 |- Total banned: 1 `- Banned IP list: Fail2Ban v0.11.2 reads log file that contains password failure report and bans the corresponding IP addresses using firewall rules.
Fail2ban: Gesperrte IP-Adresse wieder freigeben
Bei Fragen oder Anregungen freue ich mich natürlich über eure Kommentare.

Über mich
Ich bin Janis (aka. EurenikZ), 26 Jahre alt und komme aus der Nähe von Frankfurt am Main. Ich habe eine abgeschlossene IHK-Ausbildung zum Fachinformatiker für Systemintegration und arbeite als Junior IT-Administrator in einem IT-Systemhaus. Neben meinem IT-Blog beschäftige ich mich viel mit diversen IT-Themen und meinen Webseiten sowie Telegram Bots und biete IT-Dienstleistungen an.