41

どうすればelasticsearchのローカルリクエストのみを許可できますか?したがって、次のようなコマンドを実行します。

curl -XGET 'http://localhost:9200/twitter/_settings'

ローカルホストでのみ実行でき、次のようにリクエストできます。

curl -XGET 'http://mydomain.com:9200/twitter/_settings'

拒否されますか?

なぜなら、私が見たところ、elasticsearchはデフォルトでそれを許可しているからです。

編集:

http://www.elasticsearch.org/guide/reference/modules/network.htmlによるとbind_host、ホストを許可するためのパラメーターを 管理できます。デフォルトでは、anyLocalAddress

4

3 に答える 3

122

v2.0.0 より前の Elasticsearch では、http トランスポートと内部の Elasticsearch トランスポートの両方が localhost でのみリッスンするようにするには、次の行をelasticsearch.ymlファイルに追加するだけです。

network.host: "127.0.0.1"

http トランスポートのみを localhost でリッスンする場合は、代わりに次の行を追加します。

http.host: "127.0.0.1"

v2.0 以降、elasticsearch はデフォルトで localhost でのみリッスンします。したがって、追加の構成は必要ありません。

于 2013-03-19T20:18:48.630 に答える
6

最終的な目標がホスト マシンの外部からのリクエストを拒否することである場合、最も信頼できる方法は、ホストのiptablesを変更して、ElasticSearch が使用するサービス ポート (9200-9300) への着信リクエストを拒否することです。

誰もが専用の DNS を使用してサービスを参照できるようにすることが最終目標である場合は、HTTPd や nginx などのリクエストをプロキシできる HTTP サーバーを使用してこれを達成することをお勧めします。

于 2013-03-19T15:29:48.383 に答える