phpPgAdmin Probleme

Status
Für weitere Antworten geschlossen.

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
hi leutz,

hat jemand den phpPgAdmin (php Postgres Datenbank Admin) zum Laufen bekommen? Wie muss die Konfiguration aussehen, damit ich mich an die Datenbank anmelden kann? Bei mir ist Postgres-mäßig alles standard (User: admin - kein Kennwort - trust) in der Konfigurationsfile. Hab schon in der Konfiguations-Datei des phpPgAdmin einiges herumprobiert, aber ich komm einfach nicht auf die Datenbank mangels Zugriffsrechten. Wer weiß was?
 

surfer

Benutzer
Mitglied seit
06. Feb 2008
Beiträge
34
Punkte für Reaktionen
0
Punkte
0
probier mal Benutzer "root" ohne Passwort

gruß surfer
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
@surfer, danke für den Tipp. Hatte ich auch schon probiert ... es war eine Pfadproblematik des Apache :eek:. Bin darauf gekommen, nachdem ich per kleinem php-Skript versucht hatte, die Datenbank anzusprechen. Ich muss dazu sagen, dass die Datenbank sich per Kommandozeile (psql) ja durchaus hat ansprechen lassen.

Also die Lösung:

Download des phppgadmin. Ich hab die zip-Version auf dem PC entpackt, über eine Share auf die DS kopiert. Von da aus leider ins falsche Verzeichnis, deshalb gings nicht. Umbenennen des Verzeichnisses in phppgadmin.

Das komplette Verzeichnis nach /usr/syno/synoman/phpsrc moven (mv). Rechte auf 777 setzen.

In die Datei /usr/syno/apache/conf/extra/httpd-autoindex.conf-user die folgende Zeile einfügen (am besten nach der Zeile ALIAS webdefault):

Alias /phppbadmin/ "/usr/syno/synoman/phpsrc/phppgadmin"

Der Webserver neu starten: /usr/syno/etc/rc.d/S97apache-user.sh restart

Desweiteren muss noch in der Datei /usr/syno/synoman/phpsrc/phppgadmin/conf/config.inc.php geändert werden:

$conf['servers'][0]['desc'] = 'DiskStation';
und
$conf['extra_login_security'] = false;

Damit man das auch direkt mit dem Disk Station Manager aufrufen kann, ein Verzeichnis anlegen:

/usr/syno/synoman/webman/3rdparty/phppgadmin

In diesem Verzeichnis die Datei application.cfg erfassen:

text = phpPgAdmin
description = phpPgAdmin
type = popup
protocol = http
adress = localhost
port = 80
path = /phppgadmin/index.php

Dann den Disk Station Manager neu aufrufen und dann Aufrufen des phppgadmin unter dem Punkt Third-party applications; dort sich mit dem User admin des Station Managers (ohne Passwort) anmelden und schon sieht man die Datenbank-Innereien des Blogs und der Photostation. (Ich hoff nun, dass ich mich nicht irgendwo verschrieben hab...)
 
Zuletzt bearbeitet:

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Kann man das auch noch irgendwie absichern? Nach Deiner Anleitung (hat übrigens super funktioniert) kann halt jeder mit http://DNS/phppgadmin auf die Datenbank zugreifen...

Trolli
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
schwierig - hab ich mir die Zähne dran ausgebissen.:D

Das Problem sind die User in der Datenbank; allen voran der User admin. Zum einen braucht man ja einen voll berechtigten Datenbank-User, damit man überhaupt administrieren kann ... liegt nahe, dann einen zweiten Admin-User in der Datenbank anzulegen mit Kennwort. Dann wird man auch bei der Anmeldung unter dieser Identität nach dem Kennwort gefragt.

Soweit so gut. Aber das verhindert ja nicht, dass man sich auch weiterhin mit 'admin' ohne Kennwort anmelden kann. Wenn man nun für 'admin' in Postgres ein Kennwort vereinbart und die Start-Konfigurationsdatei für Postgrs so abändert, dass man das auch auf dem lokalen System eingeben muss, dann muss man das Kennwort auch beim Starten der DB angeben. (ich glaube, hierfür gibt es eine Datei-basierte Lösung). Was schlimmer ist, auch alle Webapplikationen (Fotoblog, Download usw.), die sich ja per User 'admin' an die Datenbank anmelden, müssen sich dann auch mit Kennwort authentifizieren. Und da hab ich die Lust verloren, weiter darüber nachzudenken ...

