• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[Gelöst] phpMyAdmin & fail2ban - keine Logs zum Auswerten

Hallo liebe Community ;)

Ich würde gerne den Zugriff auf phpMyAdmin mit Fail2Ban absichern. Dazu benötige ich natürlich eine Logfile, aus der fehlgeschlagene LogIn Versuche hervorgehen. Diese konnte ich nicht ausmachen.

Ich habe unter https://docs.phpmyadmin.net/de/latest/config.html aber einen entsprechenden Konfigurationsparameter gefunden. So habe ich die Datei etc/phpmyadmin/config.inc.php um eine letzte Zeile mit folgendem Code ergänzt:
Code:
$cfg['AuthLog'] = '/var/log/pmaauth.log';

Diese Logdatei habe ich dann mittels touch /var/log/pmaauth.log erstellt und die Dienste Apache2 sowie php7.2-fpm neu durchgestartet. Im Anschluss habe ich selbst eine Fehlanmeldung produziert :D Leider aber ist die Logfile immernoch leer :???:

Die Datei erlaubt Zugriffsrechte wie folgt:
Code:
-rw-r--r--   1 www-data  adm                    0 Jul  1 16:09 pmaauth.log

Es ist phpMyAdmin V 4.6.6deb5 unter Ubuntu 18.04 mit Apache und ISP-Config im Einsatz.

Hat jemand vielleicht eine Idee was ich hier falsch mache ?
 

marce

Guru
wieso nicht einfach ein Standard-Access-Log des Webservers nach 401 auswerten?

(oder wie hast Du das phpMyAdmin nach außen abgesichert? Und bei einem brauchbaren Passwort via .htaccess + und einer URL jenseits von /phpmyadmin braucht's eigentlich auch kein Fail2Ban)
 
OP
D

DarkTrinity

Newbie
Ich würde hier schon gerne Fail2Ban verwenden. Das muss doch machbar sein...

Ich kann in den Standard Logs wie gesagt keine Hinweise dazu finden:
/var/log/apache2/error.log
/var/log/apache2/access.log
/var/log/apache2/other_vhosts_access.log
/var/log/php7.2-fpm.log
/var/log/faillog

In den Client- Logs der betroffenen Domain, über die ich die fehlgeschlagene Anmeldung produziert habe, ebenfalls nicht:
/var/www/clients/client2/web2/log/error.log
/var/www/clients/client2/web2/log/access.log
/var/www/clients/client2/web2/log/20200701-access.log
 

marce

Guru
dann würde ich mir mal die Server-Konfig anschauen, was der zum Thema Access-Logs bei phpMyAdmin meint.

Ach ja - bzgl. der Konfig-Zeile oben - keine Ahnung, welches OS Du verwendest, bei mir ist aber /var/log nicht schreibbar für z.B. httpd
 
OP
D

DarkTrinity

Newbie
Ich dachte das hätte ich hier:

DarkTrinity schrieb:
[...]
Ich habe unter https://docs.phpmyadmin.net/de/latest/config.html aber einen entsprechenden Konfigurationsparameter gefunden. So habe ich die Datei etc/phpmyadmin/config.inc.php um eine letzte Zeile mit folgendem Code ergänzt:
Code:
$cfg['AuthLog'] = '/var/log/pmaauth.log';

Diese Logdatei habe ich dann mittels touch /var/log/pmaauth.log erstellt und die Dienste Apache2 sowie php7.2-fpm neu durchgestartet. Im Anschluss habe ich selbst eine Fehlanmeldung produziert :D Leider aber ist die Logfile immernoch leer :???:

Die Datei erlaubt Zugriffsrechte wie folgt:
Code:
-rw-r--r--   1 www-data  adm                    0 Jul  1 16:09 pmaauth.log
[...]

Ich wüsste nicht wo ich das Logverhalten von phpmyadmin nachvollziehen oder steuern sollte, wenn nicht über die Konfiguration von phpmyadmin selbst .... :???:
 
OP
D

DarkTrinity

Newbie
phpMyAdmin unterstützt diesen o.g. Config Flag bzgl. des Logs von Fehlanmeldungen erst ab Version 4.8. In den Paketquellen zu Ubuntu 18.04 ist allerdings immer noch die Version 4.6.6deb5. PHPMyAdmin kann in dieser Version also selbständig keine entsprechende Logfile anlegen :nosmile:

Die Suche in den gängigen Apache Logs wird auch nicht zielführend sein. PHPMyAdmin gibt bei einem fehlgeschlagenen LogIn nämlich eben nicht den Fehlercode 401 zurück. Die entsprechende Fehlerseite mit dem Hinweis auif ein falsches Passwort kommt nämlich mit dem HTTP Status 200 einher. Das kann man zB mit den entsprechenden Browsertoolz recht schnell fest stellen :(

Damit ist die Absicherung mit Fail2Ban nicht möglich, es sei denn man schreibt phpMyAdmin in einer Weise um, daß in solchen Fällen eben doch der passende HTTP Status übermittelt wird. :schockiert:

Mit folgendem Workaround habe ich phpMyAdmin nun dazu erzogen, in solchen Fällen den richtigen HTTP Code auszugeben:
Den folgenden Code als Zeile 627 der Datei usr/share/phpmyadmin/libraries/plugins/auth/AuthenticationCookie.php eintragen:
Code:
header('HTTP/1.1 401 Unauthorized');

Ergebnis:
Bei fehlgeschlagenen LogIns wird nun der HTTP Code 401 zurück gegeben. Diesen kann man in den LogFiles von Apache ablesen und so einen Jail / Filter für Fail2Ban schreiben :cuinlove:
 

marce

Guru
... daher klassisches .htaccess davor und das abfragen. PhpMyAdmin offen im Netz hat hoffentlich niemand...
 
Oben