Internet access

Hi,

hab folgende situation.


1 PC soll als host server dienen und übers internet erreichbar sein, der PC selbst ist an ein router angeschlossen.

Hab etwas rumprobiert, dem router einen domainnamen besorgt bei “dyndns”.
Der router ist darauf eingestellt den port auf die feste IP des host PCs weiterzuleiten.

Aber ich bekomm die Fehlermeldung:
Connection refused (0x0000274D/10061) Is the server runnung on host “beispiel.dyndns.org” and accepting TCP/IP connections on port 5432?

Das ganze funktioniert natürlich wenn ich übers lokale netzwerk auf die DB zugreife, also einfach die lokale netzwerd IP statt der internet IP als connection string eingebe.

Hab natrülich kein plan ob das prizipiell überhaupt so gehen würde, ist mein erster versuch übers inet, statt LAN.

Ja. Und? Du hast ein Netzwerk-Problem. Mehr kann man so erst einmal nicht sagen.

Andreas

Du mußt den Port 5432 am Router ggf. forwarden und der Firewall am Server sagen, das sie das auch annehmen soll. Korrekte Konfiguration des Servers vorausgesetzt. Ich empfehle dir aber, falls du das produktiv nutzen möchtest, das ganze über ssh mit public/private Keys zu tunneln. Da gehen dann auch keine klartextinfos durch Netz und man muß nicht so viele Ports am Router aufmachen.

Grüssle Uwe

Ok ich führe das mal weiter aus.
Der Host läuft übrigens mit Windows.
Würde den später auf Linux umstellen, aber im moment ist es einfacher Windows zu benutzen.

Wie schon erwähnt funktiert alles einwandfrei wenn ich mit einem anderen PC im netzwerk auf den Host PC zugreife.
Die Konfigurationsdateien sehen folgendermaßen aus:

postgressql.conf

# - Connection Settings -

listen_addresses = '*'        # what IP address(es) to listen on;
                    # comma-separated list of addresses;
                    # defaults to 'localhost', '*' = all
                    # (change requires restart)
port = 5432                # (change requires restart)
max_connections = 100            # (change requires restart)

pg_hba.conf

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
host    all         all        192.168.2.51/32          md5
host    all         all        192.168.2.49/32          md5
host    all         all        192.168.2.46/32          md5

Der host selbst hat die lokale IP 192.168.2.51.
Es sind keine Firewalls auf dem Host PC installiert.
Es wird brav auf . abgehört wenn ich beim Host mit “netstat -a” schaue.

Und ich merk grad es fehlt ja im grunde ein Eintrag in der “pg_hba.conf” für PCs ausserhalb des LANs, aber er sagt mir ja erstmal was anderes, dass er den Server gar nicht sieht.
Also das anpingen der inet adresse vom Host PC, das geht auch.
Wie kann ich den von außen testen ob ich den postgres Server sehen kann?
Oder wie kann ich den weiter vorgehen um die Fehlerquelle zu finden?

Korrekte Konfiguration des Servers vorausgesetzt.

Was genau meinst du damit?
Muss ich was zusätzliches beachten damit er über inet erreichbar ist?

Da gehen dann auch keine klartextinfos durch Netz und man muß nicht so viele Ports am Router aufmachen.

Hmm? Wie gesagt hab im moment nur 5432 fürs weiterleiten auf den Host PC freigegeben.
Muss ich noch weitere ports freigeben?

SSH tunnel brauch ich erstmal nicht, wäre mir recht wurst ob das klartextinfos sind, im grunde kann nur ich was mit den informationen anfangen.

Stimmt auch Dein Routing, kann der Host ins Internet?


Und ich merk grad es fehlt ja im grunde ein Eintrag in der “pg_hba.conf” für PCs ausserhalb des LANs, aber er sagt mir ja erstmal was anderes, dass er den Server gar nicht sieht.

ACK. Die pg_hba.conf spielt noch gar keine Rolle bei Deinem Fehler.

Also das anpingen der inet adresse vom Host PC, das geht auch.

Was pingst Du da an? Deinen Router, nicht den PC dahinter. Wer antwortet also?

Wie kann ich den von außen testen ob ich den postgres Server sehen kann?

telnet. nmap. Also das, was unsere lieben Politiker als ‘Hackertools’ bezeichnen.

Oder wie kann ich den weiter vorgehen um die Fehlerquelle zu finden?

Was genau meinst du damit?
Muss ich was zusätzliches beachten damit er über inet erreichbar ist?

Du mußt Deinem Router verklickern, daß er Anfragen an seine externe Adresse, Protokoll TCP, Zielport 5432 an Deinen lokalen Rechner TCP/5432 leitet und daß Antworten von dort wieder raus gehen.

Hmm? Wie gesagt hab im moment nur 5432 fürs weiterleiten auf den Host PC freigegeben.

Was offensichtlich nicht funktioniert.

Muss ich noch weitere ports freigeben?

Nein.

SSH tunnel brauch ich erstmal nicht, wäre mir recht wurst ob das klartextinfos sind, im grunde kann nur ich was mit den informationen anfangen.

Davon abgesehen, daß 99.999% der Windoze-Nutzer, die ihren PC als SPAMschleuder hergeben, davon nichts wissen: SSH ist ein geniales Tool.

Andreas

Stimmt auch Dein Routing, kann der Host ins Internet?

Ja. Ich teste vom Host aus.

Was pingst Du da an? Deinen Router, nicht den PC dahinter. Wer antwortet also?

