
Ich habe einen Postgres 9.1-Server, der auf dem Standardport 5432 auf einem Ubuntu 12.04-Cloud-Server läuft.
Ich möchte den Port öffnen, damit ich Remoteabfragen durchführen kann. Dazu muss ich den Port jedoch für IP-Tabellen öffnen und dafür muss ich ein Protokoll angeben.Dieses Dokumenterwähnt kein TCP/UDP usw.
Welches Protokoll sollte ich in IP-Tabellen zulassen?
Antwort1
Das Protokoll ist einfaches TCP/IP.
Aus der Posgresql-Dokumentation über„Frontends“- und „Backends“-Protokoll:
PostgreSQL verwendet ein nachrichtenbasiertes Protokoll für die Kommunikation zwischen Frontends und Backends (Clients und Servern). Das Protokoll wird unterstützt überTCP/IPund auch über Unix-Domain-Sockets.Portnummer 5432wurde bei IANA als übliche TCP-Portnummer für Server registriert, die dieses Protokoll unterstützen, in der Praxis kann jedoch jede nicht privilegierte Portnummer verwendet werden.
Also bezüglichiptablesVerwenden Sie das tcp
Protokoll, da Unix-Domain-Sockets nicht für die Verwendung über das Netzwerk vorgesehen sind.
iptablesBeispiel:
iptables <other_options> -p tcp -dport 5432 -j ACCEPT
Notiz:
Wie betont vonLekensteynist es besonders ratsam, SSL über diese Netzwerkverbindung zu aktivieren (siehe PostgreSQL-Dokumentation bezüglichmit TCP-over-SSL). DeriptablesIn diesem Fall würde sich die Regel nicht ändern: gleicher Port (5432), gleiches Protokoll (TCP).
Antwort2
Standardmäßig lauscht PostgreSQLt auf TCP-Port 5432. Verwenden Sie die folgenden iptables-Regeln, um eingehende Clientanforderungen zuzulassen (öffnen Sie Port 5432).
-A INPUT -p tcp --dport 5432 -s xxx.xxx.xxx.xxx -j ACCEPT
Dabei ist xxx.xxx.xxx.xxx die IP des Servers, von dem aus Sie sich verbinden, damit Sie Postgres nicht der ganzen Welt zugänglich machen.
Antwort3
-A INPUT -p tcp --dport 5432 -s xxx.xxx.xxx.xxx -j ACCEPT
Ändert dieser Befehl pg_hba?