Zugriff von extern auf interne Datenbank

Hallo,
folgendes Problem ich habe eine Datenbank die sich intern also im Intranet befindet und möchte einen Zugriff von Extern erzielen, über einen Onlineserver. Wie könnte dies realisiert werden.
Gibts bei Postgres die Möglichkeit der Datenbankspiegel oder eine Einstellungsmöglichkeit, die den Zugriff von extern ermöglicht.
Benötige schnell eine Lösung

Viele Grüße
Shorty

Nein, also, das ist komplett unmöglich. Zugriff geht nur von Intern, und damit ist gemeint, Du mußt den Datenbankserver aufschrauben und reinkriechen.

Im Ernst:
Natürlich geht das. Das ist aber davon abhängig, wie Du von außen reinkommen kannst. SSH-Tunnel, VPN oder Schnuggel von USB-Sticks mit Datenbankdumps. Zum Thema SSH hatte ich heute hier schon was erklärt.


Andreas

:confused:

Hmm, damit kann ich irgendwie auch nichts anfangen. Also ich möchte erstmal nur ne php Seite online stellen, die eine Tabelle aus der internen Datenbank darstellt. Mir fehlt nur noch diese Zugriffsmöglichkeit.
Später möchte ich aber dann einen lesenden und schreibenden Zugriff haben.

Du hast kein Problem mit PG, sondern mit Netzwerk allgemein. Wenn Dir Dinge wie SSH und VPN so ganz exakt gar nix sagen, solltest Du auch lieber nicht erst versuchen, einen Remote-Zugriff auf Euer Intranet hinzuwurschteln. Glaub mir.

Was den PG-Teil angelangt, dann ist die Doku zu pg_hba.conf für Dich sicherlich von sehr großem Interesse.

Andreas

Hehe, danke. Jup hab wirklich noch nicht viel Erfahrung mit Netzwerken.
Kann man einfach in der pg_hba.conf reinschreiben
“host all all hier die IP vom Onlineserver 255.255.255.255 md5”
oder was muss ich da noch beachten? Weil so hatte das nicht funktioniert!!!

Viele Grüße und danke
Shorty

Ja, wenn Du Dir sicher bist, das der Onlineserver dahin Zugriff hat. Im Kontext Deiner anderen Aussagen bezweifle ich dies aber. Und exakt deswegen in meiner ersten Antwort die dort genannten Begriffe.

Andreas

Wie kann man denn Tabellen von einer Datenbank auf ne andere kopieren (update) am besten mit einem cronjob ???

Du kannst mit COPY arbeiten. Die Onlinehilfe erklärt auch diesen Befehl. Aber im Kontext Deiner Fragestellung bezweifle ich, das Du damit die gesuchte Lösung hast. Dein grundlegendes Netzwerkproblem bleibt ja damit bestehen.

PS.: multiple Fragezeichen machen Deine Frage nicht fragender, sondern allenfalls lächerlicher…

Andreas

Ach und warum antwortest du auf so lächerliche Fragen, dann kannst du dir das ja sparen.
Weil weiterhelfen tust du mir damit nicht. Und wenn ich alles wüsste dann bräuchte ich hier nicht zu fragen.

Ich nannte Dir im ersten Beitrag von mir einen Lösungsweg. Das dieser funktioniert weiß ich sicher. Wenn Dir das nicht hilft, dann sorry. Genauere Lösungswege wird Dir bei Deinen spärlichen Informationen ohnehin kaum jemand geben können.

Andreas

Er versucht, dir im Rahmen seiner und deiner Kenntnisse zu helfen. Was erwartestst du? Das Thema Sicherheit und Zugriffsberechtigungen ist reichlich komplex, und wenn du mit ssh etc nichts anfangen kannst, ist es wirklich schwer dir was zu empfehlen. Auch ich lege dir nahe, dich erst eingehend mit diesen Netzwerktechniken zu befassen.

Cu Uwe

Weil wir meistens hilfsbereit sind, du die Nerven aber stark strapazierst.

Und wenn ich alles wüsste dann bräuchte ich hier nicht zu fragen.

Es geht nicht darum, das du alles weisst, so jemanden gibt es nicht. Wir kennen uns halt mit Datenbanken ein gutes Stück aus, vielleicht auch mit Netzwerken. Es geht aber darum, das du zeigst, das du weder von Netzwerken noch von Datenbanken viel weisst. Gleichzeitig versuchst du da etwas hinzubiegen, was potentiell gefährlich ist … für eure Daten oder für euer Netzwerk. Die Warnungen, die dir akretschmer mehrfach genannt hat, ignorierst du brav.

Da bleibe ich bei meiner Standardantwort: Lass das jemanden machen, der sich damit auskennt.

Ich versuch es noch einmal:

Wenn Du von extern einen in einem LAN stehenden Server ansprechen wollst, dann brauchst Du eine Netzwerkverbindung dahin. Und wenn ein Client einen Server ansprechen will, dann baut der Client die Verbindung zum Server auf.

Wenn Du also von extern auf diesen Server zugreifen will, dann reicht es nicht nur aus, wenn man von diesem Server im LAN aus eine Internetverbindung aufgebaut werden kann (Hint: ping pg-ug.de), sondern es muß auch möglich sein, daß (zumindest von dem Client aus) Dein im LAN stehender Server ansprechbar ist. Dafür gibt es mehrere Wege.

