Ubuntu 12.04クラウドサーバーのデフォルトポート5432でpostgres 9.1サーバーを実行しています。
リモートクエリを実行できるようにポートを開きたいのですが、プロトコルを指定する必要があるIPテーブルでポートを開く必要があります。このドキュメントでは、TCP / UDPなどについては触れていません。
IPテーブルでどのプロトコルを許可する必要がありますか?
Ubuntu 12.04クラウドサーバーのデフォルトポート5432でpostgres 9.1サーバーを実行しています。
リモートクエリを実行できるようにポートを開きたいのですが、プロトコルを指定する必要があるIPテーブルでポートを開く必要があります。このドキュメントでは、TCP / UDPなどについては触れていません。
IPテーブルでどのプロトコルを許可する必要がありますか?
回答:
プロトコルは単純な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)を。