(转)Elasticsearch search-guard 插件部署
我之前写了ELK+shield的部署文档,由于shield是商业收费的,很多人都推崇开源项目search-guard来做ELK的安全组件,准确来说是elasticsearch的安全组件。search-guard的部署很简单,但是开始着手弄,完全不了解的情况下还是会踩一些坑,加上网上对新版本使用介绍少,所以我决定写一遍search-guard的部署文档。
search-guard插件包含两部分,search-guard-ssl和search-guard-2两个插件(官网提供了一个特殊的包,包含了search-guard和elasticsearch的一个压缩包,里面东西齐全,但是有点乱,还有windows的执行文件,所以我还是一步步安装插件)。
我们先安装search-guard-ssl。按照以下步骤安装:
安装search-guard-ssl插件
切换到elasticsearch的目录(一般是/usr/share/elasticsearch)
命令安装插件:
sudo bin/plugin install com.floragunn/search-guard-ssl/2.3.4.16
- 1
- 1
注意版本,这里elasticsearch的版本就是2.3.4,它是要跟search-guard的版本进行对应的。
克隆search-guard-ssl项目,生成相关证书
克隆项目命令:
sudo git clone https://github.com/floragunncom/search-guard-ssl.git
- 1
- 1
一般来说创建数字证书流程如下:
创建证书流程:
1.创建ROOT CA(根证书/CA认证机构)
2.应用服务器创建CSR(证书签名请求文件),同时会创建好自己的密钥对(公钥和私钥)
3.将CSR发送到CA认证机构
4.CA机构将返回一个数字签名证书
首先切换到刚刚克隆的search-guard-ssl的项目目录下
修改etc目录下的配置文件
example-pki-scripts/etc/root-ca.conf
example-pki-scripts/etc/signing-ca.conf
根据自己情况改为公司相关信息等
利用脚本,写入密码,生成根证书
sudo ./gen_root_ca.sh paswd paswd
- 1
- 1
search-guard-ssl 还提供了以下脚本
gen_node_cert.sh
可以修改成自己的信息,生成相应服务器证书,里面包含了上述生成数字证书的过程。
gen_client_node_cert.sh
同理生成客户端数字证书。这里记住-dname参数后面的信息,后面认证客户端,就靠这个。
修改完脚本,就可以执行脚本,就会生成相关证书了。
- 配置ssl
将生成的证书,keystore.jks 和 truststore.jks复制到/etc/elasticsearch目录下,然后配置elasticsearch.yml添加配置
searchguard.ssl.transport.enabled: true
searchguard.ssl.transport.keystore_filepath: example-keystore.jks
searchguard.ssl.transport.keystore_password: paswd
searchguard.ssl.transport.truststore_filepath: truststore.jks
searchguard.ssl.transport.truststore_password: paswd
searchguard.ssl.transport.enforce_hostname_verification: false
searchguard.ssl.transport.resolve_hostname: false
http配置,这里我只是为了测试方便,配置完,应该设置为true
searchguard.ssl.http.enabled: false
searchguard.ssl.http.keystore_filepath: example-keystore.jks
searchguard.ssl.http.keystore_password: paswd
searchguard.ssl.http.truststore_filepath: truststore.jks
searchguard.ssl.http.truststore_password: paswd
searchguard.allow_all_from_loopback: true
这里注意,下面的配置一定要和签的客户端证书一致,否则不能插入配置
searchguard.authcz.admin_dn:
- CN=example, OU=client, O=client, L=Test, C=DE
安装search-guard-2插件
- 安装插件
sudo bin/plugin install -b com.floragunn/search-guard-2/2.3.4.4
- 1
- 1
这里同样,版本注意与elasticsearch对应。
- 修改配置并插入
切换目录到/usr/share/elasticsearch/plugins/search-guard-2/
修改该目录下的sgconfig目下的配置文件
这里和shield类似,修改用户,角色,角色映射几个配置文件即可。
注意,这里用户密码,可以通过plugins下的tools/hash.sh工具生成密码的hash加密文本
配置文件修改完成后,通过命令将配置插入到elasticsearh中,
sudo tools/sgadmin.sh -cd sgconfig/ -ks sgconfig/example-keystore.jks -kspass paswd -ts sgconfig/truststore.jks -tspass paswd -nhnv
- 1
- 1
需要注意的是这时候elasticsearch的服务必须是运行状态。如果插入配置失败,检查配置文件,比如前面提到的,生成客户端证书的时候dname的参数 必须与配置文件中searchguard.authcz.admin_dn:下的认证列表进行对应。
接下来就是配置kibana和logstash的了。
注意:
为了logstash通过ssl连接elasticsearch,需要将elasticsearch的证书导入到Java的cacerts中
其中要求必须是 x509标准的证书
错误提示如:keytool 错误: java.lang.Exception: 所输入的不是 X.509 证书
这时候就需要把我们的jks的证书做如下转换
sudo keytool -export -alias example -file example.der -keystore example.jks
sudo openssl x509 -inform der example.der -out example.pem
sudo openssl x509 -outform der -in example.pem -out example.crt
sudo keytool -importcert -file example.crt -alias example -keystore cacerts -storepass changeit
(转)Elasticsearch search-guard 插件部署的更多相关文章
- Elasticsearch 5.0 安装 Search Guard 5 插件 (五)
一.Search Guard 简介 Search Guard 是 Elasticsearch 的安全插件.它为后端系统(如LDAP或Kerberos)提供身份验证和授权,并向Elasticsearc ...
- Elasticsearch 5.0 安装 Search Guard 5 插件
一.Search Guard 简介 Search Guard 是 Elasticsearch 的安全插件.它为后端系统(如LDAP或Kerberos)提供身份验证和授权,并向Elasticsearc ...
- (转) Elasticsearch 5.0 安装 Search Guard 5 插件
一.Search Guard 简介 Search Guard 是 Elasticsearch 的安全插件.它为后端系统(如LDAP或Kerberos)提供身份验证和授权,并向Elasticsearc ...
- elasticsearch安装与使用(5)-- search guard安装与配置
一.安装search guard插件必须要安装两部分: ①search-guard-xx ②search-guard-ssl (XX指的是与elasticsearch引擎对应的版本) github地址 ...
- elasticsearch 6.x 安装search guard
前言 es之前版本一直无用户验证功能,不过官方有提供一x-pack,但是问题是付费.在es的6.3.2版本中,已经集成了x-pack,虽然es团队已经对x-pack开源,但是在该版本中如果需要使用到安 ...
- ELK之安装了search guard认证后安装elasticsearch-head
安装searc guard参考https://www.cnblogs.com/minseo/p/10576126.html 安装elasticsearch-head参考 https://www.cnb ...
- ELK之elasticsearch6安装认证模块search guard
参考:https://www.cnblogs.com/marility/p/9392645.html 1,安装环境及软件版本 程序 版本 安装方式 elasticsearch 6.3.1 rpm ...
- Elasticsearch介绍及安装部署
本节内容: Elasticsearch介绍 Elasticsearch集群安装部署 Elasticsearch优化 安装插件:中文分词器ik 一.Elasticsearch介绍 Elasticsear ...
- ELK教程1:ElasticSearch集群的部署ELK
在分布式系统中,应用数量众多,应用调用链复杂,常常使用ELK作为日志收集.分析和展示的组件.本篇文章将讲讲解如何部署ELK,然后讲解如何使用Filebeat采集Spring Boot的日志输出到Log ...
- Elasticsearch 5.0Head插件
Elasticsearch 5.0 —— Head插件部署指南 使用ES的基本都会使用过head,但是版本升级到5.0后,head插件就不好使了.下面就看看如何在5.0中启动Head插件吧! 官方 ...
随机推荐
- Java程序设计 第16周 课堂实践 —— 数据库3
Java程序设计 第16周 课堂实践 -- 数据库3 课堂实践任务3 查询world数据库,获得New Jessey州所有城市的总人口数. 代码分析 实现查询数据库需要我们修改MessageDAO.j ...
- 20155302 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
20155302 <Java程序设计>实验一(Java开发环境的熟悉)实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Jav ...
- 20155316 2016-2017-2 《Java程序设计》第2周学习总结
教材学习内容总结 学习主要内容:基本类型介绍及流程控制简介 关键点:关键记住JAVA的大体框架,可以类比C语言结合着记.相较于C不同且值得关注的主要信息有: 基本类型的不同:byte.boolean. ...
- 20155330 2016-2017-2《Java程序设计》课程总结
20155330 2016-2017-2<Java程序设计>课程总结 目录 每周作业链接汇总 实验报告链接汇总 代码托管 课堂项目实践 课程收获与不足 问卷调查 给出你的总结中涉及到的链接 ...
- Easyui 控件的初始化方法
问题: Easyui的控件在初始化的时候有两种方式: 页面指定class属性 js里初始化该id为easyui的控件 那么问题是: 如果页面不指定class属性,只是使用js初始化的话,会导致无法用控 ...
- [arc065E]Manhattan Compass[曼哈顿距离和切比雪夫距离转换]
Description 传送门 Solution 题目要求的是曼达顿距离,对于每个点(x,y),我们把它变为(x-y,x+y),就可以转换成求切比雪夫距离了. 证明如下:$max(\left | (x ...
- LOJ #2585. 「APIO2018」新家
#2585. 「APIO2018」新家 https://loj.ac/problem/2585 分析: 线段树+二分. 首先看怎样数颜色,正常的时候,离线扫一遍右端点,每次只记录最右边的点,然后查询左 ...
- jenkins自动打包部署linux
需要用到2个插件. git parameter:用于参数化构建时选择分支. Publish Over SSH:用于上传jar包和操作tomcat 1.先在系统设置添加要连接的linux服务器,使用用户 ...
- 关于scrum敏捷测试
关于scrum的一些定义 敏捷软件开发方法是一种把新增功能通过较小的循环逐步迭代添加到项目中(的项目管理方法),工作是由自我组织的团队以高效合作的方式拥抱和适应变化来保证客户需求被真正满足的方式来完成 ...
- 关于XSS的一些知识点
安全套接层(SSL)无助于减少XSS攻击.当Web浏览器使用SSL的时候,在网络中传送的数据是经过加密的,但是因为XSS攻击是在客户机器上发生的,所以数据已经被解密了,这时,攻击者仍然能够利用XSS安 ...