Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >干货 | Elasticsearch7.X X-Pack基础安全实操详解

干货 | Elasticsearch7.X X-Pack基础安全实操详解

作者头像
铭毅天下
发布于 2019-11-04 15:11:09
发布于 2019-11-04 15:11:09
9K10
代码可运行
举报
文章被收录于专栏:铭毅天下铭毅天下
运行总次数:0
代码可运行

1、调查:你的Elasticsearch怎么做的安全防护?

背景:大家知道elasticsearch早期版本安全部分收费(7.1 & 6.8 版本之前),实际中各个公司6.x,5.x,2.x,1.x都有在用,且非少数。

群随机投票结果如下:

通过留言发现,大家使用2的比较多,历史包袱重,真正升级7.X的企业还不太多。

Medcl在《给你 10 个升级到 Elastic Stack 7 的理由!》分享中提到升级到最新版本“更安全”的核心理由。

之前文章中也有过探讨:你的Elasitcsearch集群在裸奔吗

的确,安全问题已经成为公司使用Elasticsearch必须考虑的问题之一。

2、说到Elasticsearch安全,你想到的是什么?

首先想到的是“不安全”、“暴露”、“攻击”、“泄露”、“隐私”等负面的关键词。

的确,如果9200或者改成其他端口的ES暴露在公网,一旦被扫到,集群及数据会受到灾难式影响。

稍微了解网络安全的朋友都知道,通过nmap等扫描工具,可以非常快速扫描出开放的外网端口。

安全无小事,本文以Elasticsearch7.2+为示例,串讲:

  • 1)啥是X-Pack?基础免费版本哪些安全功能是免费?哪些收费呢?
  • 2)单节点X-Pack安全如何配置?
  • 3)多节点X-Pack安全如何配置?

非常基础但非常重要,希望对你有帮助。

3、啥是X-Pack?

X-Pack是Elastic Stack扩展功能,提供安全性,警报,监视,报告,机器学习和许多其他功能。 ES7.0+之后,默认情况下,当安装Elasticsearch时,会安装X-Pack,无需单独再安装。

自6.8以及7.1+版本之后,基础级安全永久免费。

基础版本安全功能列表如下:

4、单节点ES X-Pack安全如何配置?

4.1 安全配置

默认情况下,拥有安全免费许可证时,Elasticsearch安全功能被禁用。 要启用安全功能,需要设置xpack.security.enabled。

在节点的elasticsearch.yml配置文件中,新增:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1xpack.security.enabled: true
4.2 为节点间通信配置传输层安全性(TLS / SSL)

使用范围:配置传输层安全性适用于具有多个节点的集群以及需要外网通信访问的单节点ES。

使用环回地址127.0.0.1的单节点ES可以不用配置。

4.2.1 加密通信

Elasticsearch节点可能存储是机密的数据,而无处不在的网络攻击对这些数据垂涎欲滴。

网络攻击包括对数据的嗅探,对数据的操纵,以及试图获得对服务器的访问权限,进而访问存储数据的文件。

保护节点的安全有助于降低来自网络的攻击的风险

4.2.2 生成节点证书

1、证书实现加密通信的原理

TLS需要X.509证书(X.509 证书是一个数字证书,它使用 X.509 公有密钥基础设施标准将公有密钥与证书中包含的身份相关联。X.509 证书由一家名为证书颁发机构 (CA) 的可信实体颁发。CA 持有一个或多个名为 CA 证书的特殊证书,它使用这种证书来颁发 X.509 证书。只有证书颁发机构才有权访问 CA 证书)才能对与之通信的应用程序执行加密和身份验证。 为了使节点之间的通信真正安全,必须对证书进行验证

在Elasticsearch集群中验证证书真实性的推荐方法是信任签署证书的证书颁发机构(CA)。

这样,只需要使用由同一CA签名的证书,即可自动允许该节点加入集群。

2、借助elasticsearch-certutil命令生成证书

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1bin/elasticsearch-certutil.bat ca -out config/elastic-certificates.p12 -pass ""
4.2.3 配置加密通信

启用安全功能后,必须使用TLS来确保节点之间的通信已加密。

在elasticsearch.yml中心新增配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1xpack.security.transport.ssl.enabled: true
2xpack.security.transport.ssl.verification_mode: certificate 
3xpack.security.transport.ssl.keystore.path: elastic-certificates.p12 
4xpack.security.transport.ssl.truststore.path: elastic-certificates.p12 
4.3 设置集群密码

借助:elasticsearch-setup-passwords 设置集群密码。

elasticsearch-setup-passwords 支持的参数如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1Commands
 2--------
 3auto - Uses randomly generated passwords
 4interactive - Uses passwords entered by a user
 5
 6Non-option arguments:
 7command
 8
 9Option         Description