telnet. nmap. Also das, was unsere lieben Politiker als ‘Hackertools’ bezeichnen.

Du mußt Deinem Router verklickern, daß er Anfragen an seine externe Adresse, Protokoll TCP, Zielport 5432 an Deinen lokalen Rechner TCP/5432 leitet und daß Antworten von dort wieder raus gehen.

Joa, war nur eine sicherstellung, dass die dynamische übersetzung der IP überhaupt funktioniert.

So wie ich das verstehe ist das eine einfache port-weiterleitung / port forwarding.
Das ist auch so beim router eingestellt, port 5432 weiterleiten auf Host PC.

Hab das jetzt nochmal überprüft.

Open Port Check Tool sagt der port 5432 ist offen.

Wenn ich mit telnet versuche eine verbindung über die LAN IP, port 5432 aufzubauen dann gehts.
Über die internet IP des routers auf port 5432 gehts nicht.

Hab immer noch keine idee woran das jetzt liegen kann.
Offensichtlich kann er den service auf port 5432 einfach nicht sehen wenn ich über den router gehen will.

Dann lügt Open Port Check Tool.

Hab immer noch keine idee woran das jetzt liegen kann.
Offensichtlich kann er den service auf port 5432 einfach nicht sehen wenn ich über den router gehen will.

Ja. Liegt aber nicht an PG.


Andreas

Über die internet IP des routers auf port 5432 gehts nicht.

Wie testest du das? Von einem Rechner ausserhalb deines Netzwerkes oder innerhalb?

Nicht unbedingt. Manchmal ist es nicht moeglich sich aus dem eigenen Netz heraus anzuschauen, welche Ports von aussen offen sind. Ein dritter externer Rechner kann das aber durchaus.

Prüfe mal von aussen(!) mit nmap (das ist kein Aufruf zu einer Straftat :wink: ). Das sollte letztliche Gewissheit geben, ob dein Router auf Port 5432 offen ist. Wenn man von intern testet, kommen manchmal seltsame Dinge raus.

Grüssle Uwe

Der Fragesteller könnte auch seine IP-Adresse hier nennen, dann machen wir das mal …

Andreas

Meine derzeitige IP ist: 91.17.244.131
Also wie gesagt port 5432 ist im router auf forward zum Host PC eingestellt und wird mir von diversen port check seiten als offen angezeigt.
Wenn da einer von euch mal einen test machen könnte würde mir das schon weiterhelfen.
Vlt. kanns ja auch wirklich daran liegen, dass ich vom selben LAN aus versuche eine verbindung aufzubauen.

Schaut gut aus:

kretschmer@tux:~$ nmap 91.17.244.131 -p 5432

Starting Nmap 4.62 ( http://nmap.org ) at 2009-06-22 13:52 CEST
Interesting ports on p5B11F483.dip.t-dialin.net (91.17.244.131):
PORT     STATE SERVICE
5432/tcp open  postgresql

Nmap done: 1 IP address (1 host up) scanned in 3.089 seconds

Andreas

Hi,

das krieg ich zurück:

FATAL: no pg_hba.conf entry for host “xxx.xxx.xxx.xxx”, user “postgres”, database “postgres”, SSL off

SSL geht gar nicht(Server ist ohne Unterstützung kompiliert), würde ich an deiner Stelle aber schon einsetzen.

Freundliche Grüße

hkocam

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
host    all         all        192.168.2.51/32          md5
host    all         all        192.168.2.49/32          md5
host    all         all        192.168.2.46/32          md5

ich sehe da keine IP-Adresse die deinen Router vermuten lässt
sicher ich kann mich auch irren
aber ich halte es für sehr unwahrscheinlich, dass dein Router bei der DB hallo sagen darf

refused heisst - dass der host prinzipiell erreichbar ist - aber die verbindung abgelehnt wurde … 100% sicher bin ich mir nicht - aber ein guter router oder eine gute firewall waere nicht so geschwaetzig



Würde es an einem fehlenden Eintrag in der pg_hba.conf scheitern, sähe es so aus:

kretschmer@tux:~$ psql -h 91.17.244.131  template1
psql: FATAL:  no pg_hba.conf entry for host "194.25.yyy.xxx", user "kretschmer", database "template1", SSL off

Im übrigen: die Qualität einer ‘Firewall’ beurteilt man nicht an der Gesprächigkeit einer Fehlermeldung einer Software, die kein Connect bekommt. Aber das wird jetzt Offtopic…

Andreas

och wie niedlich

halt doch einfach Deine Fresse

Also thx an alle, habs grad von nem PC getestet welcher nicht in der LAN ist.
Damit gings dann wunderbar, lag einfach daran, dass ich von der selben LAN aus versucht hab eine verbindung über die inet IP zu bekommen, was anscheinend problematisch ist.

Xandrian: gelöscht. Sowas will ich hier nicht haben!



Dann mag dein Router nicht auf dem falschen Interface angesprochen werden, was Sinn macht. Die IP ist ja für die Richtung “nach draußen” gedacht, für das LAN hast du eine andere IP zur Verfügung.

Dat sacht genau der Richtige - Auweia - ich bin es nicht (nach wie vor) der beleidigt.

Und natürlich war es zu erwarten, dass Du ihn wie immer unterbietest -

Ich bin (und das ist in diesem Forum dokumentiert) nicht der Einzige der Euer beider unterirdische Art festgestellen muß - wahrscheinlich bin ich aber der einzige der dessen Kontinutät festhält.