Re: Postgres Docker Apache
Am 2018-06-26 10:04, schrieb William Epler: 2018-06-25 23:04 GMT+02:00 Heiko Schlittermann : Hallo Stefan, Stefan Majewsky (Mo 25 Jun 2018 22:21:46 CEST): >Was hab ich vergessen bzw. falsch gemacht? Hat jemand einen Tipp für >mich? PostgreSQL spricht kein HTTP, sondern ein eigenes Protokoll. Dieses kann nicht von einem HTTP-Server wie Apache geproxyt werden. Richtig. Für IPv6 ist die Lösung einfach: Dafür sorgen, daß ICMP6 und 5432/tcp vom Docker-Host durchgelassen werden. Der Docker hat wie jede Gerätschaft seine eigene Adresse und muß selbige nicht per NAT umlügen. Für IPv4 wirst Du an NAT auf dem Docker-Host nicht vorbeikommen. Eine sehr gute Einführung dazu ist auf https://www.karlrupp.net/de/computer/nat_tutorial zu finden. Bevor Du den PostgreSQL aber in irgendeiner Weise im weltweiten Verbindungsnetz zugänglich machst, solltest Du ihn dringends mit SSL abgesichert haben - siehe https://www.postgresql.org/docs/current/static/ssl-tcp.html Vielen Dank für alle Antworten. Dass der Apache tatsächlich nur HTTP versteht und andere TCP-Verbindungen nicht einfach so durchproxied, macht natürlich Sinn. Das war mir gestern noch nicht so bewusst. Die TLS-Einstellungen hab ich von anderen Projekten kopiert, die aber alle nur Webkram sind, also HTTP sprechen. Inzwischen haben auch noch andere Umstände dafür gesorgt, dass ich das lieber ganz anders mache: Postgres und pgadmin4 aus einem Compose-File heraus auf der gleichen Kiste starten. Nachteil: für jeden Datenbank-Server, die nach dem Compose-File gebaut wird, ein eigenes pgadmin4 Vorteil: keine offenen Datenbankverbindungen über verschiedene Rechner hinweg, sondern nur im jeweiligen Docker-Network Danke und Gruß Marc signature.asc Description: OpenPGP digital signature
Re: Postgres Docker Apache
2018-06-25 23:04 GMT+02:00 Heiko Schlittermann : > Hallo Stefan, > > Stefan Majewsky (Mo 25 Jun 2018 22:21:46 CEST): >> >Was hab ich vergessen bzw. falsch gemacht? Hat jemand einen Tipp für >> >mich? >> >> PostgreSQL spricht kein HTTP, sondern ein eigenes Protokoll. Dieses kann >> nicht von einem HTTP-Server wie Apache geproxyt werden. Richtig. Für IPv6 ist die Lösung einfach: Dafür sorgen, daß ICMP6 und 5432/tcp vom Docker-Host durchgelassen werden. Der Docker hat wie jede Gerätschaft seine eigene Adresse und muß selbige nicht per NAT umlügen. Für IPv4 wirst Du an NAT auf dem Docker-Host nicht vorbeikommen. Eine sehr gute Einführung dazu ist auf https://www.karlrupp.net/de/computer/nat_tutorial zu finden. Bevor Du den PostgreSQL aber in irgendeiner Weise im weltweiten Verbindungsnetz zugänglich machst, solltest Du ihn dringends mit SSL abgesichert haben - siehe https://www.postgresql.org/docs/current/static/ssl-tcp.html -- William Epler
Re: Postgres Docker Apache
Hallo Stefan, Stefan Majewsky (Mo 25 Jun 2018 22:21:46 CEST): > >Was hab ich vergessen bzw. falsch gemacht? Hat jemand einen Tipp für > >mich? > > PostgreSQL spricht kein HTTP, sondern ein eigenes Protokoll. Dieses kann > nicht von einem HTTP-Server wie Apache geproxyt werden. Genau das wollte ich auch schreiben. Habe es dann aber wieder gelöscht, weil ich dann die TLS-Settings in seinem Bespiel gesehen habe und mir jetzt auch nicht mehr sicher bin, ob da der Apache einfach nur das SSL, welches ja um jedes andere Protokoll gelegt sein kann, durchreicht und vielleicht der PostgreSQL-Server das dann sogar versteht, und sein eigenes Layer7-Protokoll da rauspopeln kann. Vielleicht ist aber auch aus den Einstellungen, die der OP verwendet, für einen Eingeweihten sofort sichtbar, daß der Apache das TLS wird terminieren wollen. Der Schlüssel steckt vermutlich in „SSLProxyEngine“ Best regards from Dresden/Germany Viele Grüße aus Dresden Heiko Schlittermann -- SCHLITTERMANN.de internet & unix support - Heiko Schlittermann, Dipl.-Ing. (TU) - {fon,fax}: +49.351.802998{1,3} - gnupg encrypted messages are welcome --- key ID: F69376CE - ! key id 7CBF764A and 972EAC9F are revoked since 2015-01 - signature.asc Description: PGP signature
Re: Postgres Docker Apache
Am 25. Juni 2018 17:15:53 MESZ schrieb m...@marcloechner.de: >Was hab ich vergessen bzw. falsch gemacht? Hat jemand einen Tipp für >mich? PostgreSQL spricht kein HTTP, sondern ein eigenes Protokoll. Dieses kann nicht von einem HTTP-Server wie Apache geproxyt werden. Du könntest versuchen, einen reinen TLS-Proxy zu nehmen, der kein HTTP macht, sondern das Postgres-Protokoll nur in TLS einpackt. TLS unterstützen die meisten Postgres-Clients, und in TLS kannst du mittels SNI (Server Name Indication) die gewünschte Virtual-Host-Beschränkung umsetzen. Ich kann mangels Erfahrung keine entsprechende TLS-Proxy-Software empfehlen. Schau mal nach "TLS terminator" oder "TLS loadbalancer". Vielleicht kann Apache sowas auch selber, kann da jemand anderes helfen? Schöne Grüße Stefan