1.限制IP访问,禁止未授权IP访问ElasticSearch端口(默认9200)。
2.通过ES插件形式来增加访问验证,需要注意增加验证后切勿使用弱口令:
①shield插件,收费,暂不考虑。
②针对1.7.0版本之前的ElasticSearch,可采用elasticsearch-http-basic插件。
下载地址:
Releases · Asquera/elasticsearch-http-basic · GitHub
elasticsearch-http-basic和其他ES插件一样,安装在plugins文件夹下以后,在config/elasticsearch.yml中统一配置:
http.basic.enabled true #开关,开启会接管全部HTTP连接
http.basic.user “admin” #账号
http.basic.password “admin_pw” #密码
http.basic.ipwhitelist [“localhost”, “127.0.0.1”] #白名单内的IP访问不需要通过账号和密码,支持IP和主机名,不支持IP区间或正则。
③针对elasticsearch2.x以后的版本可采用search-guard插件。
同样在config/elasticsearch.yml中统一配置,在末尾追加以下内容:
searchguard.ssl.transport.pemcert_filepath: certificates/esnode.pem
searchguard.ssl.transport.pemkey_filepath: certificates/esnode-key.pem
searchguard.ssl.transport.pemtrustedcas_filepath: certificates/root-ca.pem
searchguard.ssl.transport.enforce_hostname_verification: false
searchguard.ssl.http.enabled: true
searchguard.ssl.http.pemcert_filepath: certificates/esnode.pem
searchguard.ssl.http.pemkey_filepath: certificates/esnode-key.pem
searchguard.ssl.http.pemtrustedcas_filepath: certificates/root-ca.pem
searchguard.allow_unsafe_democertificates: true
searchguard.allow_default_init_sgindex: true
searchguard.authcz.admin_dn:
- CN=kirk,OU=client,O=client,L=test,C=de
searchguard.enable_snapshot_restore_privilege: true
searchguard.check_snapshot_restore_write_privileges: true
searchguard.restapi.roles_enabled: ["sg_all_access"]
配置完成之后,默认访问口令为”username:admin,pwd:admin”,修改默认admin密码操作可参考https://blog.csdn.net/lu_wei_wei/article/details/100727090
3.架设nginx反向代理服务器,并设置http basic认证来实现elasticsearch的登录认证。(具体可参考原文地址:
Elasticsearch教程,Elasticsearch安全篇,通过Nginx http basic 限制访问 —技术博客
)
漏洞修复:1.限制IP访问,禁止未授权IP访问ElasticSearch端口(默认9200)。2.通过ES插件形式来增加访问验证,需要注意增加验证后切勿使用弱口令:①shield插件,收费,暂不考虑。②针对1.7.0版本之前的ElasticSearch,可采用elasticsearch-http-basic插件。下载地址:Releases · Asquera/elasticsearch-http-basic · GitHubelasticsearch-http-basic和其他ES插
Elasticsearch
服务普遍存在一个
未
授权
访问
的问题,攻击者通常可以请求一个开放9200或9300的服务器进行恶意攻击。
0x00
Elasticsearch
安装
前提,保证安装了JDK 1.7+
下载地址:https://artifacts.elastic.co/downloads/
elasticsearch
/
elasticsearch
-5.5.0.zip (用迅雷打开下载,速度极慢)
1、解压
elasticsearch
安装包
2、进入bin 目录,双击执行
elasticsearch
.bat
先前安装的elk是6.2.4版本的,只做了最基本的配置,前段时间公司检测出安装的
elasticsearch
有
未
经
授权
访问
的
漏洞
,并限期
修复
。
查了一些资料,发现在7.2.0版本的elk中默认安装了xpack,免费的,基本可以满足需求。
2.下载安装包
elk官网:https://www.elastic.co/cn/products...
第一步 下载文件,保证环境中有jdk1.7+
https://artifacts.elastic.co/downloads/
elasticsearch
/
elasticsearch
-5.5.0.zip
第二步 解压
elasticsearch
安装包
Elasticsearch
本身没有认证,有技术支持说用户不想开启认证,认证比较麻烦或者还要花钱,但是又想有一定的保护,所以就问能不能限制IP登录,来保护自己的
Elasticsearch
。
network.host
network.bind_host: [“localhostIP1”,“localhostIP2”]
network.publish_host: 0.0.0.0
想使用该参数去控制,结果失望了,网上一堆说可以控制的不是说的不对就是忽悠人的。
下面对着三个参数做一个简单的介绍
netwo
一、目前主要通过插件的形式来控制:
常用的插件主要包括:
elasticsearch
-http-basic,search-guard,shield
由于shield是收费的暂时还
未
研究(研究后统一补充)
search-guard主要用于
elasticsearch
2.x以后的版本(研究后统一补充)
elasticsearch
-http-basic主要用于
elasticsearch
1.x的版本
基于目前我们es集群大部分都是1.5.2版本的,所以主要使用http-basic来控制来自http请求的
访问
。
好的,我可以回答这个问题。您可以按照以下步骤编写一个带密码
验证
的 Flink 的
Elasticsearch
Sink:
1. 首先,您需要在 Maven 中添加
Elasticsearch
的依赖项,以便在代码中使用
Elasticsearch
的 API。
2. 接下来,您需要创建一个
Elasticsearch
的连接,包括
Elasticsearch
的主机名、端口号和用户名/密码等信息。
3. 然后,您可以使用 Flink 的
Elasticsearch
Sink API,将数据写入
Elasticsearch
中。在创建
Elasticsearch
Sink 时,您需要指定
Elasticsearch
的索引名称、类型和 ID 等信息。
4. 最后,您可以在
Elasticsearch
Sink 中添加密码
验证
,以确保只有
授权
用户才能
访问
Elasticsearch
。
需要注意的是,具体实现方式可能因
Elasticsearch
版本和 Flink 版本而异,您需要根据实际情况进行调整。