Elasticsearch限制IP访问

6 篇文章 0 订阅
6 篇文章 0 订阅

背景

Elasticsearch本身没有认证,有技术支持说用户不想开启认证,认证比较麻烦或者还要花钱,但是又想有一定的保护,所以就问能不能限制IP登录,来保护自己的Elasticsearch。

调研

network.host
network.bind_host: [“localhostIP1”,“localhostIP2”]
network.publish_host: 0.0.0.0
想使用该参数去控制,结果失望了,网上一堆说可以控制的不是说的不对就是忽悠人的。

下面对着三个参数做一个简单的介绍

network.bind_host: 192.168.0.1
# 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0,绑定这台机器的任何一个ip。
 
network.publish_host: 192.168.0.1
# 设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址。
 
network.host: 192.168.0.1
# 这个参数是用来同时设置bind_host和publish_host上面两个参数。

network.host
同时设置 network.bind_host network.publish_host参数的,如
network.host: 192.168.0.1
等同于
network.bind_host: 192.168.0.1
network.publish_host: 192.168.0.1

network.publish_host这个地址是发布地址,是各个ES结点数据交互的结点,这个结点在ES集群的时候需要好好设置。

network.bind_host
这个是服务的绑定IP,里面的IP必须是当前设备上的IP否则不能正常启动ES,该参数用在多网卡的设备,比如设备有两个网卡一个内网ip,一个外网ip,需要内外网IP都能访问到服务就需要在这里配置多个IP

做了相关的测试如下

network.bind_host: ["172.22.57.in1","172.22.57.out1"]
network.publish_host: 0.0.0.0
#network.host: 0.0.0.0

开启es远程访问 network.host: 0.0.0.0 即可
开启内外网访问 network.bind_host: [“172.22.57.in1”,“172.22.57.out1”] ,可以在内网用172.22.57.in1,外网用172.22.57.out1。

结论

依靠network.host,network.bind_host,network.publish_host这三个参数不能进行限制ES的访问IP

解决办法

方法一 xpack(收费)

可以通过xpack控制黑白名单,但是开启xpack 限制ip访问的需求就不强了,没必要限制IP

主要参数

#http
xpack.security.http.filter.allow: "192.168.0.4"
xpack.security.http.filter.deny: "192.168.0.0/24"
 
#transport 
xpack.security.transport.filter.allow: "192.168.0.1"
xpack.security.transport.filter.deny: "192.168.0.0/24"

参考文档详情

方法二 iptable

如果熟悉iptable可以自己随意控制。

First, you need to set which IP’s that can reach the computer

iptables -I INPUT 1 -p tcp --dport 9200:9400 -s IP_ADRRESS_1,IP_ADRRESS_2,IP_ADRRESS_3 -j ACCEPT

Then, you need to restrict any ip except specified ones can reach your ports.
iptables -I INPUT 4 -p tcp --dport 9200:9400 -j REJECT

Finally save your settings to a file.

sudo sh -c "iptables-save > /etc/iptables.rules"

参考文档详情
https://stackoverflow.com/questions/21696667/elasticsearch-restrict-access-using-ip-tables

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值