【这是一猿小讲的第 76 篇原创分享】

近日一则 ElasticSearch 数据泄露的讯息映入眼帘,搞的心发毛。

之前咱们在《傻瓜也能玩转日志归集》中一起认识、体验过 ELK 轮子,在微服务盛行的当下,做日志归集分析效果确实杠杠滴,但是有一点不得不提,那就是它们都在疯狂的裸奔。

01. 那些年做过的事儿


场景一:访问 ElasticSearch 畅通无阻。

试验效果,控制台输入 curl http://localhost:9200/ 或者浏览器直接访问 http://localhost:9200/,效果如下。

只要拿到访问链接,就相当于一库在手,应有尽有。

场景二:访问 Kibana 畅通无阻。

试验效果,在浏览器中访问 http://localhost:5601,效果图如下。

Kibana 访问居然也是很顺畅,毫无遮拦,那岂不是拥有这个链接,也可以为所欲为,就可以把 ElasticSearch 搞个底朝天!

面对上面两个场景,那么就不得不寻觅一款能对 ElasticSearch 加入一道防线的开源轮子。

02. 邂逅搜索卫士


为了让大家初步认识一下 Search Guard 是个啥?肆意从 Search Guard 官网截一图,大概就是说 Search Guard 是适用于 Elasticsearch 和整个 ELK 技术栈的开源安全插件,提供加密,身份验证,授权,审核日志记录等合规性功能

Search Guard 针对 Elasticsearch 提供不同版本的插件支持,可谓是好马配好鞍。

03. 香不香,尝后才知道


上次我们演示日志归集的版本是 7.1.1,那本次不妨继续以此版本为基础进行演示。

一、让ElasticSearch拥抱Search Guard。

第一步:下载安装 Search Guard。

Search Guard 提供两种安装方式,进入 Elasticsearch 安装目录。

方式一:在线安装

bin/elasticsearch-plugin install -b com.floragunn:search-guard-7:7.1.1-37.0.0

方式二:离线安装(本次使用方式)

下载

https://releases.floragunn.com/search-guard-7/7.1.1-37.0.0/search-guard-7-7.1.1-37.0.0.zip

执行

bin/elasticsearch-plugin install -b file:///你的/目录/search-guard-7-7.1.1-37.0.0.zip

本次采取离线安装方式,效果如下。

第二步:快速安装(忽略细节)

1. 进入 Elasticsearch 下的 search-guard 下的 tools目录

cd  <Elasticsearch directory>/plugins/search-guard-7/tools

2. 执行./install_demo_configuration.sh

如果提示没有权限,请关注文末的“问题汇总”,连续输入3个 Y

  • 是否安装用于演示证书;【输入 Y】

  • 是否自动初始化 Search Guard;【输入 Y】

  • 是否启用集群模式;【输入 Y】

第三步:到底香不香?

浏览器访问 https://localhost:9200/_searchguard/authinfo,果不其然有了一道拦截,让输入用户名密码才能访问。

用户名输入 admin,密码也输入 admin,信息就出来了(不用纠结是啥)。

至此,再访问 http://localhost:9200/ 就不会那么畅通无阻了,开篇提到场景一的问题也就解决了,因为 Search Guard 在访问 ElasticSearch 的路上,加了一道华丽丽的登录验证的屏障。

二、让 Search Guard 进入 Kibana 的怀抱。

面对开篇提到场景二 Kibana 访问畅通无阻的问题,Search Guard 有没有解呢?接下来让我们拭目以待。

第一步:下载安装与 Kibana 版本匹配的 Search Guard Kibana插件包。同样是两种安装方式,我们先进入 Kibana 安装目录。

方式一:在线安装

bin/kibana-plugin install https://releases.floragunn.com/search-guard-kibana-plugin/7.1.1-36.1.0/search-guard-kibana-plugin-7.1.1-36.1.0.zip

方式二:离线安装(本次使用方式)

下载:

https://releases.floragunn.com/search-guard-kibana-plugin/7.1.1-36.1.0/search-guard-kibana-plugin-7.1.1-36.1.0.zip

执行:

bin/kibana-plugin install file:///你的/目录/search-guard-kibana-plugin-7.1.1-36.1.0.zip

本次使用离线方式安装,安装效果如下。

第二步:停止 Kibana,如果 Kibana 已经启动,不妨先停一会。

第三步:修改 kibana.yml 配置文件。

在 kibana.yml 上面修改是最合适的,但是鉴于上次咱们体验时未做调整,考虑到你 copy 的方便,本次就直接在 kibana.yml 文件后面追加如下内容。

