elasticsearch,Nginx,Proxy,elasticsearch" /> elasticsearch,Nginx,Proxy,elasticsearch" />

使用Nginx作为代理,防止通过JavaScript客户端在ElasticSearch上执行创建/更新/删除操作

使用Nginx作为代理,防止通过JavaScript客户端在ElasticSearch上执行创建/更新/删除操作,nginx,proxy,elasticsearch,Nginx,Proxy,elasticsearch,我有一个本地ElasticSearch服务器,由Nginx公开,它可以阻止POST、PUT和DELETE请求。我的Nginx配置足以防止信息获取以外的操作吗?你有改进的建议吗 upstream elasticsearch { server localhost:9200; } server { listen 7777; location / { return 403; limit_except PUT POST D

我有一个本地ElasticSearch服务器,由Nginx公开,它可以阻止POST、PUT和DELETE请求。我的Nginx配置足以防止信息获取以外的操作吗?你有改进的建议吗

  upstream elasticsearch {
      server localhost:9200;
  }

  server {
      listen 7777;

      location / {
        return 403;
        limit_except PUT POST DELETE {
          proxy_pass http://elasticsearch;
        }
        proxy_redirect off;
      }

  }
多谢各位

[更新]

在deagh的建议下我的配置:

  upstream elasticsearch {
      server localhost:9200;
  }

  server {
      listen 7777;

      location / {
        return 403;
        limit_except PUT POST DELETE {
          proxy_pass http://elasticsearch;
        }
        proxy_redirect off;
      }

      location ~* ^(/_cluster|/_nodes|/_shutdown) {
        return 403;
        break;
      }

  }

您还应注意与不同elasticsearh位置的连接,如

  • _簇
  • _节点
  • _关闭

您可以在文档中找到有关nginx和elasticsearch工作(安全)设置的更多信息=>

谢谢,我不知道您必须保护Elastic X\u X

我通过Kibana找到了一些你通常不需要的_命令,它们可以被列入黑名单,也就是说,如果你确实需要密码,你可以输入密码

# 2020-01-07
# Whitelist: _count, _mget, _search
# Greylist (blacklisted anyway): _analyze, _msearch, _validate
# Blacklist:
location ~* /_(aliases|all|analyze|bulk|cache|cluster|data_frame|delete_by_query|field_caps|flush|forcemerge|ilm|ingest|license|mapping|mappings|migration|ml|monitoring|msearch|mtermvectors|nodes|refresh|scripts|security|shutdown|snapshot|sql|tasks|template|upgrade|update_by_query|validate|watcher)
{
    auth_basic "Elastic1";
    auth_basic_user_file /etc/nginx/.htpasswd;  # create with Apache tool htpasswd

    include proxy_params;
    proxy_cookie_domain <HOSTNAME> $server_name;
    proxy_pass http://10.0.0.1:9201;
}

location /
{
    # Blacklist: CONNECT, DELETE, PATCH, PUT, TRACE
    # Whitelist:
    limit_except GET HEAD OPTIONS POST
    {
        auth_basic "Elastic1";
        auth_basic_user_file /etc/nginx/.htpasswd;  # create with Apache tool htpasswd
    }

    include proxy_params;
    proxy_cookie_domain <HOSTNAME> $server_name;
    proxy_pass http://10.0.0.1:9201;
}
#2020-01-07
#白名单:_count,_mget,_search
#Greylist(反正被列入黑名单):\u分析、\u搜索、\u验证
#黑名单:
4月14日,数据帧,数据帧,数据帧,数据帧,删除,删除,查询,查询,现场调查,现场调查,现场盖帽,冲水,冲水,军军售,别名,别名,所有所有,所有,所有,所有,所有,所有,所有,所有,所有,所有,所有,分析,分析,分析,散装,散装,散装,缓存,缓存,缓存,缓存,缓存,集群,数据,数据帧,数据框架,数据框架,数据帧,数据帧帧,数据帧,框架,数据框架,数据框架,框架,删除,删除,删除,删除,删除,删除,删除,查询,查询,查询,查询,现场查询,场查询,场查询,场方查询,现场,场,场,场,场,场,场,场,场,场,场,场,场,场,盖盖盖,场,场,场,场,场,场,场,场,场,盖,场,场,场,场,场,盖,场,场,场,场,场,场,场,场;验证(观察者)
{
auth_basic“Elastic1”;
auth_basic_user_file/etc/nginx/.htpasswd;#使用Apache工具htpasswd创建
包括代理参数;
代理\u cookie\u域$server\u名称;
代理通行证http://10.0.0.1:9201;
}
位置/
{
#黑名单:连接、删除、修补、放置、跟踪
#白名单:
限制(不包括获取标题选项帖子)
{
auth_basic“Elastic1”;
auth_basic_user_file/etc/nginx/.htpasswd;#使用Apache工具htpasswd创建
}
包括代理参数;
代理\u cookie\u域$server\u名称;
代理通行证http://10.0.0.1:9201;
}

谢谢!如果您想检查,我已经更新了配置。