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

ELK开启安全策略

背景

近期,我们的开发系统在一次客户漏洞扫描中被检测出存在高危漏洞,其中一项便是Elasticsearch(ES)未配置用户名密码访问。尽管此前我们的ES集群主要作为基础设施在内网运行,并未直接对外暴露,但此次扫描结果明确指出了潜在的安全风险。为了消除这些隐患,并进一步提升系统的整体安全性,我们决定对ELK Stack进行全面的安全加固。

注意,本篇不会介绍elk相关的部署操作,而是基于已经部署好的elk服务,进行安全配置,关于elk的部署,可以参考官方文档或者其他博客,笔者也曾出过一篇相关的博客,地址:https://xie.infoq.cn/article/809dd91a0ec9d6e23c3db67dc

ElasticSearch相关

配置证书

生成证书

使用es自带的cert工具生成证书

# 创建ca
./bin/elasticsearch-certutil ca

执行此命令后,系统会提示您输入一个密码,请按需输入并牢记。如果忘记密码,将无法使用该CA证书。

如果按默认保存,您将获得一个p12格式的CA证书文件(elastic-stack-ca.p12)。您可以通过openssl查看其包含的信息:

可以通过openssl查看其包含的信息,此命令将显示p12证书文件的详细信息,包括证书链和私钥。请注意,输出内容可能较多。

openssl pkcs12 -info -nodes -in elastic-stack-ca.p12

您还可以查看CA证书的过期时间:

openssl pkcs12 -in elastic-stack-ca.p12 -nodes -nokeys -clcerts | openssl x509 -enddate -noout

接下来,利用已创建的CA证书生成ES服务所需的加密证书:

bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

执行此命令后,同样会提示您输入密码。完成后,您将获得ES服务所需的证书文件(elastic-certificates.p12)。

同样的,可以使用刚才查看证书内容和过期时间的方法查看一下这个证书的信息,该文件就是我们下面需要放到es的配置文件里,进行传输层加密的证书。

提取CA证书

p12证书是一个类似加密文件的文件类型,不能直接再kibana,logstash等客户端使用,需要需要将其提取成crt文件

openssl pkcs12 -in config/certs/elastic-certificates.p12 -cacerts -nokeys -out config/certs/elastic-ca.crt

注意,关于证书的格式大家可以自行了解一下,p12格式在多数场景下是不能直接用的,需要解压转换成crt或者pem格式。

生成提取证书的操作只执行一次就行,然后将生成的证书复制到集群内的各个节点

授权

完成证书的生成和提取操作后,需要将证书文件复制到集群各个节点,然后进行授权操作,一般是对证书所在路径和文件进行授权就可以,基本就是下面这几个语句

注意,我这里的路径写的是相对路径,操作时要确保你在证书所在目录的主路径里,比如/usr/elasticsearch等。

sudo chown -R elsearch:elsearch /config/certs/*
chmod 600 /home/elastic/elasticsearch-7.14.1/config/certs/*
sudo chown -R elsearch:elsearch /config
chmod 750 /config

同步证书

将准备好的证书文件同步到其他服务器,注意,要尽量确保每个节点的es服务存储路径规则一致,这主要是为了运维方便,如果不一致,配置证书的时候要小心一点,别弄错了。

# 注意生产环境如果有安全要求,可以使用更安全可靠的方式进行同步
scp -r ./config/certs 192.168.0.188:/opt/elastic/config/certs
scp -r ./config/certs 192.168.0.189:/opt/elastic/config/certs

至此,准备工作完成

修改配置

修改每个节点的配置文件,在elasticsearch.yml文件中添加以下安全配置:

http://www.dtcms.com/a/329548.html

相关文章:

  • @系统管理 - Ansible 补丁管理方案(Windows Linux)
  • 从零开始:用PyTorch实现线性回归模型
  • MySQL的MVCC多版本并发控制
  • 01数据结构-Prim算法
  • 一场名为“默契”的清洁革命
  • Github学生认证
  • 从钢板内部应力视角,重新认识护栏板矫平机
  • Lombok插件介绍及安装(Eclipse)
  • Linux操作系统应用编程——文件IO
  • LCP 17. 速算机器人
  • 车载软件架构 --- MCU刷写擦除相关疑问?
  • 无法将顶级控件添加到控件
  • EM系列储能网关4G升级:开箱即用的4G上云体验
  • 【97页PPT】智慧工厂数字化智能化车间规划与建设(附下载方式)
  • elasticsearch mapping和template解析(自动分词)!
  • 2.Cursor高阶技巧使用
  • JMeter 测试 WebSocket 接口的详细教程
  • window如何安装sqlite3数据库
  • Python实战教程:PDF文档自动化编辑与图表绘制全攻略
  • 在前端js中使用jsPDF或react-to-pdf生成pdf文件时,不使用默认下载,而是存储到服务器
  • 数据类型 set
  • 顺序表 —— OJ题
  • AJAX:让你的网页“静悄悄”变聪明,体验丝滑升级
  • 15.卷积神经网络
  • 图像分割-动手学计算机视觉9
  • ZED 2i相机调试
  • 以鼠标位置为中心进行滚动缩放
  • CSS counter-reset 与 counter-increment:用 CSS 实现自动编号的黑科技
  • 【日常学习】2025-8-13
  • HTML <iframe> 标签 如何把html写入iframe标签