Re: Postgres Docker Apache

2018-06-26 Diskussionsfäden mail

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-26 Diskussionsfäden 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




-- 
William Epler



Re: Postgres Docker Apache

2018-06-25 Diskussionsfäden 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.

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

2018-06-25 Diskussionsfäden Stefan Majewsky



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