Der Eintrag "extra_login_security" greift nicht auf den Namen 'admin', er ist gedacht für 'postgres','administrator' usw. Vielleicht wäre es noch eine Lösung, sich das anzusehen. Aber ich hab ein wenig in den Skripten gewühlt und die 3fach verschlungenen Wege von Klassenaufrufen verfolgt; leider ohne rechten Spass an der Sache :(

So bin ich dann auf die Idee gekommen, den Aufruf in die 3rd-party zu integrieren; dann liegt es erstmal hinter der Schwelle der Web Station Authentifizierung. Was jetzt noch fehlt, ist eine Sperre, die den direkten Aufruf via Browser verhindert, so dass nur der Weg über die 3rd-party-Eintragung geht. Schätze, dass man das durch geschickte Eintragungen in der php.ini kombiniert mit .htaccess hinbekommen kann. Ist für mich nicht ganz so wichtig, weil ich 3 Apaches parallel laufen hab: Port 5000 für Station Manager, Port 80 für intern, Port 81 für extern ... da kann niemand von außen den phppgadmin aufrufen. Vielleicht kann man es auch so lösen, dass nur der Port 5000-Apache Zugang zu phppgadmin erhält ...
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Ja - muss ich mir auch noch mal ansehen. Wenn ich phpPgAdmin auf einem anderen Port laufen lasse, könnte ich den Zugriff von aussen über den Router verhindern bzw. einschränken. Idealerweise sollte es ja auf Port 5000 bzw. 5001 laufen - so wie das Webinterface der DS...

Trolli
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
5001 meinte ich auch :D
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
ich glaube ich habe in der application.cfg einen Tippfehler

adress = localhost <- falsch

address = IP_deiner_DS <- richtig
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Ja - muss ich mir auch noch mal ansehen. Wenn ich phpPgAdmin auf einem anderen Port laufen lasse, könnte ich den Zugriff von aussen über den Router verhindern bzw. einschränken. Idealerweise sollte es ja auf Port 5000 bzw. 5001 laufen - so wie das Webinterface der DS...

Trolli
@Trolli
Am besten in /usr/syno/synoman eine .htaccess Datei anlegen, die die IP Adressen prüft und den Zugriff nur dann freigibt, wenn es sich um eine erlaubte IP Adresse handelt. Sonst wird eine "Zugriff verweigert-Seite" angezeigt. Nachteil der IP Lösung ist es, dass z.B. alle Leute die über denselben Proxy kommen ebenfalls reindürfen. Weil die Auth auf IP und nicht auf User basiert. Allenfalls könntest du auch eine .htaccess Datei mit Useranmeldung einbauen. Ich persönlich bevorzuge die IP-Variante, weil dann ein Crawler nur die Fehlerseite zu sehen bekommt und nicht die Anmeldemaske für htpasswd ;)
Mit der .htaccess in /usr/syno/synoman wird auch der Zugriff auf die Photo- und die Audiostation eingeschränkt. Auch Zugriffe auf den DS-Manager werden davon getroffen.

Gruss

tobi

p.s. setzt mod_rewrite und mod_headers in der Apache Config voraus
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Danke für den guten Hinweis. Damals standen wir ja auch noch ganz am Anfang. Nach Itaris erstem Beitrag lief der phpPgAdmin ja auf Port 80. Das war natürlich nicht so schön, weil da jeder drauf konnte...

Trolli
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Nach Itaris erstem Beitrag lief der phpPgAdmin ja auf Port 80
Der Port spielt keine Rolle dabei. Egal ob Port 80, 5000 oder 5001 solange eine Portweiterleitung auf diese Ports im Router stehen ist es IMMER möglich direkt auf Files unter /phpsrc zuzugreifen und damit die Authentifizierung der DS zu umgehen (ausser eben eine .htaccess Datei wird reingemacht)
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
...anders sieht es natürlich aus, wenn nur der Port 80 von aussen zugänglich ist.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
...anders sieht es natürlich aus, wenn nur der Port 80 von aussen zugänglich ist.
Stimmt solange der Sys Apache nur aus dem LAN erreichbar ist, hast du damit kein Problem. Aber meist will der User ja den DS Manager auch im Internet haben und dann fangen die potentiellen Risiken erst an
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Mit Firmware 803 beta hab ich Probleme mit phppgadmin auf die Postgres DB zuzugreifen.
Woran könnte das liegen? Klappt das bei Euch?

Trolli
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
in welchem Verzeichnis liegt dein phppgadmin? ist das Kennwort noch immer dasselbe (im Installationsskript steht es .... man sieht es in der /usr/snyo/rc.d/S20pgsql.sh)?

Itari
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
phppgadmin liegt bei mir im 3rdparty-Verzeichnis und wird über den Sys-Apachen aufgerufen. In der S20pgsql.sh kann ich keinen Hinweis auf ein Passwort finden. Ich hatte bereits in den Daten der Photo Station nachgesehen und war eigentlich zu dem Schluss gekommen, dass wohl nach wie vor kein PW verwendet wird.

Könnte es sein, dass man nur mit einem Prozess, der unter dem Benutzer "admin" ausgeführt wird, auf die DB zugreifen darf? Der Sys-Apache läuft ja als "root"...

Trolli
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Schieb mal die Skripte hierhin: /usr/syno/synoman/phpsrc/phppgadmin und setzt in 3rdparty/phppgadmin/application.cfg die Pfade dadrauf ... Ich habe auch Probleme, wenn der phppgadmin woanders liegt.

Ansonsten ist admin nur für den Zugang auf die DB nötig, sofern die DB-Server unter admin läuft und die Datenbank-Dateien auch ihm gehören (das war in dem S20pgsql.sh-Skript zu finden)

Itari
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Tatsächlich! Im Ordner phpsrc funktioniert es ohne Probleme. Vielen Dank!

Aber wie kann das sein? Wieso funktioniert die Datenbankverbindung nur aus einem ganz bestimmten Ordner heraus?

Trolli
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Da hab ich auch mal ganz lange dran geknabbert und auch eine Erklärung dafür gefunden. Nur leider hab ich die wieder vergessen; konnte mich nur noch daran erinnern, dass man die Files unter phpsrc stehen haben muss. Sorry für meine Vergesslichkeit :(

Itari
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat