Postgre Proxy

Hallo,

wir haben hier das Problem von “außen”, also dem I-net auf die DB DBZ zugreifen zu müssen. Lt. DMZ Regeln ist ein Zugriff auf die DB-DMZ aber direkt aus dem I-net nicht erlaubt, sondern nur die Webserver aus der Web-DMZ dürfen dieses.
Gibt es irgend ein Proxy oder Wrapper, der die DB Connections weiterreichen und handeln kann ?
Unser Design soll so aussehen:
DB-Client irgendwo im I-net <–> DB-Proxy in Web-DMZ <–> PostgreServer in DB-DMZ

Ist dies überhaupt möglich?

thx vicodas

Könnte man vermutlich mit SSH hinbekommen. Aber Deine Beschreibung ist schwammig, da weiß man zu wenig über die Infrastruktur. Ist der Zugriff nur lesend oder auch schreibend erforderlich? Falls nur lesend böte sich vielleicht auch Slony in der DMZ an.

Andreas

Hi,

danke für das schnelle Feedback.

Es ist lesend und schreibend ein Zugriff möglich.

Welche Informationen braucht Ihr noch zwecks der Infrastruktur?

ssh Zugriff ist aus dem I-net auch nicht möglich, nur Port 80 oder 443.
Also Tunneling via vpn oder sowas geht auch nicht :frowning:

Ich dachte da mehr an eine Proxy Funktionalität, ähnlich wie der squid, der die Zugriffe weiterreicht. Vielleicht kann ich unserem Firewall Admi ja noch überreden einen Port oberhalb 1024 für den Proxy freizuschalten…
Will ja nur erstmal wissen, ob dies technisch irgendwie machbar ist.
Die Wege muß ich dann hier im Haus durchsprechen,

thx vicodas

s/möglich/nötig/, oder?

ssh Zugriff ist aus dem I-net auch nicht möglich, nur Port 80 oder 443.

HTTP und HTTPS für den/die Webserver, ja. Wenn ein weiterer Dienst dazukommen soll, wird das kaum ohne einen
weiteren Port gehen.

Also Tunneling via vpn oder sowas geht auch nicht > :frowning:

Das kannst Du da einen Hacken dran machen, erledigt.

Ich dachte da mehr an eine Proxy Funktionalität, ähnlich wie der squid, der die Zugriffe weiterreicht. Vielleicht kann ich unserem Firewall Admi ja noch überreden einen Port oberhalb 1024 für den Proxy freizuschalten…
Will ja nur erstmal wissen, ob dies technisch irgendwie machbar ist.
Die Wege muß ich dann hier im Haus durchsprechen,

Moment, über was reden wir? Wollt ihr einen PG-Server, der bei Euch im LAN oder DMZ steht, von außen zugänglich machen oder aus dem LAN über einen Proxy in der DMZ auf einen extern im Internet stehenden PG-Server zugreifen?

Technisch möglich ist alles mögliche, was innenpolitisch bei Euch umsetzbar ist weiß ich nicht.

Andreas

Genau das wollen wir, einen Server der in Datenbank DMZ steht von außen zugänglich machen. Und zwar zwingen schreibend/lesend…

Ich will deshalb die technischen Möglichkeiten herausfinden, um dann den Aufwand/die technische Machbarkeit in unserem Haus, abzuchecken.

Braucht Ihr noch Infos?

thx vicodas

Das ist simpel: Port 5432/TCP bzw. denjenigen, auf dem PG lauscht, von außen zugänglich machen. Falls der direkte Zugriff nicht gewollt ist, böte sich SSH an. Oder man verwendet SSL. zur Authentifizierung. Aber wenn von außen nur HTTP und HTTPS offen ist und auf Eure Webserver weiterleitet, wird das nix werden. Zum Glück verwendet PG ein stink normales TCP-Protokoll mit einem Port und keine kranken Geschichten wie FTP und erwartet auch keine anderen Ports in irgend einer Weise.


Andreas

Danke für das Feedback.
Das mit dem Port 5432/tcp ist schon klar, ich möchte halt nicht den PG-Server direkt an der Front stehen haben.
Wenn dort ein Eingriff über irgend eine Lücke passiert, sind im schlimmsten Fall alle DB’s futsch.
Deshalb wollte ich die Anfragen halt über eine Funktionalität wie bei einem Proxy “händeln” lassen, um so noch eine Zwischenschicht zu haben, an der man sich im Besten Fall noch einmal authentifizieren muß.

Wie läuft das bei PG eigendlich in Zusammenarbeit mit SSL?

thx vicodas

Nun ja. Wenn schreibend drauf zugegriffen werden soll, dann wird das wohl nötig sein. Die Frage ist eher, wie viele User da in Frage kommen und ob Dinge wie VPN oder SSH-Tunnel anwendbar sind. Vielleicht kannst Du ja auch die Source-IP - Adressen klar definieren und eingrenzen, vielleicht sind sogar Dinge wie Port-Knocking möglich.

Wenn dort ein Eingriff über irgend eine Lücke passiert, sind im schlimmsten Fall alle DB’s futsch.

Die Geschichte von PG sieht da deutlich aufgeräumter aus als zum Bleistift Oracle oder MySQL, was remote Exploits betrifft. Was natürlich immer ein Problem darstellt ist SQL-Injection.

Wie läuft das bei PG eigendlich in Zusammenarbeit mit SSL?

thx vicodas

PostgreSQL: Documentation: Manuals: PostgreSQL 8.2: Secure TCP/IP Connections with SSL


Andreas

Die IP ist leider dynamisch, da läßt sich nicht viel machen.
Wir haben schon über VPN nachgedacht, aber da will der Firewalladmin nicht mitspielen…

Ich werde mir die SSL Geschichte mal genauer anschauen.

Danke nochmal,

vicodas

Also, ganz ehrlich, wenn du Angst vor Einbrüchen von aussen hast, darfst du auch keine Proxylösung einsetzen. Denn wenn dir jemand da rein einbricht, hat er a) Kontrolle über den Host auf dem der Proxy läuft und b) trotzdem Zugriff auf die Datenbank.

Mir ist ja eigentlich egal, wie eure “Zitat akretschmer” innenpolitische Einstellung ist, aber so ein Proxy bringt bloss eine weitere Komponente ins Spiel, damit eine weitere Fehlerquelle und mehr Sachen, die zu beachten sind.
Wenn ihr eine DB vom Internet aus braucht, stellt den Port zur Verfügung, das macht den wenigsten Stress und ist am einfachsten zu regeln und zu managen.