Какие сетевые протоколы использует сервер базы данных Postgres?

Какие сетевые протоколы использует сервер базы данных Postgres?

У меня есть сервер Postgres 9.1, работающий на порту по умолчанию 5432 на облачном сервере Ubuntu 12.04.

Я хочу открыть порт, чтобы иметь возможность выполнять удаленные запросы, но мне нужно открыть порт в таблицах IP, для чего необходимо указать протокол.Этот документне упоминает TCP/UDP и т. д.

Какой протокол следует разрешить в IP-таблицах?

решение1

Протокол — простой TCP/IP.

Из документации posgresql опротокол «фронтендов» и «бэкендов»:

PostgreSQL использует протокол на основе сообщений для связи между фронтендами и бэкендами (клиентами и серверами). Протокол поддерживается черезTCP/IPа также через сокеты домена Unix.Номер порта 5432зарегистрирован в IANA как обычный номер порта TCP для серверов, поддерживающих этот протокол, но на практике может использоваться любой непривилегированный номер порта.

Итак, относительноiptablesиспользуйте tcpпротокол, так как сокеты домена Unix не предназначены для использования по сети.

iptablesпример:

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

Примечание:

Как отметилЛекенштейн, особенно разумно рассмотреть возможность активации SSL через это сетевое соединение (см. документацию postgresql относительноиспользование TCP-over-SSL).iptablesВ этом случае правило не изменится: тот же порт (5432), тот же протокол (tcp).

решение2

По умолчанию PostgreSQLt прослушивает TCP-порт 5432. Используйте следующие правила iptables, чтобы разрешить входящие клиентские запросы (открыть порт 5432).

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

Где xxx.xxx.xxx.xxx — это IP-адрес сервера, с которого вы подключаетесь, поэтому вы не открываете postgres для всего мира.

решение3

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

Изменит ли эта команда pg_hba?

Связанный контент