Ich weiss es gibt schon ein paar Einträge über dieses Thema, ich komme aber einfach nicht weiter:
Ich habe mit
apt- get update und apt- get install postgresql
postgres 8.3 auf debian 5 installiert.
Nun habe ich mit Windows versucht (pgAdmin) auf diesen Server, zuzugreiffen geht aber nicht weil meine Konfig noch nicht stimmt.
Mit “netstat -lap |grep LISTEN” sehe ich dass mein Server nur auf den localhost hört.
Um das hinzubekommen heisst es man soll in:
/etc/postgresql/postgresql.conf
“tcpip_socket = true” stellen,
nun ich habe in dieser Datei keinen Eintrag von tcpip_socket, es gibt listen_adresses = ‘localhost’
laut Beschreibung muss ich ein * anstatt localhost haben damit der zugriff von aussen möglich ist. -> ist nur für den ersten Test, natürlich werde ich danach schon den ip-bereich eingrenzen ;o)
dann muss man ja anscheinend noch was in der:
pg_hba.conf machen, da sich sonst nur localhost anmelden kann.
was muss ich da machen damit mal alle können *, und wie muss ich das nachher im ip bereich angeben z.B. 192.168.1.0
Und das wichtigste wenn ich die EInstellungen gebmacht habe, was muss ich neu starten damit die neue config auch greifft?
Nun habe ich mit Windows versucht (pgAdmin) auf diesen Server, zuzugreiffen geht aber nicht weil meine Konfig noch nicht stimmt.
Mit “netstat -lap |grep LISTEN” sehe ich dass mein Server nur auf den localhost hört.
Um das hinzubekommen heisst es man soll in:
/etc/postgresql/postgresql.conf
“tcpip_socket = true” stellen,
nun ich habe in dieser Datei keinen Eintrag von tcpip_socket, es gibt listen_adresses = ‘localhost’
laut Beschreibung muss ich ein * anstatt localhost haben damit der zugriff von aussen möglich ist. -> ist nur für den ersten Test, natürlich werde ich danach schon den ip-bereich eingrenzen ;o)
Ja, listen_adresses auf ‘*’ stellen. Damit lauscht er erst einmal auch auf dem Netz. Anmelden kann an sich dann aber noch immer nicht …
dann muss man ja anscheinend noch was in der:
pg_hba.conf machen, da sich sonst nur localhost anmelden kann.
Exakt. hba = Host Based Authentification.
was muss ich da machen damit mal alle können *, und wie muss ich das nachher im ip bereich angeben z.B. 192.168.1.0
Die Datei pg_hba.conf hat einen großen Vorteil: sie ist sehr gut dokumentiert. Schon mal reingeschaut?
host all all 192.168.1.0/24 md5
wäre ein Anfang, um als gültiger DB-Benutzer sich an jeder bestehenden DB mit Passwort anmelden zu können. Die anderen Möglichkeiten erschließen sich Dir durch lesen der Doku.
Und das wichtigste wenn ich die EInstellungen gebmacht habe, was muss ich neu starten damit die neue config auch greifft?
Vielen Dank ich weiss sind viele Fragen ;o)
Für das Netzwerk-lauschen ist ein Neustart von PG nötig, für Änderungen an der pg_hba.conf reicht ein Neustart.
anstatt localhost das * kommen müsste oder ein netzbereich oder?
ist das 3965 der Port? Müsste das nicht der Port 5432 sein. so wie in postgresql.conf angegeben? muss ich das sonst noch wo umstellen?
Was ich bis jetzt gemacht habe:
in postgresql.conf ->listen_addresses = ‘*’
in pg_hba.conf:
# Database administrative login by UNIX sockets
local all postgres ident sameuser
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all ident sameuser
# IPv4 local connections:
#host all all 127.0.0.1/32 md5
host all all 10.112.71.0/24 trust
# IPv6 local connections:
host all all ::1/128 md5
Ich habe in einer alten config ein trust gefuden anstatt md5 für was ist das md5? ist das eine überprüfungsfile oder sowas??
Nein. -lap, durch das -p bekommst Du die PID. Diese könnte natürlich zufälligerweise auch mal 5432 sein. Muß aber nicht.
Was ich bis jetzt gemacht habe:
in postgresql.conf ->listen_addresses = ‘*’
in pg_hba.conf:
Database administrative login by UNIX sockets
local all postgres ident sameuser
TYPE DATABASE USER CIDR-ADDRESS METHOD
“local” is for Unix domain socket connections only
local all all ident sameuser
IPv4 local connections:
#host all all 127.0.0.1/32 md5
host all all 10.112.71.0/24 trust
IPv6 local connections:
host all all ::1/128 md5
>
> Ich habe in einer alten config ein trust gefuden anstatt md5 für was ist das md5? ist das eine überprüfungsfile oder sowas??
>
> Vielen Dank...
MD5 ist eine Authentifizierungsmethode, dabei wird das Password md5-gehascht übertragen.
\
\
Frage: welche IP hat Dein Client, und wie lautet die Fehlermeldung?
Andreas
Mein Rechner hat
ip: 10.112.71.151, 255.255.255.0
Gateway: 10.112.71.254
Fehlermeldung vom client:
could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "10.112.71.148" and accepting TCP/IP connections on port 5432?
md5:
das würde heissen, dass ich dem client mitteilen muss, dass er das paaswort mit md5 haschen muss? md5 hat für mich etwas mit kontrollsumme zu tun, für mich macht das aber bei einem passwort keinen sinn oder doch? was bedeutet gehascht -> verschlüsselt?? kann ich dort das “trust” anstatt dem “md5” lassen oder ist das md5 in diesem Fall entscheidend?
ja ich habe mit vi in /etc/postgresql/8.3/main/postgresql.conf und pg_hba.conf bearbeitet, wie unten “besprochen” ) gibts noch anderswo diese dateien??
Nun denn, funktioniert denn eine Netzwerkverbindung zu diesem Port von deinem Rechner aus? Es gibt dieses nette Tool, “telnet” (oder telnet.exe unter Windows), mit dem man so etwas testen kann.
md5:
das würde heissen, dass ich dem client mitteilen muss, dass er das paaswort mit md5 haschen muss?
Client und Server im selben Netz? Warum betonst Du das Gateway?
Sind Branschutzmauern aka Firewalls im Spiel? Iptables uf dem Server?
Fehlermeldung vom client:
could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host “10.112.71.148” and accepting TCP/IP connections on port 5432?
>
>
> > md5:
> das würde heissen, dass ich dem client mitteilen muss, dass er das paaswort mit md5 haschen muss? md5 hat für mich etwas mit kontrollsumme zu tun, für mich macht das aber bei einem passwort keinen sinn oder doch? was bedeutet gehascht -> verschlüsselt?? kann ich dort das "trust" anstatt dem "md5" lassen oder ist das md5 in diesem Fall entscheidend?
>
Das md5 dient nur der Sicherung des Transportweges. Du kannst auch TRUST nehmen, kommt halt drauf an, ob Du allen, die via Netz Zugang haben, vertraust.
Ich bin *etwas* irritiert, ob das nun ein LAN ist oder da das böse Internet zwischen Client und Server ist.
\
\
Andreas