# Use HTTPS instead of HTTP
elasticsearch.hosts: "https://localhost:9200"# Configure the Kibana internal server user
elasticsearch.username: "kibanaserver"
elasticsearch.password: "kibanaserver"# Disable SSL verification because we use self-signed demo certificates
elasticsearch.ssl.verificationMode: none# Whitelist the Search Guard Multi Tenancy Header
elasticsearch.requestHeadersWhitelist: ["Authorization","sgtenant"]# xpack config
xpack.security.enabled: false

第四步:启动 Kibana,观察控制台日志输出。输入 bin/kibana,日志输出效果如下。

第五步:到底香不香?

输入http://localhost:5601 一探究竟,不负众望,提示输入用户名、密码,效果如下。

此时用户名我们输入 admin,密码输入 admin,点击登录,效果如下。

Kibana 确实多了一些东东,貌似有了权限相关的内容出来了(本次不细究)。接下来点击右上角的退出图标,果真跳转到登录页面,确实好使!

至此,我们又知道了 Search Guard Kibana 插件向 Kibana 添加了身份验证以及配置的界面,让权限配置成为可能,并且让我们开篇场景二的问题也得以解决。

04. 一些疑问?


由于 Elasticsearch 加入了身份验证,面对轻量级采集(Beats + Elasticsearch + Kibana)方案下,Beats 访问 ElasticSearch 的方式要怎么调整?

以 filebeat 为例,不妨先看看 filebeat.yml 默认配置内容。

此时就需要开启 https 协议传入,配置用户名、密码。

# Optional protocol and basic auth credentials.protocol: "https"username: "admin"password: "admin"ssl.verification_mode: "none"

启动 filebeat,输入命令 ./filebeat -e -c filebeat.yml 先观察控制台日志输出,然后再去 Kibana 确认一下对应的索引是否创建了。

至此,轻量级的采集方案中的采集 Beats 调整应该清晰了。

面对重量级采集方案(Beats + Kafka + Logstash + Elasticsearch + Kibana)的模式下该如何修改呢?由于 Elasticsearch 加入了身份验证,那么 Beats 无需做任何调整,只需把 Logstash 访问 Elasticsearch 的方式就要进行调整即可,本次不深究啦,感兴趣的参考如下链接去体验。

https://docs.search-guard.com/latest/elasticsearch-logstash-search-guard#using-logstash-with-search-guard

05.  问题汇总


问题一:

执行 ./install_demo_configuration.sh 提示

-bash: ./install_demo_configuration.sh: Permission denied

解决:

chmod u+x install_demo_configuration.sh

问题二:

启动 kibana 时提示如下信息:

[error][status][plugin:searchguard@7.1.1-36.1.0] Status changed from uninitialized to red - X-Pack Security needs to be disabled for Search Guard to work properly. Please set 'xpack.security.enabled' to false in your kibana.yml

解决:

kibana.yml 加入配置 xpack.security.enabled: false

06. 写在最后


随着一条条配置、一步步体验,Search Guard 让 ELK 技术栈的轮子不再疯狂的裸奔,品尝之后也确实香。

本次只是带着大家进行一次快速的体验,很多细节都没有深究,例如如何修改 Kibana 中 Search Guard 默认密码?如何使用自己生成的证书;权限该如何配置等等一系列的问题,有机会再续吧。

好了,今天不烧脑的分享,到这就结束啦,希望你们能够喜欢

推荐阅读:

业务开发中你用到了哪些算法(续)?

啥是数据倾斜?就是数据歪啦!