Nun ist die Frage, wie dieser im LAN stehende Server ans Internet angebunden ist. Ist er:

  • via Proxy
  • via Router

angebunden? Falls Router:

  • hast Du administrativen Zugriff auf den Router?
  • ist das evtl. ein Linux-Router mit Iptables?

Falls Proxy: das wird schwer… man könnte öffen, es über einen SSH-Tunnel über den Proxy hinzubekommen. Dazu müßte der Proxy aber wenigstens CONNECT erlauben.


Weitere Fragen:

  • sind überhaupt Rechner im LAN von außen ansprechbar?

Falls im LAN keines von folgenden Dingen realisierbar ist:

  • DNAT
  • Portforwarding
  • SSH-Zugriff

hast Du dann wenigstens auf dem Client einen SSH-Zugang und kann der Server im LAN via SNAT (aka IP-Masquerade) ins Internet? Dann bliebe noch der Weg über SSH und gatewayed Ports. (ssh -g)

Bei allen Varianten von Tunneln empfiehlt sich aber immer, folgendes HOWTO zu beachten: http://jors.net/tunneln.html


So. das war mal im groben, was sich trivial auf den ersten Blick machen ließe. Weitere Möglichkeiten sind dann ausgewachsene VPN-Lösungen via:

  • OpenVPN
  • TINC
  • IPSec
  • weitere

So, und nun verstehst Du vielleicht besser, warum ich bereits sagte, Du hast primär ein Netzwerkproblem und keines mit PG. Und falls Du Dich mal ansatzweise mit Netzwerktechnik beschäftigen willst:

IPTables: Linux-Info-Tag: Programm 2004 (dort sind Dinge wie Portforwarding, DNAT, IP-Masquerade etc. erklärt)
SSH: akretschmer’s bookmarks tagged with “ssh” on del.icio.us
SSH: Secure Shell - Wikipedia
TCP/IP: Einführung in TCP/IP - Inhalt
VPN: Virtual Private Network - Wikipedia

Andreas

Möchte noch anmerken, daß sich meine Aussage bzgl. der Lächerlichkeit einer Frage nicht auf die Frage selbst sondern auf die mehrfachen Fragezeichen bezog.

Es geht nicht darum, das du alles weisst, so jemanden gibt es nicht. Wir kennen uns halt mit Datenbanken ein gutes Stück aus, vielleicht auch mit Netzwerken. Es geht aber darum, das du zeigst, das du weder von Netzwerken noch von Datenbanken viel weisst. Gleichzeitig versuchst du da etwas hinzubiegen, was potentiell gefährlich ist … für eure Daten oder für euer Netzwerk. Die Warnungen, die dir akretschmer mehrfach genannt hat, ignorierst du brav.

Korrekt. Zumal nowendige Details zur Anbindung des Servers, der in einem LAN steht, ans Internet, komplett fehlten. Selbst mit Zudrücken aller Augen bzgl. der potentiellen Gefahren kann man da kaum detailliert antworten. Welche technischen Fragen vom Fragesteller zu beantworten sind, habe ich heute nochmals aufgezeigt.

Da bleibe ich bei meiner Standardantwort: Lass das jemanden machen, der sich damit auskennt.

Jepp.

Ich denke für die Gute hätte es gereicht, wenn einfach ein Snapshot der internen Pg-Datenbank per cronjob regelmäßig in eine Datenbank im externen Webserver kopiert wird. Das muss dann ja nichmal nen Pg-DBserver sein, wenn das PHP-skript nur’n paar Standard-SELECTs ausführen muss. (08/15-webhoster bieten ja kein PG)

Dann braucht sie nicht vom Webserver aus ins LAN tunneln und die Logindaten für den PGserver auf dem Webserver lagern, da der interne Server mit der Pg-Datenbank das Bereitstellen der Daten durch Hochladen auf den externen Webserver erledigt.

Erst wenn sie dann aber auch Inserts und Update über den Webserver/PHPskript machen will wird das Tunnel-ssh-vpn-zeuch vielleicht wieder aktuell… oder sie hat ein Problem wenn inserts/updates extern und intern auf gleiche Tabellen durchgeführt werden. Wahrscheinlich möchte sie aber eh nur sowas wie die Daten eines Kontaktformular abspeichern. Wenn die entspr. DB-Tabelle nur webseitig gefüttert wird ist also selbst das eigentlich kein Problem. Daten der Kontaktformulartabelle könnte sich ja dann der interne cronjob im PG-server gleich mit vom Webserver abholen.


ps: sozialstudientauglicher Verlauf des Gespräches - zu oft aneinander vorbeigeredet - Firsttimer meets Experts

Denglisch meets … ach, lassen wir das.

Es wurde im Gesprächsverlauf mehr als deutlich, das der OP nicht viel von Netzwerken versteht. Als ihm nahegelegt wurde, sich damit zu beschäftigen erfolgten Angriffe auf die Helfenden.
Da können wir jetzt Studien drüber führen wie wir wollen, auf die Form hat man als Helfender keine Lust, da weiter aktiv zu sein.

Du hast ja sowas von konkret krass Recht. Einfach voll den krassen Dump der DB hochbeamen und von krass konkreten PHP voll den Select drauf fahren.

ps: sozialstudientauglicher Verlauf des Gespräches - zu oft aneinander vorbeigeredet - Firsttimer meets Experts

aber echt eh…

Andreas