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


15

Ubuntu 12.04クラウドサーバーのデフォルトポート5432でpostgres 9.1サーバーを実行しています。

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

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


4
SSLを有効にすることを忘れないでください... postgresql.org/docs/9.1/static/ssl-tcp.html
Lekensteyn

回答:


15

プロトコルは単純なTCP / IPです。

"frontends"および " backends "プロトコルに関するposgresqlドキュメントから:

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

したがって、Unixドメインソケットはネットワーク経由で使用するためのものではないため、iptablesについてはtcpプロトコルを使用してください。

iptablesの例:

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

Lekensteynが指摘したように、そのネットワーク接続を介してSSLをアクティブにすることを検討することは特に賢明です(TCP-over-SSLの使用に関するpostgresqlのドキュメントを参照してください)。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を世界に公開していません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.