Z jakich protokołów sieciowych korzysta serwer bazy danych Postgres?

16

Mam serwer Postgres 9.1 działający na domyślnym porcie 5432 na serwerze chmurowym Ubuntu 12.04.

Chcę otworzyć port, aby móc wysyłać zapytania zdalne - ale muszę otworzyć port w tabelach IP, co wymaga podania protokołu. Ten dokument nie wspomina o TCP / UDP itp.

Jaki protokół powinienem zezwalać w tabelach IP?

bernie2436
źródło
4
Nie zapomnij włączyć SSL ... postgresql.org/docs/9.1/static/ssl-tcp.html
Lekensteyn

Odpowiedzi:

16

Protokół to zwykły protokół TCP / IP.

Z dokumentacji posgresql na temat protokołu „frontend” i „backend” :

PostgreSQL używa protokołu opartego na komunikatach do komunikacji między frontendami i backendami (klientami i serwerami). Protokół jest obsługiwany przez TCP / IP, a także przez gniazda w domenie Unix. Numer portu 5432 został zarejestrowany w IANA jako zwyczajowy numer portu TCP dla serwerów obsługujących ten protokół, ale w praktyce można użyć dowolnego nieuprzywilejowanego numeru portu.

Jeśli chodzi o iptables, użyj tcpprotokołu, ponieważ gniazdo w domenie Unix nie jest przeznaczone do użycia przez sieć.

Przykład iptables :

iptables <other_options> -p tcp -dport 5432 -j ACCEPT

Uwaga :

Jak zauważył Lekensteyn , szczególnie rozsądnie jest rozważyć aktywację SSL przez to połączenie sieciowe (patrz dokumentacja postgresql dotycząca używania TCP-over-SSL ). W tym przypadku reguła iptables nie zmieniłaby się: ten sam port (5432), ten sam protokół (tcp).

Ouki
źródło
1

Domyślnie PostgreSQLt nasłuchuje na porcie TCP 5432. Użyj następujących reguł iptables zezwala na przychodzące żądanie klienta (otwórz port 5432).

-A INPUT -p tcp --dport 5432 -s xxx.xxx.xxx.xxx -j ACCEPT

Gdzie xxx.xxx.xxx.xxx to adres IP serwera, z którym się łączysz, więc nie otwierasz postów na świat.

pravin09
źródło