gpt4 book ai didi

elasticsearch - 如何保护 Digital Ocean Elasticsearch 集群?

转载 作者:行者123 更新时间:2023-11-29 02:50:06 25 4
gpt4 key购买 nike

我需要向世界公开我的 ES 集群,并通过 Nginx 使用代理*:9201 -> localhost:9200(工作)保护它。

但是,为了形成集群,我正在尝试使用 DigitalOcean 上的专用网络让节点相互通信。

我怎样才能在不安全的私有(private)网络接口(interface)上公开节点到节点的传输,同时又不向外界公开端口 9200?

我正在尝试类似的东西

network.publish_host: 10.128.97.184
http.port: 9200
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: 10.128.97.184,10.128.97.185

elasticsearch.yml 中但它不起作用,可能是因为端口 9300 也可能受 nginx 保护?

我的 nginx 文件看起来像

root@els-node-1:~# cat /etc/nginx/sites-enabled/elasticsearch 
server {
listen *:9201;
access_log /var/log/nginx/elasticsearch.access.log;

location / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/htpasswd;
proxy_pass http://localhost:9200;
proxy_read_timeout 90;
}

}

而且我能够形成集群,但我看不到如何保护外部 9200(将其禁用除 127.0.0.1 之外的所有端口)并保持内部接口(interface)对 10.x.x.x 这样的地址开放

感谢您的帮助!

最佳答案

即使您使用私有(private)网络,您的 ES 集群也不安全,因为同一 Digital Ocean 私有(private)网络中的任何人仍然可以通过开放端口 9200 和 9300(以及可能的其他服务)访问您的节点。你最好的选择是通过 iptables 保护你的盒子,并且只将你知道是你自己的服务器的 IP 列入白名单。删除所有传入和转发的包,并仅为集群中的其他节点添加显式规则。此外,使用 network.bind_host 而不是 network.publish_host 并另外设置 ES 以仅使用 eth1 接口(interface),结帐 the ES network docs了解详情。

关于elasticsearch - 如何保护 Digital Ocean Elasticsearch 集群?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26006373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com