marinux
Goto Top

PHPMyAdmin Restriktion localhost für User-Anmelde-Host greift nicht

Hallo,

ich habe Ubuntu 10.10 mit aktuellem Apache2, PHP5, MySQL5 und PHPMyAdmin. Diese laufen einwandfrei.

Jetzt möchte ich, dass die User in PHPMyAdmin sich nur über den localhost anmelden können. Nach der Einrichtung von PHPMyAdmin, sind die standardmäßig angelegten User auch nur mit diesem Recht ausgestattet.
54a2f8eea05c0b3b6188d62c1b24eca7
Die PHPMyAdmin Authentifizierung läuft über Cookies.

Ubuntu läuft bei mir in einer VMware auf einem Win7 PC. Unter Ubuntu kann ich mich mit allen Usern in PHPMyAdmin anmelden. Wenn ich von dem Win7 PC auf den Ubuntu Webserver über die externe VMware-IP verbinde, kann ich mich ebenfalls mit allen Usern in PHPMyAdmin anmelden. Warum? Ich bin auf dem Win7 ja kein localhost für den Webserver?!

Das Einzige was nicht funktioniert ist der User "test". Der geht unter Ubuntu, als auch Win7 nicht.

Warum greift die Restriktion nicht, dass die User sich nur über den localhost anmelden dürfen.

Mein Win7 hat die IP:192.168.176.1
Mein Ubuntu hat die IP: 192.168.176.130

Gruß

Marinux

Content-Key: 160203

Url: https://administrator.de/contentid/160203

Printed on: April 19, 2024 at 03:04 o'clock

Member: Guenni
Guenni Feb 05, 2011 at 18:42:01 (UTC)
Goto Top
Hi marinux,

egal von welchem PC aus du phpMyAdmin aufrufst, es wird auf dem Webserver ausgeführt,

also eben auf dem localhost und kann so natürlich auf die DB zugreifen. Wenn du z.B.

MySQL noch auf einen anderen PC installierst und versuchst, mit diesem Client auf die DB des

Webservers zuzugreifen, mysql -h servername, dann bist du nicht auf dem localhost und

würde dementspr. auch nicht funktionieren.

Auf der Startseite von phpMyAdmin gibt's einen Link Die Rechte neu laden. Klick den mal an,

dann wird der Befehl FLUSH PRIVILEGES ausgeführt und dein User test kann sich anmelden.

Umgekehrt genauso: Löschst du einen User ohne den Befehl auszuführen, kann der gelöschte User sich

trotzdem noch anmelden. Auch nach Rechteänderungen muß der Befehl immer abgesetzt werden.

Gruß
Günni
Member: marinux
marinux Feb 05, 2011 at 18:56:27 (UTC)
Goto Top
Zitat von @Guenni:
Hi marinux,

egal von welchem PC aus du phpMyAdmin aufrufst, es wird auf dem Webserver ausgeführt,

also eben auf dem localhost und kann so natürlich auf die DB zugreifen. Wenn du z.B.

MySQL noch auf einen anderen PC installierst und versuchst, mit diesem Client auf die DB des

Webservers zuzugreifen, mysql -h servername, dann bist du nicht auf dem localhost und

würde dementspr. auch nicht funktionieren.

Hallo,

das PHPMyAdmin auf dem Server, also lokal ausgeführt wird, ist mir bewusst. Es geht mir auch nicht um den direkten Zugriff auf MySQL (auch wenn dieser durch die Host-Angabe in PHPMyAdmin beeinflusst wird), sondern um den Zugang zu PHPMyAdmin.
Ich habe externen Admin-Zugriff auf ein PHPMyAdmin, welches auf einem Debian läuft. Dort ist es wirklich so, dass ich einen angelegten User in PHPMyAdmin erst bei PHPMyAdmin einloggen kann, wenn ich Jeden Host ("%") für diesen User zulasse. Läuft der User nur mit lokalen Rechten, wird mir der Zugang zu PHPMyAdmin von außen verweigert.

Das will ich so auch haben. Denn dass ist bei mir aktuell nicht der Fall. Ich kann mich mit allen Usern (außer "test") von extern auf Ubuntu einloggen, obwohl die Userechte nur lokal sind (siehe Bild im 1. Post).

Zitat von @Guenni:

Auf der Startseite von phpMyAdmin gibt's einen Link Die Rechte neu laden. Klick den mal an,

dann wird der Befehl FLUSH PRIVILEGES ausgeführt und dein User test kann sich anmelden.

Umgekehrt genauso: Löschst du einen User ohne den Befehl auszuführen, kann der gelöschte User sich

trotzdem noch anmelden. Auch nach Rechteänderungen muß der Befehl immer abgesetzt werden.

Gruß
Günni

Das hatte ich schon versucht und hatte kein Erfolg.

Gruß

Marinux
Member: marinux
marinux Feb 05, 2011 at 19:33:47 (UTC)
Goto Top
Ah, ich glaub ich habe das Problem verstanden. Sry für den Post oben drüber. Ja natürlich, ich logge mich ja quasi immer mit localhost ein, weil mein PHPMyAdmin auf dem Webserver liegt.

Trotzdem die Frage warum kann ich nicht mit "test" 127.0.0.1 arbeiten?

EDIT:
Übrigens kann man die Restriktionen doch zum Laufen bringen, obwohl PHPMyAdmin lokal auf dem Webserver liegt. Standardmäßig kommuniziert PHPMyAdmin ja über Socket mit MySQL.
Dies muss man abändern auf TCP. Dazu unter /etc/mysql/my.cnf die binding-adress auf die externe IP von Ubuntu legen, in meinem Fall also 192.168.176.130. Dann unter /etc/phpmyadmin/config-db.php und dort $dbserver='192.168.176.130" setzen. Danach noch eine "sudo service mysql restart" und PHPMyAdmin kommuniziert über TCP. Wenn ich jetzt in Win7 192.168.176.130 aufrufe und versuche mich mit einem User anzumelden, der nur lokale Rechte hat, dann klappt das nicht mehr face-smile So wollte ich das.
EDIT2: Dem user "phpmyadmin" auch noch das Recht geben von 192.168.176.130 zuzugreifen.