Postgres データベース サーバーはどのようなネットワーク プロトコルを使用しますか?

Postgres データベース サーバーはどのようなネットワーク プロトコルを使用しますか?

Ubuntu 12.04 クラウド サーバー上のデフォルト ポート 5432 で実行されている postgres 9.1 サーバーがあります。

リモート クエリを実行できるようにポートを開きたいのですが、IP テーブルでポートを開く必要があり、そのためにはプロトコルを指定する必要があります。このドキュメントTCP/UDPなどについては言及されていません。

IP テーブルで許可する必要があるプロトコルは何ですか?

答え1

プロトコルはプレーン TCP/IP です。

posgresqlのドキュメントより「フロントエンド」と「バックエンド」プロトコル:

PostgreSQLは、フロントエンドとバックエンド(クライアントとサーバー)間の通信にメッセージベースのプロトコルを使用します。このプロトコルは、プロトコルまた、Unix ドメイン ソケット経由でも使用できます。ポート番号 5432このプロトコルをサポートするサーバーの慣例的な TCP ポート番号として IANA に登録されていますが、実際には任意の非特権ポート番号を使用できます。

だからiptablestcpUnix ドメイン ソケットはネットワーク経由での使用を想定していないため、このプロトコルを使用します。

iptables例:

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

注記:

指摘したようにレケンステイン、そのネットワーク接続でSSLを有効にすることを特に検討することが賢明です(詳細については、PostgreSQLのドキュメントを参照してください)。TCP-over-SSL を使用する)。iptablesその場合、ルールは変更されません: 同じポート (5432)、同じプロトコル (tcp)。

答え2

デフォルトでは、PostgreSQL は 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 を変更しますか?

関連情報