怎么开启 Elasticsearch 安全认证 xpack security 配置步骤

文章导读
开启 Elasticsearch 安全认证主要通过配置 X-Pack 安全模块实现。首先需停止正在运行的 Elasticsearch 服务,修改 elasticsearch.yml 配置文件,设置 xpack.security.enabled: true 启用安全功能,并配置传输层 SSL 加密。接着使用 elasticsearch-certutil 工具生成 CA 证书和节点证书,确保证书路径配
📋 目录
  1. Elasticsearch 增加 x-pack 安全认证步骤
  2. 别再让你的 Elasticsearch 裸奔了!手把手教你配置安全认证 (附一键检测脚本)
  3. 干货| Elasticsearch7.X X-Pack 基础安全实操详解
  4. 腾讯云 Elasticsearch 实战篇 (二十二) ES6.8 权限使用配置
  5. 如何配置 Elasticsearch 的 SSL 证书开启 HTTPS 访问
  6. FAQ
A A

开启 Elasticsearch 安全认证主要通过配置 X-Pack 安全模块实现。首先需停止正在运行的 Elasticsearch 服务,修改 elasticsearch.yml 配置文件,设置 xpack.security.enabled: true 启用安全功能,并配置传输层 SSL 加密。接着使用 elasticsearch-certutil 工具生成 CA 证书和节点证书,确保证书路径配置正确。随后运行 elasticsearch-setup-passwords interactive 命令为内置用户(如 elastic、kibana 等)设置密码。最后重启 Elasticsearch 服务,即可通过用户名密码访问集群,实现基本的身份验证与访问控制,防止未授权访问导致的数据泄露风险。

Elasticsearch 增加 x-pack 安全认证步骤

ElasticSearch 于 6.8 及 7.1 版本开始提供免费的 x-pack, 并已默认集成,只需通过简单的配置即可开启。我们知道 Elastic 安全是非常重要的。没有这个我们的数据可以被任何的人进行访问,串改,删除。Elastic Stack 的安全是由 x-pack 所提供的。在 Elastic Stack 7.0 版本之前,这个是商用的版本,需要进行安装,并购买。从 Elastic Stack 7.0 之后,x-pack 都已经在发布版中,所以不需要进行安装。我们只需要进行配置就可以了。通常我们的 ES 节点部署在内网当中,不对外暴露 9200 等端口,kibana 是一款非常强大的可视化工具,devTools 使开发人员可以方便的操作集群,索引,但是这个页面非开发人员也是可以看到的,因此第一步就是先要屏蔽非 es 使用方,提供一个登录认证功能。启用 Elastic 安全功能 使用基本和试用许可证时,默认情况下会禁用 Elasticsearch 安全功能。要启用它们,首先,我们必须停止所以正在运行的 Elastic Stack 软件:停止 Kibana Start and stopping Kibana 停止 Elasticsearch Stopping Elasticsearch 添加 xpack.security.enabled 代码语言:javascript AI 代码解释 首先在 elasticsearch.yml 中加入以下配置 xpack.security.enabled:truexpack.license.self_generated.type:basic xpack.security.transport.ssl.enabled:true 备注:这一步加完之后启动 Es,访问 http://localhost:9200/就会弹出验证界面,但是这个时候还没有设置用户名和密码,等后续设置完用户名和密码之后,可以输入 (elastic,elastic) 进入 启用 single-node 发现模式 如果你有多个节点,则可以在群集中的每个节点上启用 Elasticsearch 安全功能,并为节点间通信配置传输层安全性 (TLS),这超出了本教程的范围。通过启用单节点发现,我们推迟了 TLS 的配置。例如,添加以下设置:代码语言:javascript AI 代码解释 重启 Elasticsearch 为内置用户编辑创建密码 我们可以参照链接来创建我们的密码。您可以将 内置用户用于特定的管理目的:apm_system,beats_system,elastic,kibana,logstash_system 和 remote_monitoring_user。在使用它们之前,我们必须为它们设置密码。在 Elasticsearch 的目录里安装打入如下的命令:代码语言:javascript AI 代码解释./elasticsearch-setup-passwords interactive 执行命令:分别设置各个组件的密码 (pws=elastic) lihuandeMacBook-Pro:bin lihuan$ ./elasticsearch-setup-passwords interactive Initiating the setup ofpasswords forreserved users elastic,apm_system,kibana,lo

