listen_addresses

Für skriptbasierte Wartung per cron in der Nacht werden in der postgresql.conf
mittels include situationsabhängig weitere Einstellungen eingespielt.
Hier u. a. listen_addresses = ‘localhost,123.134.145.156,123.134.146.178’.

Der Cluster auf /db1/data nutzt den Standardport 5432.

Beim Start des db servers wird ausgegeben:
postgres@srv:/var/log/pgsql $ pg_ctl -D /db1/data/ stop
warte auf Herunterfahren des Servers… fertig
Server angehalten
postgres@srv:/var/log/pgsql $ pg_ctl -D /db1/data/ status
pg_ctl: kein Server läuft
postgres@srv:/var/log/pgsql $ pg_ctl -D /db1/data/ start
Server startet
postgres@srv:/var/log/pgsql $ <2009-11-23 16:17:07.625 CET 0 1>LOG: konnte IPv4-Socket nicht binden: Die angeforderte Adresse kann nicht zugewiesen werden
<2009-11-23 16:17:07.625 CET 0 2>TIPP: Läuft bereits ein anderer Postmaster auf Port 5432? Wenn nicht, warten Sie einige Sekunden und versuchen Sie erneut.
<2009-11-23 16:17:07.625 CET 0 3>WARNUNG: konnte Listen-Socket für »123.134.145.156« nicht erzeugen
<2009-11-23 16:17:07.625 CET 0 4>LOG: konnte IPv4-Socket nicht binden: Die angeforderte Adresse kann nicht zugewiesen werden
<2009-11-23 16:17:07.625 CET 0 5>TIPP: Läuft bereits ein anderer Postmaster auf Port 5432? Wenn nicht, warten Sie einige Sekunden und versuchen Sie erneut.
<2009-11-23 16:17:07.626 CET 0 6>WARNUNG: konnte Listen-Socket für »123.134.146.178« nicht erzeugen

postgres@srv:/var/log/pgsql $ psql
Dies ist psql 8.3.8, das interaktive PostgreSQL-Terminal.

Geben Sie ein: \copyright für Urheberrechtsinformationen
\h für Hilfe über SQL-Anweisungen
? für Hilfe über interne Anweisungen
\g oder Semikolon, um eine Anfrage auszuführen
\q um zu beenden

[local]:5432 postgres@~ =# show listen_addresses ;
listen_addresses

localhost,123.134.145.156,123.134.146.178
(1 Zeile)

[local]:5432 postgres@~ =#

Die pg_hba.conf ist so konfiguriert, daß diese hosts, neben vielen anderen
zugreifen dürfen.

Versucht man von den per numerischer ip Adresse angegebenen hosts mittels
pgAdminIII oder einem Anwendungsprogram auf den Cluster zuzugreifen, scheitert
dies.

Was könnte die Ursache für die Probleme mit dem db server sein?

listen_adresses in der postgresql.conf regelt, auf welchen eigenen Adressen PG lauscht, nicht aber, von wo es Verbindungen annimt.

Ansonsten ist die Idee auch, sorry, Bullshit, das via CRON und umschreiben der Config zu machen.

Andreas

Im beschriebenen Fall ist die pg_hba.conf umfassender wie die postgresql.conf während des Wartungsfensters. Kann das stören? :confused:
Bedeutet eigene Adressen, daß dies genannten Adressen Netzwerkschnittstellen der “Maschine” sein müssen? Wenn dann nur eine einzelne Adresse zugewiesen ist, wären wohl nur die Werte ‘’, ‘localhost’ und ‘*’ sinnvoll?

:sunglasses: Warum eigentlich? Was ist den gegen etwas Automatisierung zu sagen? :slight_smile:
(Überhaupt nicht versteh, :schmoll: )
:slight_smile: Ich bin dagegen Routineaufgaben immer aufs neue manuell auszuführen! :rolleyes:

Exakt.

:sunglasses: > Warum eigentlich? Was ist den gegen etwas Automatisierung zu sagen? > :slight_smile:
(Überhaupt nicht versteh, :schmoll: )
:slight_smile: > Ich bin dagegen Routineaufgaben immer aufs neue manuell auszuführen! > :rolleyes: >

Sicher. Aber IP-based-security ist schon mal bäh. Was ist mit Deiner Security während des ‘Wartungsfensters’?

Es gibt andere Lösungen. Stichwort VPN. Sowas geht schon mit wenig Aufwand als SSH-Tunnel und der Nutzung von PublicKeys zur Authentifizierung. Andere Lösungen existieren natürlich auch.

Aber IP-Adressen zu verstecken, nur zu bestimmten Zeiten zu lauschen und dann zu hoffen, der ‘Richtige’ wird es wohl sein, der sich da verbindet, ist konzeptionell daneben.


Andreas