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
9K00
代码可运行
举报
文章被收录于专栏:铭毅天下铭毅天下
运行总次数: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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Linux的top命令详解
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。 top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。比较准确的说,top命令提供了实时的对系统处理器的状态监视。它将显示系统中CPU最“敏感”的任务列表。该命令可以按CPU使用。内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。
共饮一杯无
2022/11/24
4.4K0
Linux的top命令详解
linux每日命令(37):top命令
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.
用户1214487
2018/12/24
1.6K0
CPU使用率过高问题排查及Linux之top命令用法详解
公司连续2天服务器告警CPU使用率过高问题,查看日志无果,尝试使用top命令排查问题。
Maynor
2022/06/12
10.9K0
CPU使用率过高问题排查及Linux之top命令用法详解
Linux TOP 命令详解
当前时间(date)、系统已运行时间(last reboot)、当前登录用户的数量(who )、最近5、10、15分钟内的平均负载
付威
2021/01/28
9.3K0
Linux TOP 命令详解
Linux中top命令参数详解
top命令经常用来监控linux的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况。
全栈程序员站长
2022/09/01
8.8K0
Linux top命令详解 -- 罗小黑
第一行:系统时间 21:53:29、运行时间:up 8 day、当前连接数:1 user 、 负载均衡(uptime): load average:0.052,0.32,0.35 average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。 load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了 第二行:Tasks — 任务(进程) 总进程:115 total、运行;1 running、休眠:111 sleep 、停止: 0 stopped 、僵尸进程:1 zombie 第三行:CPU状态
云计算小黑
2022/12/28
17K0
Linux top命令详解 -- 罗小黑
linux top命令详解
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。 top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48 Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.
Java学习123
2018/05/16
6.9K0
Linux - top命令监控列表的详细解析
可看此博文:https://www.cnblogs.com/poloyy/p/12551943.html
小菠萝测试笔记
2020/06/09
3.6K0
Linux - top命令监控列表的详细解析
Linux常用查看CPU和内存使用情况-ls、free、top、cat、ll
在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。
jack.yang
2025/04/05
1.8K0
【Linux系列-1】top命令详解
在默认情况下,仅显示比较重要的 PIO、USERPR、NI、VIRT、RES、SHR、S、%CPU、%MEMTIME+、COMMAND列。 要想展示隐藏项,按 f 键进入选择界面,左侧有 * 号的表示该项是展示状态,通过方向键上下移动到某项,按 d 键可以改变该项的展示状态,然后按【ESC】或【q】键退出返回top界面。
云深i不知处
2020/09/16
2.3K0
Linux 之 top 命令
原文链接:https://rumenz.com/rumenbiji/linux-top.html
入门笔记
2021/07/29
5.5K0
如何查看linux系统中空闲内存/物理内存使用/剩余内存
查看系统内存有很多方法,但主要的是用top命令和free 命令 当执行top命令看到结果,要怎么看呢?这里说明一下: Mem: 666666k total, 55555k used,并不是代表你的应用程序已经使用了55555k的内存,这55555k是包含了:应用程序内存 + 缓冲 + 缓存的内存的。 用free命令查看更直接: 下面是一个例子(单位是MB): 
业余草
2019/01/21
21.6K0
怎样读懂top命令?
top命令对Linux服务器而言具有非常重要的意义,它是Linux系统中常用的实时系统监控工具,能够动态地显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。通过top命令,系统管理员可以实时监控系统的运行状态,包括CPU使用率、内存占用、交换区使用情况、任务调度等信息,从而及时发现资源占用较高的进程或系统性能瓶颈,并进行相应的优化和调整。
闫同学
2025/01/19
2550
怎样读懂top命令?
TOP使用参数
TOP使用参数 top是检查机器当前运行状况的第一个命令,就好比是机器体检时的第一张报告单。 先了解一下TOP命令的使用
小陈运维
2021/10/13
1.2K0
Linux top 命令详解
说明:sar -P ALL > aaa.txt   重定向输出内容到文件 aaa.txt
阳光岛主
2019/02/19
7.3K0
Linux任务管理器(top命令)
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
可定
2020/04/20
4.6K0
Linux任务管理器(top命令)
一天一个 Linux 命令(33):top 命令
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/181
joshua317
2021/11/05
5380
Linux18.2_top命令详解
关于ps命令的用法,见Linux_18下查看进程的启动和运行时间。虽然ps在收集系统上的进程信息很有用,但也有不足之处:它只能显示某个特定时间点的饿信息,如果想观察频繁换进换出的内存的运行趋势,ps就有点力不从心了。 top命令和ps相似,可以实时显示进程信息。
Y大宽
2019/05/30
1K0
Linux命令-top
top 命令是 Linux 下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
heidsoft
2018/10/16
8.8K0
centos7 top命令_linux chmod命令
对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,表示内核在不断进行内存和swap的数据交换,说明内存真的不够用了。
全栈程序员站长
2022/09/19
9650
centos7 top命令_linux chmod命令
相关推荐
Linux的top命令详解
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验