ELK 7.2 单节点开启安全认证

7.2.0 版本以后的Elastic Stack添加了很多安全相关的功能,6.3版本以后原本闭源收费的X-pack组件也开源了一部分功能,代码可以在github下载免费试用。这其中最关键的一点是ES和Kibana的安全认证功能可以在开源的ELK版本中使用了。

本文简要介绍如何ELK开启安全认证功能。


kibana auth

0x00 前提

  • 已完成单节点ELK部署

0x01 Elasticsearch开启安全认证

如果使用basic或者试用license,安全认证功能默认是关闭的,可以执行以下步骤开启安全认证功能:

  1. 停止Kibana,如果是通过Docker部署的Kibana,那直接stop容器即可
  2. 添加xpack.security.enabled设置到ES_PATH_CONF/elasticsearch.yml文件
    开启安全认证需要添加如下信息:
xpack.security.enabled: true
  1. 开启单节点发现模式
    本文聚焦于单节点的部署模式,如果在多节点的集群下,组需要在每个Elasticsearch节点下开启安全模式,但这不在本文的范围之内,我们可以通过修改ES_PATH_CONF/elasticsearch.yml开启单节点模式

0x02 为内置账号创建密码

ES中内置了几个管理其他集成组件的账号即:apm_system, beats_system, elastic, kibana, logstash_system, remote_monitoring_user
在使用前需要先设置密码:
在Elasticsearch安装目录下执行

./bin/elasticsearch-setup-passwords interactive

后续步骤会用到这些账号密码,所以请牢记密码

0x03 添加内置账号到Kibana

Elasticsearch的安全特性开始以后,用户登录Kibana必须输入用户名密码

  1. 配置Kibana使用内置账号kibana
    有两种方式配置账号密码
  • 将账号密码明文配置到KIBANA/config/kibana.yml文件
elasticsearch.username: "kibana"
elasticsearch.password: "your_password"

密码即为上一步执行elasticsearch-setup-passwords时设置的口令

  • 如果不愿明文保存密码,可以通过下面的命令将密码保存到内置的ketstore里
./bin/kibana-keystore create
./bin/kibana-keystore add elasticsearch.username
./bin/kibana-keystore add elasticsearch.password
  1. 重启Kibana
./bin/kibana

0x04 在Kibana创建用户

这里创建两个本地账户

  1. 登录kibana页面,使用elastic内置账号
  2. 进入 Management / Security / Users 页面


    image.png

    这里你可以看到内置账号列表

  3. 点击Create new user


    image.png

Elastic支持多种认证模式,如本地认证、文件、LDAP、PKI、AD、SAML或者Kerberos,可以在elaseticsearch.tmlxpack.security.authc.realms配置中修改。

0x05 配置加密通信

通过上面的步骤我们已经实现Elasticsearch和Kibana的认证授权访问,但是通信过程还是使用http的明文访问方式,现在我们要通过TLS/SSL对通信过程进行加密。

自签发证书

在centos7默认安装了openssl,这里我们使用openssl生成自签发证书,给Kibana使用。Kinaba支持PEM格式的证书作为浏览器到Kibana服务器的SSL证书。我们使用最简单方式自签发一个证书,包含一个私钥文件和证书文件,在linux下面执行如下命令:

openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem

配置Kibana 使用加密通信

在Kibana安装目录下找到kibana.yml添加配置如下:

server.ssl.enabled: true
server.ssl.key: /path/to/your/server.key
server.ssl.certificate: /path/to/your/server.crt

重启后生效,生效以后我们必须通过https//localhost:5601访问Kibana页面

下一步计划

本文仅介绍单节点的Elasticsearch和Kibana安全特性配置方法,但是要实现完整的安全防护或者集群模式下的安全防护还需要做一些额外的配置,具体请参考官方文档

推荐阅读更多精彩内容

  • x-pack搭建破解请参考之前的安装文档ELK+filebeat+x-pack平台搭建 1. 一些命令 查询所有用...
    Daisy小朋友阅读 5,749评论 0 4
  • 本片文章记录的大概是18年ELK的搭建过程,现在找个时间记录下来。由于当时业务没有涉及到Logstash组件的应用...
    MrSocean阅读 1,894评论 0 5
  • Elastic+logstash+head简单介绍 一. 概述 ElasticSearch是一个基于Lucene的...
    柒月失凄阅读 3,679评论 0 4
  • 概要: ELK允许你以任何格式搜索,分析和可视化从任何源生成的日志,这种做法称为集中式日志记录。在尝试识别服务器或...
    Daisy小朋友阅读 3,393评论 0 4
  • 1、ELK平台介绍 在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段:以下内容来自:http://bai...
    螺旋上升的世界阅读 2,757评论 0 20
  • 我的眼睛到底怎么办啊。遇到了这么多问题我也不知道咋整。说出问题就出问题,不敢用劲去想很多事。想做的事情都做不成。关...
    起风的阡陌阅读 53评论 0 0
  • 昨天看完球后睡了两个小时起床,路上懒得玩NS了就继续看图灵的秘密。 赢球惯例,上午各种刷reddit和虎扑找梗(。...
    真昼之月阅读 94评论 0 0
  • 陆瑜坐在梳妆镜前用化妆棉蘸了化妆水轻轻拍打着脸颊。镜子里映出她精致的容颜:微微眯起的狭长的眼睛,年逾四十仍然不见细...
    南路阅读 156评论 0 0