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

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

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

リモートクエリを実行できるようにポートを開きたいが、プロトコルを指定する必要があるIPテーブルでポートを開く必要があります。この文書TCP/UDPなどへの言及はありません。

IPテーブルでどのプロトコルを許可する必要がありますか?

答え1

プロトコルは通常のTCP / IPです。

posgresqlドキュメントから「フロントエンド」および「バックエンド」プロトコル:

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

だから薬iptablestcpUnixドメインソケットはネットワーキングには適していないため、このプロトコルを使用してください。

iptables例:

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

ノート:

〜のようにラーケンシュタインこのネットワーク接続を介してSSLを有効にすることを検討することは特に賢明です(postgresqlのドキュメントを参照)。SSLによるTCPの使用)。これ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を変更しますか?

関連情報