使用Nginx作为代理,防止通过JavaScript客户端在ElasticSearch上执行创建/更新/删除操作
我有一个本地ElasticSearch服务器,由Nginx公开,它可以阻止POST、PUT和DELETE请求。我的Nginx配置足以防止信息获取以外的操作吗?你有改进的建议吗使用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
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;
}
谢谢!如果您想检查,我已经更新了配置。