2012-03-19 52 views
43

pg_hba.confのいくつかのipsへの接続制限を持つリモートpostgresqlサーバにうまく接続できますが、listen_addressesを " * "postgresql.confファイルにありますか?postgresql postgresql.confを構成する方法複数のIPアドレスのlisten_addresses

そのファイルは、そのパラメータがカンマで区切られたIPアドレスのリストを取ることができることを示していますが、そうするとリモートで接続できなくなります。サーバーのIPS

のpostgresql-8.4.9 RHEL

+0

任意のIPv4アドレスからの接続を許可するデフォルトの規約は「0.0.0.0」です。これがあなたに役立つことを願っています – MrGomez

+2

私は接続がローカルまたは2つのリモートipsからのみ行われるようにしたいと思います。これをpg_hba.confでうまく設定しましたが、listen_addressesを – chrismarx

+0

に設定する必要があります。 '192.168.0.1,192.168.0.2,127.0.0.1'のようなCSVを試しましたか?最後のケースでは、 '127.0.0.1'はシステムのRFC準拠のループバックアドレスです。詳細については、このドキュメントを参照してください。http://www.rfc-editor.org/rfc/rfc3330.txt – MrGomez

答えて

59

listen_addressesコントロールは、サーバーから認証するための接続を可能にするIPS、その上にお答えし、しません。 を使用してより細かいレベルでアクセスを制御しながら、サーバーが特定のサーバーからのログインを受け入れるIPのために、サーバーはpostgresqlサーバーホスト上のインターフェイスに割り当てられた任意のIPで着信接続を受け入れるように、listen_addresses '*'データベースとユーザー。

+0

私が知りたいと思っていたことはカンマで区切られたリストを作成することです。ありがとう! – chrismarx

+0

'pg_hba.conf'が* login *を制御することをもっと明示するように編集しました。サーバーは、引き続きリスニングインターフェイス上のTCP/IP接続を受け入れ、接続しているクライアントとの会話を行います。クライアントが許可されたIP範囲から来ておらず、接続を終了したとすぐに結論づけます。これは、pre-auth exploitsが 'pg_hba'除外とともに動作することができますが、Pgが悪用されたインタフェースを単に聞いていない場合は意味しません。 'listen_addresses'ではなく、ファイアウォールルールがその答えです。 –

+0

この解決策は私のためにpostgres 9.1で働いていました。おかげで@CraigRinger –

2

dbenhurが指摘するように、listen_addressesを '*'に設定するのは正常です。また、iptablesなどのツールを使用して、特定のリモートIPとは別にポートへのアクセスを拒否することもできます。セキュリティの冗長性は必ずしも悪いことではありません(ただし、IPアドレスのセキュリティに頼ることはあまり良くありません)。

+0

ええ、場所にはすでにipベースのファイアウォールがあります、 – chrismarx

関連する問題