Які мережеві протоколи використовує сервер баз даних Postgres?


16

У мене є сервер postgres 9.1, який працює на порту за замовчуванням 5432 на хмарному сервері Ubuntu 12.04.

Я хочу відкрити порт, щоб я міг робити віддалені запити - але мені потрібно відкрити порт на IP-таблицях, для чого потрібно вказати протокол. Цей документ не згадує TCP / UDP тощо.

Який протокол потрібно дозволити в IP-таблицях?


4
Не забудьте включити SSL ... postgresql.org/docs/9.1/static/ssl-tcp.html
Lekensteyn

Відповіді:


16

Протокол є простим 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).


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 до світу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.