当前位置: 首页 > article >正文

es 集群安全认证

参考文档:Configure security for the Elastic Stack | Elasticsearch Guide [7.17] | Elastic

ES敏感信息泄露的原因

  • Elasticsearch在默认安装后,不提供任何形式的安全防护
  • 不合理的配置导致公网可以访问ES集群。比如在elasticsearch.yml文件中,server.host配置为0.0.0.0

免费的方案

  • 设置nginx反向代理
  • 安装免费的Security插件
    • Search Guard : Security and Alerting for Elasticsearch and Kibana | Search Guard
    • readonlyrest: ReadonlyREST Security and Multi-tenancy for Elasticsearch and Kibana
  • X-Pack的Basic版
    • 从ES 6.8开始,Security纳入x-pack的Basic版本中,免费使用一些基本的功能

集群内部安全通信

ElasticSearch集群内部的数据是通过9300进行传输的,如果不对数据加密,可能会造成数据被抓包,敏感信息泄露。

解决方案: 为节点创建证书

TLS 协议要求Trusted Certificate Authority (CA)签发x.509的证书。证书认证的不同级别:

  • Certificate ——节点加入需要使用相同CA签发的证书
  • Full Verification——节点加入集群需要相同CA签发的证书,还需要验证Host name 或IP地址
  • No Verification——任何节点都可以加入,开发环境中用于诊断目的

1)生成节点证书

首先进入到 es 文件夹

执行命令:

# 为集群创建一个证书颁发机构
bin/elasticsearch-certutil ca

中间会出现两个提示,直接回车即可

继续执行:

# 为集群中的每个节点生成证书和私钥
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

期间也会有几个提示,直接回车

然后将生成的文件移动到 config 下

# 移动到config目录下
mv *.p12 config/

然后 config 文件夹中可以看到多了两个文件 

将如上命令生成的两个证书文件拷贝到另外两个节点作为通信依据。

注意换成自己对应的用户名和对应的文件夹

# 拷贝到另外两个节点
scp config/*.p12 heyue@192.168.177.202:/home/heyue/es/elasticsearch-7.17.3/config
scp config/*.p12 heyue@192.168.177.203:/home/heyue/es/elasticsearch-7.17.3/config

 

2)配置节点间通信

三个ES节点增加如下配置:

## elasticsearch.yml 配置
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate 
xpack.security.transport.ssl.client_authentication: required
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
xpack.security.enabled: true # 开启xpack认证机制

配置完成后,记得重启 es 如果后台启动,bin/elasticsearch 后面加上 -d

然后再次访问,发现需要用户密码登录了

 

3)为内置账号添加密码

ES中内置了几个管理其他集成组件的账号即:apm_system, beats_system, elastic, kibana,

 logstash_system, remote_monitoring_user,使用之前,首先需要添加一下密码。

bin/elasticsearch-setup-passwords interactive

这里我都设置了 123456,可以根据自己情况 按需修改 

  • interactive:给用户手动设置密码。
  • auto:自动生成密码。

4)测试: 

输入密码后可以看到配置完成

5)配置Kibana

开启了安全认证之后,kibana连接es以及访问es都需要认证。

修改kibana.yml

elasticsearch.username: "kibana_system"
elasticsearch.password: "123456"

然后记得重启

# 查找 kibana 进程
netstat -tunlp | grep 5601
#重启,注意进入到 kibana 文件包中
nohup  bin/kibana &

 

6)配置cerebro

修改配置文件

vim conf/application.conf

hosts = [
  {
    host = "http://192.168.65.174:9200"
    name = "es-cluster"
    auth = {
      username = "elastic"
      password = "123456"
    }
  }
]

配置完成后记得重启

# 查找 kibana 进程
netstat -tunlp | grep 5601
#重启
nohup bin/cerebro > cerebro.log &

每天进步一点点,加油 


http://www.kler.cn/a/274635.html

相关文章:

  • 【活动邀请·深圳】深圳COC社区 深圳 AWS UG 2024 re:Invent re:Cap
  • HIPT论文阅读
  • 常用es命令
  • Spring Cloud Gateway 源码
  • [Unity] 【VR】【游戏开发】在VR中使用New Input System获取按键值的完整教程
  • Hive内部表和外部表的区别
  • 【SpringSecurity】十三、基于Session实现授权认证
  • 使用OpenRewrite自动做框架升级比如Spring Boot
  • Siloed No More: How AI-Driven Tech Stack Consolidation Boosts Revenue
  • C# 使用OpenCvSharp4将Bitmap合成为MP4视频的环境
  • O2OA红头文件流转与O2OA版式公文编辑器基本使用
  • java基础-Test03:图书管理系统 超详细注释
  • vue-router(v4.0) 基础3
  • Panasonic松下PLC如何数据采集?如何实现快速接入IIOT云平台?
  • fs方法举例
  • 蓝桥杯day4刷题日记
  • 算法笔记p335堆
  • 景联文科技:提供通用多模态数据,助力AI多模态领域实现飞跃式发展
  • CMU 10-414/714: Deep Learning Systems --hw3
  • HTML、XHTML和HTML5 的区别是什么?
  • 《优化接口设计的思路》系列:第九篇—用好缓存,让你的接口速度飞起来
  • Linux运维_Linux临时环境变量设置(bin和include以及lib)
  • Android14音频进阶:AudioFlinger究竟如何混音?(六十三)
  • 开源离线语音识别输入工具CapsWriter v1.0——支持无限时长语音、音视频文件转录字幕。
  • 《论文阅读》端到端情感原因对提取的有效子句间建模
  • 洛谷_P1104 生日_python写法