query - ElasticSearch: Permitir solo solicitudes locales
must match elasticsearch (3)
¿Cómo se pueden permitir solo las solicitudes locales de elasticsearch? Entonces comando como:
curl -XGET ''http://localhost:9200/twitter/_settings''
solo se puede ejecutar en localhost y solicitar como:
curl -XGET ''http://mydomain.com:9200/twitter/_settings''
sería rechazado?
Porque, por lo que veo, elasticsearch lo permite por defecto.
EDITAR:
Según http://www.elasticsearch.org/guide/reference/modules/network.html , puede administrar el parámetro bind_host
para permitir hosts. Y de forma predeterminada, se establece en anyLocalAddress
Para elasticsearch anterior a v2.0.0, si desea que tanto el transporte http como el transporte de búsqueda elástica interno escuchen solo en localhost, simplemente agregue la siguiente línea al archivo elasticsearch.yml
.
network.host: "127.0.0.1"
Si solo desea que el transporte http escuche en localhost, agregue la siguiente línea.
http.host: "127.0.0.1"
A partir de v2.0 elasticsearch solo está escuchando en localhost por defecto. Por lo tanto, no se necesita configuración adicional.
Si su objetivo final es denegar cualquier solicitud desde fuera de la máquina host, la manera más confiable sería modificar las iptables del host para que niegue cualquier solicitud entrante a los puertos de servicio utilizados por ElasticSearch (9200-9300).
Si el objetivo final es asegurarse de que todos se refieran al servicio utilizando un DNS exclusivo, será mejor que lo haga con un servidor HTTP que pueda realizar solicitudes de proxy como HTTPd o nginx.
Yo uso este parámetro:
http.host: "127.0.0.1"
Este parámetro no acepta solicitudes HTTP para solicitud externa.