10------         -----------
11-h, --help     show help
12-s, --silent   show minimal output
13-v, --verbose  show verbose output

核心: auto - 随机生成密码。 interactive - 自定义不同用户的密码。

注意:必须配置好xpack之后,才能设置密码。否则会报错。

自此:单节点安全配置完毕,访问9200会出现用户名和密码的提示窗口。

5、多节点集群X-Pack安全如何配置?

最简单的方法, 假定是初始部署集群阶段。

  • 步骤1:清空data文件(原因:防止冲突,该问题多次在社区被提问);
  • 步骤2:将配置好的带证书的文件copy到另一台机器;
  • 步骤3:根据集群配置ip、角色等信息即可。

6、小结

X-Pack安全配置的核心三步骤:

  • 第一:设置:xpack.security.enabled: true。
  • 第二:生成TLS证书
  • 第三:配置加密通信。
  • 第四:设置密码。

这些对于安全来说只是皮毛,更多的角色、权限、Space需要借助Kibana实现。

你的Elasticsearch安全吗?欢迎留言交流。

参考: https://docs.aws.amazon.com/zh_cn/iot/latest/developerguide/x509-certs.html https://www.elastic.co/cn/blog/getting-started-with-elasticsearch-security https://www.elastic.co/cn/blog/security-for-elasticsearch-is-now-free

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 铭毅天下Elasticsearch 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
感谢楼主,作用很大!我一直卡在创建密码,原来是要先配置ES节点加密通讯。
感谢楼主,作用很大!我一直卡在创建密码,原来是要先配置ES节点加密通讯。
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
Elasticsearch增加x-pack安全认证步骤
ElasticSearch于6.8及7.1版本开始提供免费的x-pack, 并已默认集成,只需通过简单的配置即可开启。
HLee
2021/01/13
4.4K0
Elasticsearch增加x-pack安全认证步骤
ES8集群部署
这次ES8集群部署花的时间真不少,还熬了两夜,原本是比较简单的,同事搞就可以了,结果还是超出了预期,不熟悉的东西部署也是相当耗时间的。开始是准备基于Docker部署的,但是没有成功,网上参考了很多,调各个配置参数,就是没成功,后来看到这个文章:https://www.zsjweblog.com/2022/03/09/elasticsearch8-1-0%e9%9b%86%e7%be%a4%e6%90%ad%e5%bb%ba/,改为直接使用安装包进行部署,在测试机上尝试是可以把几个节点服务连接成一个集群的。
明月AI
2024/02/26
8450
ES8集群部署
Elasticsearch7开启x-pack验证
在Elasticsearch7.3,x-pack已经作为默认的插件集成在Elasticsearch里面了,所以无需在bin/elasticsearch-plugin install x-pack了,直接在配置文件中启用就可以了。
行 者
2019/12/05
3K0
Elasticsearch - Configuring security in Elasticsearch 开启用户名和密码访问
官方指导手册: https://www.elastic.co/guide/en/elasticsearch/reference/7.6/configuring-security.html
小小工匠
2023/02/23
1.9K0
Elasticsearch - Configuring security in Elasticsearch 开启用户名和密码访问
ElasticSearch-7.17.24设置密码及CA证书
将ElasticSearch集群从开源版本升级为具备安全认证功能的版本(如X-Pack),为集群配置SSL/TLS加密并启用安全认证。
火之高兴
2024/10/21
4920
Elasticsearch X-pack的实际应用
用户数据的安全性一直是开发和运维人员关注的重点问题,Elasticsearch在6.8之前官方的X-pack安全认证功能都是收费的,所以很多人都采用Search Guard或者ReadOnly REST这些免费的安全插件对Elasticsearch进行安全认证。但是使用者都知道Search Guard插件存在很多Bug,比如节点gc超时导致集群掉线后,重启很有可能就要重新进行Search Guard的刷新。从Elasticsearch 6.8开始,Security 纳入 x-pack 的 Basic 版本中,免费使用一些基本的功能。本文将对X-pack安全认证的过程进行详细的讲解。
雨夜v1
2021/07/08
2.6K1
Elasticsearch X-pack的实际应用
Elastic Stack 7.5 X-Pack 安全功能部署
elasticsearch kibana 基本上是多人使用的, 所以进行权限控制是必然,以提高安全保障
用户6641876
2020/02/19
1.3K0
ES集群设置密码
在es的bin目录下执行./elasticsearch-certutil ca生成elastic-stack-ca.p12 [root@localhost elasticsearch-7.6.0]# cd bin/ [root@localhost bin]# ls elasticsearch elasticsearch-cli elasticsearch-keystore elasticsearch-saml-metadata elasticsearch-
summerking
2022/09/19
2.2K0
ES集群设置密码
ELK7.x日志系统搭建 1. elk基础搭建
什么是 ELK ? 通俗来讲, ELK 是由 Elasticsearch 、 Logstash 、 Kibana 三个开源软件组成的一个组合体,这三个软件当中,每个软件用于完成不同的功能,他们组成了一套完整的日志系统的解决方案。
憧憬博客
2020/07/21
1.6K0
docker安装Elasticsearch7.6集群并设置密码
Elasticsearch从6.8开始, 允许免费用户使用X-Pack的安全功能, 以前安装es都是裸奔。接下来记录配置安全认证的方法。
Ryan-Miao
2020/04/10
5.8K0
docker安装Elasticsearch7.6集群并设置密码
TBDS-Elasticsearch安全认证配置方法
ES高版本已经支持x-pack认证,TBDS的ES版本是6.4.2,默认已经安装了x-pack,下面是配置方法。
袁宋
2020/12/18
3.1K0
elk6.x 安装x-pack
参考: https://discuss.elastic.co/t/logstash-with-x-pack/90230 https://www.cnblogs.com/liang1101/p/8509978.html 也可以关闭xpack的monitoring检测 在logstash.yml中添加
日薪月亿
2019/05/14
1.6K0
elk6.x 安装x-pack
ES7.8 设置 xpack
单节点 xpack 配置 ---- 修改 ES 配置文件,开启 Security 默认文件:./config/elasticsearch.yml xpack.security.enabled: true xpack.security.transport.ssl.enabled: true 配置修改完之后重启 ES。 设置内置用户密码 ./bin/elasticsearch-setup-passwords interactive 修改 Kibana 配置文件,访问 ES 默认文件:$KIBANA_HOME/c
山海散人
2021/03/03
3.1K0
Elasticsearch 7.X Basic Security
elastic 集群对外提供服务的9200、5601等端口没有任何加密认证,存在数据暴露和安全漏洞的风险。任何人都能随意获取信息,极易导致线上索引或数据可能被泄露和误删。在 elastic 6.8 版本后 elastic 提供核心安全功能实现节点和集群的安全认证,加固集群安全性,保护 elastic 数据不受非法侵害!
Kevin song
2021/08/23
2.4K0
ElasticSearch 7.9.1 X-Pack 插件破解
文件路径:/usr/share/elasticsearch/modules/x-pack-core/x-pack-core-7.9.1.jar
陳斯托洛夫斯記
2024/08/07
3440
ElasticSearch 7.9.1 X-Pack 插件破解
Elasticsearch集群安装
Elasticsearch由Java构建,其内置JDK,官方推荐使用内置JDK来运行Elasticsearch。如果没有安装JDK,那么无需另行安装,启动时会自动使用内置JDK;如果已经安装JDK且试图使用已安装的JDK来运行Elasticsearch,那么需要删除内置JDK目录,然后配置JAVA_HOME环境变量即可。
程序猿杜小头
2022/12/01
4700
大数据ELK Stack(三):Elasticsearch 集群之伪分布式集群部署
Linux环境:CentOS Linux release 7.9.2009 (Core)
zjiekou
2022/09/18
4400
大数据ELK Stack(三):Elasticsearch 集群之伪分布式集群部署
Elasticsearch:设置 Elastic 账户安全
我们知道 Elastic 安全是非常重要的。没有这个我们的数据可以被任何的人进行访问,串改,删除。Elastic Stack 的安全是由 x-pack 所提供的。在 Elastic Stack 7.0 版本之前,这个是商用的版本,需要进行安装,并购买。从Elastic Stack 7.0之后,x-pack 都已经在发布版中,所以不需要进行安装。我们只需要进行配置就可以了。
腾讯云大数据
2020/09/25
2.6K0
Elasticsearch:设置 Elastic 账户安全
Linux 安装部署 Elasticsearch 8.5.0
进入config/jvm.options.d 目录,新建 jvm.options 文件, 添加以下内容
是条鱼呀
2024/03/16
4790
Linux 安装部署 Elasticsearch 8.5.0
ELK 数据安全加固
对于日常使用到的 ELK 组件的系统,默认在 ELK 部署的时候默认都是没有安装配置任何权限管控插件,这对于存储在 es 之中的数据无异于“裸奔”。没有任何防护的话,只要稍微会一点 ELK 知识,网络探测到暴露在域外的 es 数据库后,可以直接对数据进行“增删改查”,这是致命的安全问题。以下为例:
leon_橙
2020/03/30
2K0
ELK 数据安全加固
相关推荐
Elasticsearch增加x-pack安全认证步骤
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验