别再让你的 Elasticsearch 裸奔了!手把手教你配置安全认证 (附一键检测脚本)

手把手教你配置安全认证 (附一键检测脚本) 那天凌晨三点,我被一阵急促的电话铃声惊醒。电话那头是值班同事颤抖的声音:"我们的用户数据被挂在暗网论坛了,黑客留下的日志显示是通过 Elasticsearch 未授权访问漏洞获取的" 这个不眠之夜让我深刻认识到,在分布式搜索服务大行其道的今天,安全配置绝不是可选项而是必选项。发现未授权访问漏洞后的前 30 分钟至关重要。首先立即断开受影响节点的网络连接,如果是云环境可直接通过控制台禁用安全组入站规则。临时解决方案可通过以下命令快速设置防火墙规则:# 紧急限制 9200 端口访问 (CentOS/RedHat 示例) sudo firewall-cmd --permanent --remove-port=9200/tcp sudo firewall-cmd --reload # 或仅允许特定 IP 访问 sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="9200" accept' 一键获取完整项目代码 bash 必须立即检查的数据泄露指标:/_cat/indices 接口是否被异常查询 是否存在未知的索引快照操作/_nodes/stats 中异常的查询请求量 使用以下 Python 脚本可快速扫描内网中其他可能存在风险的 ES 实例:importrequests fromconcurrent.futuresimportThreadPoolExecutor defcheck_es_node(ip, port=9200): try: resp = requests.get(f"http://{ip}:{port}/_cluster/health", timeout=3) ifresp.status_code ==200and'cluster_name'inresp.json(): print(f"[!] 未授权访问风险{ip}:{port}") print(f" 集群信息:{resp.text[:200]}") returnTrue exceptException: pass returnFalse withopen('internal_ips.txt')asf: ips = [line.strip()forlineinfifline.strip()] withThreadPoolExecutor(20)asexecutor: results =list(executor.map(check_es_node, ips)) 一键获取完整项目代码 python 2. 基础安全认证配置 Elasticsearch 自 7.0 版本开始内置安全功能,但需要手动启用。以下是不同版本的最小化安全配置方案:2.1 Elasticsearch 7.x 基础认证 修改 config/elasticsearch.yml: xpack.security.enabled: true xpack.security.transport.ssl.enabled: true http.basic.enabled: true http.basic.user: "admin" http.basic.password: "${ES_PASSWORD}" # 建议使用环境变量

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

