Подтвердить что ты не робот

ElasticSearch: разрешать только локальные запросы

Как разрешить только локальные запросы для поиска elastics? Итак, команда вроде:

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

может работать только на localhost и запрашивать:

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

будет отклонено?

Потому что, из того, что я вижу, elasticsearch позволяет это по умолчанию.

EDIT:

Согласно http://www.elasticsearch.org/guide/reference/modules/network.html вы можете управлять параметром bind_host, чтобы разрешить хосты. И по умолчанию он установлен на anyLocalAddress

4b9b3361

Ответ 1

Для elasticsearch до v2.0.0, если вы хотите, чтобы и трафик HTTP, и внутренний транспорт elasticsearch для прослушивания только на localhost, просто добавьте следующую строку в файл elasticsearch.yml.

network.host: "127.0.0.1"

Если вы хотите, чтобы только HTTP-транспорт для прослушивания на локальном хосте, добавьте следующую строку.

http.host: "127.0.0.1"

Начиная с версии 2.0 elasticsearch по умолчанию прослушивает только локальный хост. Таким образом, дополнительная настройка не требуется.

Ответ 2

Если ваша конечная цель - отклонить любые запросы из-за пределов хост-машины, самым надежным способом было бы изменить хост iptables так что он отклоняет любые входящие запросы на порты обслуживания, используемые ElasticSearch (9200-9300).

Если конечная цель состоит в том, чтобы убедиться, что все ссылаются на услугу с использованием эксклюзивного DNS, вам лучше добиться этого с помощью HTTP-сервера, который может запрашивать прокси-запросы, такие как HTTPd или nginx.

Ответ 3

Я использую этот параметр:

http.host: "127.0.0.1"

Этот параметр не принимает HTTP-запросы для внешнего запроса.