
Ubuntu 12.04 クラウド サーバー上のデフォルト ポート 5432 で実行されている postgres 9.1 サーバーがあります。
リモート クエリを実行できるようにポートを開きたいのですが、IP テーブルでポートを開く必要があり、そのためにはプロトコルを指定する必要があります。このドキュメントTCP/UDPなどについては言及されていません。
IP テーブルで許可する必要があるプロトコルは何ですか?
答え1
プロトコルはプレーン TCP/IP です。
posgresqlのドキュメントより「フロントエンド」と「バックエンド」プロトコル:
PostgreSQLは、フロントエンドとバックエンド(クライアントとサーバー)間の通信にメッセージベースのプロトコルを使用します。このプロトコルは、プロトコルまた、Unix ドメイン ソケット経由でも使用できます。ポート番号 5432このプロトコルをサポートするサーバーの慣例的な TCP ポート番号として IANA に登録されていますが、実際には任意の非特権ポート番号を使用できます。
だからiptablestcp
Unix ドメイン ソケットはネットワーク経由での使用を想定していないため、このプロトコルを使用します。
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 を変更しますか?