哪些收费呢?2) 单节点 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 AI 代码解释 4.2 为节点间通信配置传输层安全性 (TLS / SSL) 使用范围:配置传输层安全性适用于具有多个节点的集群以及需要外网通信访问的单节点 ES。使用环回地址 127.0.0.1 的单节点 ES 可以不用配置。TLS 需要 X.509 证书 (X.509 证书是一个数字证书,它使用 X.509 公有密钥基础设施标准将公有密钥与证书中包含的身份相关联。

怎么开启 Elasticsearch 安全认证 xpack security 配置步骤

腾讯云 Elasticsearch 实战篇 (二十二) ES6.8 权限使用配置

一、在 ElasticSearch6.8 及以上版本开启安全认证功能 ElasticSearch 的商业插件 X-pack 在 ES6.x 版本以前一直都是收费,不对外免费开放的。在 ES6 以后陆续放开了一些功能,比如前面讲到的 Monitor 集群监控功能。在 ES6.8 及以后版本 ES 又将部分安全性功能免费开放了,包含安全认证功能,之后版本又开放一些基础认证功能,对于普通用户来说是够用的。这里要提一下的是 kibana 的登录和权限是与 ES 紧密相关的,其实真正起作用的是 Elasticsearch,因为 kibana 只是一个视图页面,真正工作的是 Elasticsearch。现在我们就 6.8 版本的【基于角色的访问控制】进行操作、验证。步骤如下:第一步:下载、安装 ES、Kibana 6.8.2 版本 (此处省略,可参考本博客前面的教程) 第二步:修改 ES 配置文件 elasticsearch.yml 添加" xpack.security.enabled: true"到配置文件,保存并退出 Xpack 安全机制 基础版本的安全性功能是默认关闭的。然后启动 ES,注意需要用普通用户启动 ES,注意一定要先启动 ES,才能进行后续安全设置 启动 ES 第三步:/bin/elasticsearch-setup-passwords interactive 启用 ES 默认的内置用户 安全设置用户密码 显示下面的图示:输入"y"

如何配置 Elasticsearch 的 SSL 证书开启 HTTPS 访问

前言:在 Elasticsearch 服务安装完成之后,我们会在安装过程中配置 xpack.security 证书,来实现对 Elasticsearch 服务的登录认证。此时当我们对 Elasticsearch 集群数据节点发起请求时,是以 http://IP:9200 的方式进行访问。如何安装 Elasticsearch 集群并配置 xpack.security 证书,大家可以参考我的另一篇文章 https://cloud.tencent.com/developer/article/2455893。背景:Elasticsearch8.x 版本默认启用了安全功能,包括 TLS 加密。为了确保数据在网络传输中为加密传输,我们就需要通过配置 SSL 证书,并启用 HTTPS 访问。一。生成 SSL 证书 1.使用 elasticsearch-certutil 生成证书 首先,进入 Elasticsearch 安装目录,执行以下命令来生成证书:代码语言:bash AI 代码解释./bin/elasticsearch-certutil http 这条命令会让我们进入 http 证书生成的交互界面,选择是否生成自签名证书或使用已有的证书。首先这里会让我们选择是否生成 CSR,然后通过企业证书管理中心基于 CSR 统一生成 CA 整数。这里我们需要的是生成自签名证书,所以这里输入 N。然后进入当前步骤,选择是否使用现有证书,由于我们是第一次生成证书,所以这里选择 N。在上一步选择 N 后,进入证书生成过程,在这一步证书生成完成,会让我们选择是否需要对证书进行修改。这里我们没有对证书需要进行修改的项,直接选择 N,进入下一步。如果需要配置 Key SIze,或者证书有效时长,则可以输入 y,进行相关项的配置。在这一步,我们需要对 CA 证书配置密码,以确保证书的安全性。输入并确认密码,然后回车进入下一步。在这一步设置证书有效时长,这里我们设置了 5 年。证书有效时长支持设置年月日。根据样例与个人需要设置即可。在这一步,我们需要选择是为节点生成单独的证书,还是为集群生成统一的证书。这里我们是统一的地址对集群进行访问。所以我们选择 N,进入集群证书生成步骤。在这一步,我们需要配置需要哪些集群的节点。这一步骤中,我们配置需要进行访问的数据节点的 hostname,每输入一个回车保存,然后输入下一个。直到配置完所有需要连接的节点的 hostname。在当前环境中,样例是通过节点 IP 的方式对集群进行访问,所以配置的是 IP 地址。在输入完成后,证书生成会提示我们,进行相关信息的确认。确认无误后,输入 Y 保存。配置完成后,证书生成工具会提示我们是否还需要进行修改。如果不需要修改,输入 N 即可。在这一步中,证书生成工具提示我们对私钥进行密码的配置。该私钥将被应用与我们生成的 http.p12 证书中。

FAQ

Elasticsearch 从哪个版本开始免费集成 X-Pack 安全功能?

怎么开启 Elasticsearch 安全认证 xpack security 配置步骤

自 Elastic Stack 6.8 及 7.1 版本开始,基础级安全功能永久免费,且 7.0 之后默认集成在发布版中,无需单独安装插件。

开启安全认证后如何为内置用户设置密码?

怎么开启 Elasticsearch 安全认证 xpack security 配置步骤

需要在 Elasticsearch 目录的 bin 文件夹下执行./elasticsearch-setup-passwords interactive 命令,按照提示依次为 elastic、kibana 等内置用户设置密码。

单节点部署是否必须配置 TLS/SSL 证书?

使用环回地址 127.0.0.1 的单节点 ES 可以不用配置传输层安全性,但多节点集群或需要外网通信访问的单节点建议配置 TLS 以确保节点间通信加密。