Elasticsearch 设置最低安全性

这篇具有很好参考价值的文章主要介绍了Elasticsearch 设置最低安全性。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Elasticsearch 设置最低安全性

您启用 Elasticsearch 安全功能,然后为内置用户创建密码。您可以稍后添加更多用户,但使用内置用户可以简化为集群启用安全性的过程。

最小安全场景对于 生产模式集群是不够的。如果您的集群有多个节点,您必须启用最低安全性,然后 在节点之间配置传输层安全性 (TLS)。

  • 文档使用的 elasticsearch 版本如下:
    Version: 7.15.1, Build: default/tar/83c34f456ae29d60e94d886e455e6a3409bba9ed/2021-10-07T21:56:19.031608185Z, JVM: 17

本文档是测试案例。配置为开发模式,如果一个 Elasticsearch 节点不能通过非环回地址与另一台机器形成集群,我们认为它处于开发模式,如果它可以通过非环回地址加入集群,则认为它处于生产模式。

请注意!!!!!!!
如果 Elasticsearch 处于开发模式,任何失败的引导程序检查都会在 Elasticsearch 日志中显示为警告。如果 Elasticsearch 处于生产模式,任何失败的引导程序检查都会导致 Elasticsearch 拒绝启动。

启用 Elasticsearch 安全功能

当您使用基本许可证时,Elasticsearch 安全功能默认处于禁用状态。启用 Elasticsearch 安全功能会启用基本身份验证,以便您可以使用用户名和密码身份验证运行本地集群。

  • 在集群中的每个节点 上,停止 Kibana 和 Elasticsearch(如果它们正在运行)。
root@ubuntu-x64_02:/opt# systemctl stop kibana

root@ubuntu-x64_02:/opt# systemctl stop elasticsearch9201

root@ubuntu-x64_02:/opt# systemctl stop elasticsearch9202

root@ubuntu-x64_02:/opt# systemctl stop elasticsearch9203
  • 在集群中的每个节点上,将设置 xpack.security.enabled 添加到 $ES_PATH_CONF/elasticsearch.yml 文件并将值设置为true:
# 9201
root@ubuntu-x64_02:/usr/local/elasticsearch9201/config# cp elasticsearch.yml elasticsearch.yml.bak 
root@ubuntu-x64_02:/usr/local/elasticsearch9201/config# sed -i 's/xpack.security.enabled: false/xpack.security.enabled: true/g' elasticsearch.yml


# 9202
root@ubuntu-x64_02:/usr/local/elasticsearch9202/config# cp elasticsearch.yml elasticsearch.yml.bak 
root@ubuntu-x64_02:/usr/local/elasticsearch9202/config# sed -i 's/xpack.security.enabled: false/xpack.security.enabled: true/g' elasticsearch.yml


# 9203
root@ubuntu-x64_02:/usr/local/elasticsearch9203/config# cp elasticsearch.yml elasticsearch.yml.bak 
root@ubuntu-x64_02:/usr/local/elasticsearch9203/config# sed -i 's/xpack.security.enabled: false/xpack.security.enabled: true/g' elasticsearch.yml

  • 如果您的集群只有一个节点,请discovery.type在 $ES_PATH_CONF/elasticsearch.yml文件中添加设置并将值设置为single-node. 此设置可确保您的节点不会无意中连接到可能在您的网络上运行的其他集群。
discovery.type: single-node

为内置用户创建密码编辑

  • 要与集群通信,您必须为内置用户配置用户名。除非您启用匿名访问,否则所有不包含用户名和密码的请求都会被拒绝。

  • 在启用最低或基本安全性时,您只需要为elastic和kibana_system用户设置密码。

  • 在集群中的每个节点上,启动 Elasticsearch。

  • 请注意,你要使用开发模式的集群,如果你使用生产环境模式,又不启用TLS,你的集群将不会启动,报错:
    bootstrap check failure [1] of [1]: Transport SSL must be enabled if security is enabled on a [basic] license. Please set [xpack.security.transport.ssl.enabled] to [true] or disable security by setting [xpack.security.enabled] to [false]

  • 如果你使用开发模式,则上面的报错会显示为“警告”


