Quels protocoles réseau un serveur de base de données Postgres utilise-t-il?

14

J'ai un serveur postgres 9.1 fonctionnant sur le port par défaut 5432 sur un serveur cloud Ubuntu 12.04.

Je veux ouvrir le port, donc je peux faire des requêtes à distance - mais je dois ouvrir le port sur les tables IP, ce qui nécessite que je spécifie un protocole. Ce document ne mentionne pas TCP / UDP, etc.

Quel protocole dois-je autoriser dans les tables IP?

bernie2436
la source
4
N'oubliez pas d'activer SSL ... postgresql.org/docs/9.1/static/ssl-tcp.html
Lekensteyn

Réponses:

14

Le protocole est tout simplement TCP / IP.

De la documentation posgresql sur les protocoles "frontends" et "backends" :

PostgreSQL utilise un protocole basé sur les messages pour la communication entre les frontends et les backends (clients et serveurs). Le protocole est pris en charge sur TCP / IP et également sur les sockets de domaine Unix. Le numéro de port 5432 a été enregistré auprès de l'IANA comme numéro de port TCP habituel pour les serveurs prenant en charge ce protocole, mais en pratique, tout numéro de port non privilégié peut être utilisé.

Donc, en ce qui concerne iptables, utilisez le tcpprotocole, car les sockets de domaine Unix ne sont pas destinées à être utilisées sur le réseau.

exemple iptables :

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

Remarque :

Comme l'a souligné Lekensteyn , il est particulièrement judicieux d'envisager d'activer SSL sur cette connexion réseau (voir la documentation postgresql concernant l' utilisation de TCP-over-SSL ). La règle iptables ne changerait pas dans ce cas: même port (5432), même protocole (tcp).

Ouki
la source
1

Par défaut, PostgreSQLt écoute sur le port TCP 5432. Utilisez les règles iptables suivantes pour autoriser les requêtes client entrantes (ouvrir le port 5432).

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

Où xxx.xxx.xxx.xxx est l'IP du serveur à partir duquel vous vous connectez afin de ne pas ouvrir les postgres au monde.

pravin09
la source