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

14

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

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

Какой протокол я должен разрешить в таблицах IP?

bernie2436
источник
4
Не забудьте включить SSL ... postgresql.org/docs/9.1/static/ssl-tcp.html
Лекенштейн

Ответы:

14

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

Из документации posgresql о протоколах "frontends" и "backends" :

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).

Ouki
источник
1

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

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

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

pravin09
источник