# 启动-->  9201
root@ubuntu-x64_02:/opt# systemctl start elasticsearch9201
root@ubuntu-x64_02:/opt# ps -ef | grep elasticsearch9201
elk       3513     1 99 14:11 ?        00:00:22 /usr/local/elasticsearch9201/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -XX:+ShowCodeDetailsInExceptionMessages -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dio.netty.allocator.numDirectArenas=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.locale.providers=SPI,COMPAT --add-opens=java.base/java.io=ALL-UNNAMED -Xms1g -Xmx1g -XX:+UseG1GC -Djava.io.tmpdir=/tmp/elasticsearch-4767306356958695874 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m -XX:MaxDirectMemorySize=536870912 -XX:G1HeapRegionSize=4m -XX:InitiatingHeapOccupancyPercent=30 -XX:G1ReservePercent=15 -Des.path.home=/usr/local/elasticsearch9201 -Des.path.conf=/usr/local/elasticsearch9201/config -Des.distribution.flavor=default -Des.distribution.type=tar -Des.bundled_jdk=true -cp /usr/local/elasticsearch9201/lib/* org.elasticsearch.bootstrap.Elasticsearch -d
elk       3534  3513  0 14:11 ?        00:00:00 /usr/local/elasticsearch9201/modules/x-pack-ml/platform/linux-x86_64/bin/controller


# 启动-->  9202
root@ubuntu-x64_02:/opt# systemctl start elasticsearch9202
root@ubuntu-x64_02:/opt# ps -ef | grep elasticsearch9202
elk       3743     1 99 14:13 ?        00:00:04 /usr/local/elasticsearch9202/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -XX:+ShowCodeDetailsInExceptionMessages -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dio.netty.allocator.numDirectArenas=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.locale.providers=SPI,COMPAT --add-opens=java.base/java.io=ALL-UNNAMED -Xms1g -Xmx1g -XX:+UseG1GC -Djava.io.tmpdir=/tmp/elasticsearch-12089215587958578062 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m -XX:MaxDirectMemorySize=536870912 -XX:G1HeapRegionSize=4m -XX:InitiatingHeapOccupancyPercent=30 -XX:G1ReservePercent=15 -Des.path.home=/usr/local/elasticsearch9202 -Des.path.conf=/usr/local/elasticsearch9202/config -Des.distribution.flavor=default -Des.distribution.type=tar -Des.bundled_jdk=true -cp /usr/local/elasticsearch9202/lib/* org.elasticsearch.bootstrap.Elasticsearch -d
elk       3764  3743  0 14:13 ?        00:00:00 /usr/local/elasticsearch9202/modules/x-pack-ml/platform/linux-x86_64/bin/controller


# 启动--> 9203
root@ubuntu-x64_02:/opt# systemctl start elasticsearch9203
root@ubuntu-x64_02:/opt# ps -ef | grep elasticsearch9203
elk       3974     1 99 14:13 ?        00:00:05 /usr/local/elasticsearch9203/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -XX:+ShowCodeDetailsInExceptionMessages -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dio.netty.allocator.numDirectArenas=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.locale.providers=SPI,COMPAT --add-opens=java.base/java.io=ALL-UNNAMED -Xms1g -Xmx1g -XX:+UseG1GC -Djava.io.tmpdir=/tmp/elasticsearch-1626046538224446804 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m -XX:MaxDirectMemorySize=536870912 -XX:G1HeapRegionSize=4m -XX:InitiatingHeapOccupancyPercent=30 -XX:G1ReservePercent=15 -Des.path.home=/usr/local/elasticsearch9203 -Des.path.conf=/usr/local/elasticsearch9203/config -Des.distribution.flavor=default -Des.distribution.type=tar -Des.bundled_jdk=true -cp /usr/local/elasticsearch9203/lib/* org.elasticsearch.bootstrap.Elasticsearch -d
elk       3995  3974  1 14:13 ?        00:00:00 /usr/local/elasticsearch9203/modules/x-pack-ml/platform/linux-x86_64/bin/controller
  • 检查集群启动状态: REST请求缺少身份验证凭据,接下来我们需要通过运行实用程序为内置用户设置密码
root@ubuntu-x64_02:/opt# curl "http://127.0.0.1:9201/_cat/health/?v"
{"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/_cat/health/?v]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/_cat/health/?v]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401}

为内置用户创建密码

在另一个终端窗口中,通过运行实用程序为内置用户设置密码 elasticsearch-setup-passwords, 您可以elasticsearch-setup-passwords针对集群中的任何节点运行该实用程序。但是,您应该只为整个集群运行一次该实用程序。

  • 使用该auto参数将随机生成的密码输出到控制台,您可以在以后根据需要更改这些密码:
  • 实际密码会明文打印,这里使用星号代替
cd /usr/local/elasticsearch9201/
root@ubuntu-x64_02:/usr/local/elasticsearch9201# ./bin/elasticsearch-setup-passwords auto
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
The passwords will be randomly generated and printed to the console.
Please confirm that you would like to continue [y/N]y


Changed password for user apm_system
PASSWORD apm_system = G5e******qb

Changed password for user kibana_system
PASSWORD kibana_system = Z4i******Wy7

Changed password for user kibana
PASSWORD kibana = Z4i******y7

Changed password for user logstash_system
PASSWORD logstash_system = sdR******BY

Changed password for user beats_system
PASSWORD beats_system = rIF******BA

Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = dt5******gD

Changed password for user elastic
PASSWORD elastic = G9e******nG
  • interactive如果要使用自己的密码,请使用参数而不是参数运行命令 auto。使用此模式可引导您完成所有内置用户的密码配置。
cd /usr/local/elasticsearch9201/
root@ubuntu-x64_02:/usr/local/elasticsearch9201# ./bin/elasticsearch-setup-passwords interactive
  • 保存生成的密码。您将需要它们将内置用户添加到 Kibana。
  • 为用户设置密码后,您将无法再次运行该命令。elasticsearch-setup-passwords

配置 Kibana 以使用密码连接到 Elasticsearch

  • 启用 Elasticsearch 安全功能后,用户必须使用有效的用户名和密码登录 Kibana。

  • 您将配置 Kibana 以使用您之前创建的内置 kibana_system 用户和密码。Kibana 执行一些需要 kibana_system 用户使用的后台任务。

  • 此帐户不适用于个人用户,无权从浏览器登录 Kibana。相反,您将以超级用户身份登录 Kibana elastic。

  • 将设置添加elasticsearch.username到KIB_PATH_CONF/kibana.yml 文件并将值设置为kibana_system用户:

root@ubuntu-x64_02:/usr/local/kibana/config# echo 'elasticsearch.username: "kibana_system"' >> kibana.yml
root@ubuntu-x64_02:/usr/local/kibana/config# egrep "^[a-Z]" kibana.yml 
server.port: 5601
server.host: 192.168.88.12
server.publicBaseUrl: "http://192.168.88.12:5601"
elasticsearch.hosts: ["http://127.0.0.1:9201" ,"http://127.0.0.1:9202" ,"http://127.0.0.1:9203"] 
kibana.index: ".kibana"
kibana.defaultAppId: "home"
elasticsearch.pingTimeout: 1500
elasticsearch.requestTimeout: 30000
elasticsearch.shardTimeout: 30000
elasticsearch.username: "kibana_system"

创建 Kibana 密钥库:

root@ubuntu-x64_02:/usr/local/kibana# ./bin/kibana-keystore create
Created Kibana keystore in /usr/local/kibana/config/kibana.keystore

将用户 kibana_system 的密码添加到 Kibana 密钥库:
出现提示时,输入用户kibana_system的密码

root@ubuntu-x64_02:/usr/local/kibana# ./bin/kibana-keystore add elasticsearch.password
Setting elasticsearch.password already exists. Overwrite? [y/N] y
Enter value for elasticsearch.password: ********************

重启 kibana 服务

root@ubuntu-x64_02:/usr/local/kibana# systemctl restart kibana.service 

root@ubuntu-x64_02:/usr/local/kibana# ps -ef | grep kibana
elk       2370     1 11 19:22 ?        00:00:00 /usr/local/kibana/bin/../node/bin/node /usr/local/kibana/bin/../src/cli/dist
elk       2385  2370 99 19:22 ?        00:00:06 /usr/local/kibana/node/bin/node --preserve-symlinks-main --preserve-symlinks /usr/local/kibana/src/cli/dist

以用户 elastic 身份登录 Kibana 。使用此超级用户帐户来管理空间、创建新用户和分配角色。

如果您在本地运行 Kibana,请转至http://localhost:5601 查看登录页面。

登录后,可以看到 Management 下面security可以对用户和角色权设置限管理~
Elasticsearch 设置最低安全性

小结

以上是最低安全性配置, 如果您想在笔记本电脑上设置 Elasticsearch 并开始开发,这个场景适合您。此配置通过为内置用户设置密码来防止未经授权访问您的本地集群。您还可以为 Kibana 配置密码身份验证。

最小安全场景对于 生产模式集群是不够的。如果您的集群有多个节点,您必须启用最低安全性,然后 在节点之间配置传输层安全性 (TLS)。

请参考 “Elasticsearch 设置基本安全性”,以保护集群中节点之间的所有内部通信文章来源地址https://www.toymoban.com/news/detail-425676.html

到了这里,关于Elasticsearch 设置最低安全性的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 7.6 密码设置与安全性分析(project)(安全意识)

    目录   第1关 随机生成一个n位密码 第2关 将随机生成的n位密码MD5加密 第3关 生成黑客密码字典 第4关 模拟碰撞破解MD5密码 第5关 检查密码是否泄漏 第1关  随机生成一个n位密码 本关任务:编写一个能随机生成一个n位密码的小程序。 1pass01.txt 1pass02.txt 1pass03.txt Linux密码中

    2024年02月01日
    浏览(87)
  • elasticsearch8.9.1部署及配置基本安全性以及安全的 HTTPS 流量

    1、官网下载elasticsearch8.9.1安装包,上传至服务器并解压 官网地址 解压 2、修改elasticsearch配置文件elasticsearch.yml(支持ipv4以及ipv6双栈),文件权限修改成非root的应用程序账号 1、进入elasticsearch根目录 注:1、输出文件名称(默认)2、CA密码设置(可留空直接回车,生产环境建议

    2024年02月03日
    浏览(27)
  • Elasticsearch(实践2)链接库产生TLS验证安全性报错

    问题:   File \\\"/home/server/miniconda3/envs/rag/lib/python3.8/site-packages/elastic_transport/_transport.py\\\", line 328, in perform_request     meta, raw_data = node.perform_request(   File \\\"/home/server/miniconda3/envs/rag/lib/python3.8/site-packages/elastic_transport/_node/_http_urllib3.py\\\", line 202, in perform_request     raise err from None elas

    2024年01月18日
    浏览(29)
  • 设置空闲超时选项“ClientAliveCountMax” ”ClientAliveInterval“ 参数来加强ssh连接的稳定性和安全性

    一般是用sudo vim /etc/ssh/sshd_config 编译sshd文件中的这两个选项来解决服务器与ssh客户端在长时间无操作断连的问题。 \\\'\\\'\\\' sudo vim /etc/ssh/sshd_config 查找是否有ClientAliveInterval 0和ClientAliveCountMax 3,如何没有,则在文件后添加 ClientAliveInterval 60 ClientAliveCountMax 3 \\\'\\\'\\\' ClientAliveInterval 设置为

    2024年02月10日
    浏览(36)
  • 【Docker】Docker的工具实践及root概念和Docker容器安全性设置的详细讲解

    前言 Docker 是一个 开源的应用容器引擎 ,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux或Windows 操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 📕作者简介: 热爱跑步的恒川 ,致力于

    2024年02月14日
    浏览(32)
  • 【Docker】Docker的工具实践及root概念,时间戳的概念和Docker容器安全性设置的详细讲解

    作者简介: 辭七七,目前大二,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 前言 Docker 是一个 开源的应用容器引擎 ,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发

    2024年02月08日
    浏览(33)
  • 加密数据安全性的两大安全护盾-前向安全性与后向安全性详解

    在数字安全的世界里,加密技术是用来保护数据不被未经授权访问的重要机制。然而,即使使用了最强的加密算法,也不能保证永远是安全的。攻击者可能会在未来某个时间点获得了解密密钥,从而能够解密拦截的密文。为了解决这个问题,密码学引入了前向安全性(Forwar

    2024年02月04日
    浏览(41)
  • 云计算:云计算安全性有哪些?_云计算技术的安全性,这些知识你必须拿下

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新网络安全全套学习资料》

    2024年04月23日
    浏览(36)
  • 什么是前端安全性(front-end security)?列举一些前端安全性的最佳实践

    聚沙成塔·每天进步一点点 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而

    2024年02月05日
    浏览(39)
  • 《网络安全0-100》低层协议安全性

    对于网络层,IP协议是其中一个非常重要的协议。网络层的IP地址相当于数据链路层的Mac地址。协议字段如下,每行4字节,总共4*5=20字节。   IP协议安全性:IP协议不能保证数据就是从数据包中给定的源地址发出的,你绝对不能靠对源地址的有效性检验来判断数据包的好坏。

    2024年02月11日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包