通过浏览器保护Elasticsearch访问

时间:2015-03-09 23:39:34

标签: security elasticsearch

我正在使用PHP elasticsearch客户端。

如何通过阻止通过浏览器访问来保护生产服务器上的数据?

http://api。*************。co.uk:9200

1 个答案:

答案 0 :(得分:0)

编辑:聊天后,您的问题原因是您不希望将ES暴露给外部世界,只发布到您的应用中。解决方案是通过设置:

将ES绑定到本地接口
network.host: 127.0.0.1

上一个回答:

通常,您将运行执行基本身份验证的nginx(或其他Web服务器),然后将请求代理到Elasticsearch。

这是一个精简配置,可以帮助您。考虑为您的服务器使用SSL / TLS,因为BasicAuth密码以明文形式发送。

server {
  listen 80 default_server;
  server_name your.server.address.com;
  client_max_body_size 50M;

  location / {
    # Pass requests to ElasticSearch
    proxy_pass http://localhost:9200;
    proxy_redirect off;

    proxy_set_header  X-Real-IP  $remote_addr;
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header  Host $http_host;

    # For CORS Ajax
    proxy_pass_header Access-Control-Allow-Origin;
    proxy_pass_header Access-Control-Allow-Methods;
    proxy_hide_header Access-Control-Allow-Headers;
    add_header Access-Control-Allow-Headers 'X-Requested-With, Content-Type';
    add_header Access-Control-Allow-Credentials true;

    # Authorize access
    auth_basic           "ElasticSearch";
    auth_basic_user_file /etc/elasticsearch/passwords;
  }
}
相关问题