搜索卫士保驾护航,开源轮子不裸奔相关推荐

  1. kicad 排针_xconch: 神奇海螺,是时候该结束开发板裸奔的时代了。采用堆叠设计,拥有漂亮外观及超强扩展性。一款完全开源的结构及通用硬件扩展平台,旨在大家能更欢乐的DIY。...

    神奇海螺 简介 是时候该结束开发板裸奔的时代了.采用堆叠设计,拥有漂亮外观及超强扩展性.一款完全开源的结构及通用硬件扩展平台,旨在大家能更欢乐的DIY. 名称的由来 神奇海螺,源自网友word天lym ...

  2. Sandboxie Plus v0.9.5 / v5.51.5 电脑裸奔沙盘工具箱开源版

    原文链接:https://www.ypojie.com/3105.html 电脑裸奔必备工具 沙盘 Sandboxie 老毛子最新直装正式版.无内存泄露!由亿破姐收集亲测发布,之前的沙盘 Sandbo ...

  3. 喜忧参半的AI,“裸奔”之下的隐私焦虑

    AI给用户带来了便捷,同时也给不法分子制造了可乘之机. 最近有一件涉及隐私的"小事"颇让人回味. 某网友在微博上盛赞了支付宝的界面模糊功能,让这个小Trick大火了一把. 能有这样 ...

  4. 邮件裸奔,两大加密协议 PGP 与 S/MIME 被曝明文漏洞;DeepMind AI 能让自己拥有像哺乳动物那样的导航能力...

    (点击上方蓝字,快速关注我们) 转自:开源中国.solidot.cnBeta.腾讯科技等 0.邮件裸奔,两大加密协议 PGP 与 S/MIME 被曝明文漏洞 据外媒报道,一位研究人员周日表示,目前互联 ...

  5. 小心,你的账号密码可能在 GitHub 上裸奔!

    公众号关注 "GitHubDaily" 设为 "星标",每天带你逛 GitHub! 去年,疑似 "陕西普通话成绩查询网(sxpth.cn)" ...

  6. 喜忧参半的AI,“裸奔”之下的隐私焦虑 1

    AI给用户带来了便捷,同时也给不法分子制造了可乘之机. 最近有一件涉及隐私的"小事"颇让人回味. 某网友在微博上盛赞了支付宝的界面模糊功能,让这个小Trick大火了一把. 能有这样 ...

  7. 9102年的数据泄漏,裸奔的不只是你的个人信息

    作者:AlfredWu 来源:Alfred数据室 日前,疑似"陕西普通话成绩查询网(sxpth.cn)"由于网站的程序员把所有考生信息(包括照片.身份证.准考证号.院校等)通过硬编 ...

  8. 小米崔宝秋:一家互联网公司没有信息安全团队,就像在“裸奔”!

    7月1日,小米首届安全与隐私宣传月活动顺利落下帷幕.闭幕式上,小米集团副总裁.集团技术委员会主席.小米安全与隐私委员会主席崔宝秋致辞,强调信息安全与隐私保护的重要性,并为宣传月中表现突出的员工和讲师颁 ...

  9. 深圳一 AI 公司人脸数据泄露,超 256万 用户敏感信息在“裸奔”!

    作者 | 琥珀 出品 | AI科技大本营(ID:rgznai100) "专窥大众底裤的公司忘记穿裤就裸奔了--" 不得不说,对于这种运维不够,吃瓜群众来凑的热闹,往往能惹来不少相关 ...

最新文章

  1. 第一篇博客,java学生管理系统(挑战全网最全)
  2. linux系统调用理解之摘录(3)
  3. ABAP webservice运行时的HTTP 307 redirect重定向是怎么来的
  4. 高可用mysql笔记_MySQL笔记-高可用方案
  5. 单例模式、使用getInstance()方法的原因及作用
  6. 设置对话框的小三角方法
  7. python 字节字符串_Python字符串转换为字节,字节转换为字符串
  8. EPSViewer Pro for Mac(矢量图浏览工具)
  9. HTML5、canvas颜色拾取器
  10. android 9坚果r1,坚果R1、小米MIX2S、一加6对比评测 骁龙845旗舰怎么选?
  11. java正则表达式yyyymmdd_java验证日期yyyyMMdd正则表达式,
  12. windows ip管理之netsetman
  13. mac 协议的 类型
  14. Redis(十九)-Redis的数据库与键空间
  15. Apache FTPServer本地部署FTP服务
  16. 【游戏客户端】剧情系统
  17. 运营商拆除2G基站,老家的老人机还有信号吗?
  18. An error occurred while filtering resources
  19. 力扣 167. 两数之和 II - 输入有序数组
  20. 商城类小程序源码,拼团、砍价、秒杀、优惠券,客服系统一套源码全搞定!

热门文章

  1. LineRenderer——画线功能
  2. python多线程并发请求
  3. accounting.js_使用Accounting.js格式化数字
  4. sqlserver数据库一键备份还原(全备份还原)亲测可用
  5. Ubuntu安装Mysql数据库
  6. 无题(2011.11.21)
  7. 在VBA里使用range(cells(),cells()) ,一个容易出错的点:需要注意 range() 和cells() 前都指定好sheet名!
  8. python设计查询余额程序_python实现监控阿里云账户余额功能
  9. TOFEL Speaking 托福口语 —— task1 范例积累
  10. 心想才能事成!不具备任何优势的我这样叩开网易的大门