ELK之elasticsearch6安装认证模块search guard
参考:https://www.cnblogs.com/marility/p/9392645.html
1,安装环境及软件版本

| 程序 | 版本 | 安装方式 |
| elasticsearch | 6.3.1 | rpm |
| kibana | 6.3.1 | rpm |
| java | 1.8.0 | tar |
2,search guard安装
2.1在elasticsearch安装
cd /usr/share/elasticsearch/bin/
./elasticsearch-plugin install com.floragunn:search-guard-6:6.3.1-24.0
安装的版本查看


查看

进行demo模式安装
cd /usr/share/elasticsearch/plugins/search-guard-6/tools
bash install_demo_configuration.sh
安说明输入3个y确认

重启elasticsearch
systemctl restart elasticsearch
web访问测试安装是否成功
https://172.16.20.12:9200/_searchguard/authinfo
注意是https而不是http
输入默认用户名和密码admin

打印admin的json格式则代表安装成功

此时打开kibana出现输入用户名密码提示但是无法输入

2.2在kibana安装
首先停止kibana
systemctl stop kibana
PS:如果不停止kibana直接安装,启动会报错 报错日志 /var/log/meaasge
如果启动报错了,可以删除kibana插件重新安装
./kibana-plugin remove searchguard

cd /usr/share/kibana/bin/
./kibana-plugin install https://search.maven.org/remotecontent?filepath=com/floragunn/search-guard-kibana-plugin/6.3.1-14-beta-1/search-guard-kibana-plugin-6.3.1-14-beta-1.zip
需要安装版本查看

修改kibana配置文件 /etc/kibana/kibana.yml
server.port: 5601
server.host: "172.16.20.12"
#server.host: "0.0.0.0"
server.name: "test-es-kibana"
elasticsearch.url: "https://172.16.20.12:9200"
kibana.index: ".kibana"
elasticsearch.username: "kibanaserver"
elasticsearch.password: "kibanaserver"
elasticsearch.ssl.verificationMode: none
elasticsearch.requestHeadersWhitelist: [ "Authorization", "sgtenant" ]
xpack.monitoring.enabled: false
xpack.graph.enabled: false
xpack.ml.enabled: false
xpack.watcher.enabled: false
xpack.security.enabled: false
PS:elasticsearch配置为https
启动kibana通过5601端口访问,输入用户名和密码均为admin

左侧菜单栏出现search guard代表安装成功

PS:版本6.5.4配置kibana后启动报错
Browserslist: caniuse-lite is outdated. Please run next command `npm update caniuse-lite browserslis
原因为node版本低4版本,升级为8版本重启kibana即可
添加只读用户guest




使用用户guest登录只能读无法编辑

配置logstash输入至elasticsearch
/etc/logstash/conf.d/logstash.conf
input {
stdin{}
}
output {
elasticsearch {
hosts => [ "172.16.20.12:9200" ]
ssl => true
ssl_certificate_verification => false
user => admin
password => admin
index => "logstash_%{+YYYY.MM.dd}"
}
stdout {
codec => rubydebug
}
}
PS:测试标准输出至elasticsearch并输出至屏幕
需要增加这两个配置 否则启动报错
ssl => true
ssl_certificate_verification => false

启动
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/logstash.conf

以上为自动生成证书,下面使用在线生成证书安装search guard
在线生成证书,https://search-guard.com/tls-certificate-generator/

登录刚刚输入的邮箱下载证书,上传至服务器的文件夹/tmp解压缩并把解压后的所有文件放置在文件夹/etc/elsaticsearch/key
cd /tmp
rz
tar -xf search-guard-certificates-8d1c8141-5f8b-4932-b7e2-a7109c400330.tar.gz.tar
cd /tmp/search-guard-certificates
mv * /etc/elasticsearch/key/
证书文件目录结构如下
[root@prd-elk-logstash-02 key]# tree
.
├── chain-ca.pem
├── client-certificates
│ ├── CN=demouser.all.pem
│ ├── CN=demouser.crtfull.pem
│ ├── CN=demouser.crt.pem
│ ├── CN=demouser.csr
│ ├── CN=demouser.key.pem
│ ├── CN=demouser.key.pkcs12
│ ├── CN=demouser-keystore.jks
│ ├── CN=demouser-keystore.p12
│ ├── CN=demouser-signed.pem
│ ├── CN=sgadmin.all.pem
│ ├── CN=sgadmin.crtfull.pem
│ ├── CN=sgadmin.crt.pem
│ ├── CN=sgadmin.csr
│ ├── CN=sgadmin.key.pem
│ ├── CN=sgadmin.key.pkcs12
│ ├── CN=sgadmin-keystore.jks
│ ├── CN=sgadmin-keystore.p12
│ └── CN=sgadmin-signed.pem
├── node-certificates
│ ├── CN=IP-172.16.90.24.crtfull.pem
│ ├── CN=IP-172.16.90.24.csr
│ ├── CN=IP-172.16.90.24.key.pem
│ ├── CN=IP-172.16.90.24.key.pkcs12
│ ├── CN=IP-172.16.90.24-keystore.jks
│ ├── CN=IP-172.16.90.24-keystore.p12
│ └── CN=IP-172.16.90.24-signed.pem
├── README.txt
├── root-ca
│ ├── root-ca.crt
│ ├── root-ca.key
│ └── root-ca.pem
├── root-ca.pem
├── signing-ca
│ ├── signing-ca.crt
│ ├── signing-ca.key
│ └── signing-ca.pem
├── truststore.jks
└── truststore.p12 4 directories, 36 files
安装elsticsearch 插件
cd /usr/share/elasticsearch/bin/
./elasticsearch-plugin install com.floragunn:search-guard-6:6.5.4-24.2
以上为在线下载安装,也可以下载好文件使用以下命令安装
/usr/share/elasticsearch/bin/elasticsearch-plugin install file:///nas/nas/softs/elk/6.6.2/search-guard-6-6.6.2-24.2.zip
安装版本查看
配置elasticsearch支持search gurad
配置文件/etc/elasticsearch/elasticsearch.yml
cluster.name: hopesz-es
node.name: prd-elk-logstash-02
path.data: /data/es-data
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: false
network.host: 0.0.0.0
http.port: 9200
#集群个节点IP地址,也可以使用els、els.shuaiguoxia.com等名称,需要各节点能够解析
#discovery.zen.ping.unicast.hosts: ["172.16.90.24", "172.16.30.55"]
#集群节点数
#discovery.zen.minimum_master_nodes: 2
http.cors.enabled: true
http.cors.allow-origin: "*" #search guard配置开始
#证书可以在key目录下找到
searchguard.ssl.transport.pemcert_filepath: key/node-certificates/CN=IP-172.16.90.24.crtfull.pem
searchguard.ssl.transport.pemkey_filepath: key/node-certificates/CN=IP-172.16.90.24.key.pem
#密码可以在key下README.txt找到
searchguard.ssl.transport.pemkey_password: 5ea2206b9b1e041bf052
searchguard.ssl.transport.pemtrustedcas_filepath: key/chain-ca.pem
searchguard.ssl.transport.enforce_hostname_verification: false
searchguard.ssl.http.enabled: true
searchguard.ssl.http.pemcert_filepath: key/node-certificates/CN=IP-172.16.90.24.crtfull.pem
searchguard.ssl.http.pemkey_filepath: key/node-certificates/CN=IP-172.16.90.24.key.pem
searchguard.ssl.http.pemkey_password: 5ea2206b9b1e041bf052
searchguard.ssl.http.pemtrustedcas_filepath: key/chain-ca.pem
searchguard.authcz.admin_dn:
- CN=sgadmin
searchguard.audit.type: internal_elasticsearch
searchguard.enable_snapshot_restore_privilege: true
searchguard.check_snapshot_restore_write_privileges: true
searchguard.restapi.roles_enabled: ["sg_all_access"]
cluster.routing.allocation.disk.threshold_enabled: false
node.max_local_storage_nodes: 3
xpack.security.enabled: false
#search guard配置结束
重启elasticsearch报错

首先检查文件是否存在,如存在则设置权限组为elasticsearch
chown -R elasticsearch.elasticsearch key/
启动报错

原因:有志气demo安装的证书需要删除 路径为/etc/elasticsearch
rm -rf kirk-key.pem
rm -rf kirk.pem
rm -rf esnode.pem
rm -rf esnode-key.pem
rm -rf root-ca.pem
验证是否安装成功,web页面访问输入用户名密码admin admin
https://172.16.90.24:9200/_searchguard/authinfo

设置权限因子
权限因子密码也可以在README.txt找到

cd /etc/elasticsearch/key/
cp root-ca.pem client-certificates/CN\=sgadmin.key.pem client-certificates/CN\=sgadmin.crtfull.pem /usr/share/elasticsearch/plugins/search-guard-6/tools/
cd /usr/share/elasticsearch/plugins/search-guard-6/tools/
./sgadmin.sh -cacert root-ca.pem -cert CN=sgadmin.crtfull.pem -key CN=sgadmin.key.pem -keypass a756a037271c299fe817 -nhnv -icl -cd ../sgconfig/ -nhnv -icl -cd ../sgconfig/

执行如果报错

修改elaticsearch.yml
network.host: 0.0.0.0
初始化搜索保护配置
cd /etc/elasticsearch/key/
cp truststore.jks /usr/share/elasticsearch/plugins/search-guard-6/tools/
cp client-certificates/CN\=sgadmin-keystore.jks /usr/share/elasticsearch/plugins/search-guard-6/tools/
cd /usr/share/elasticsearch/plugins/search-guard-6/tools/
./sgadmin.sh -ts truststore.jks -tspass e0c2b67ecfc6dad6bc42 -ks CN=sgadmin-keystore.jks -kspass 4abdecb00e4d4891761a -nhnv -icl -cd ../sgconfig/

安装kibana控件(需要先停止kibana)
cd /usr/share/kibana/bin/
./kibana-plugin install https://search.maven.org/remotecontent?filepath=com/floragunn/search-guard-kibana-plugin/6.5.4-18/search-guard-kibana-plugin-6.5.4-18.zip
安装版本查看
修改kibana配置文件
server.port: 5601
server.host: "172.16.90.24"
server.name: "prd-elk-logstash-02"
#配置为https
elasticsearch.url: "https://172.16.90.24:9200"
kibana.index: ".kibana"
elasticsearch.username: "kibanaserver"
elasticsearch.password: "kibanaserver"
elasticsearch.ssl.verificationMode: none
elasticsearch.requestHeadersWhitelist: [ "Authorization", "sgtenant" ]
xpack.monitoring.enabled: false
xpack.graph.enabled: false
xpack.ml.enabled: false
xpack.watcher.enabled: false
xpack.security.enabled: false
启动kibana web页面访问需要输入用户名密码admim即可
配置logstash访问,不同于demo安装的配置需要在logstash配置文件配置如下配置output
output{
if "nginx-prod-log" in [type] {
elasticsearch{
hosts => ["172.16.90.24:9200"]
index => "nginx-prod-log-%{+YYYY.MM}"
ssl => true
ssl_certificate_verification => true
truststore => "/etc/elasticsearch/key/truststore.jks"
truststore_password => "cad3511c129704894bfc"
user => "admin"
password => "admin"
}
#stdout{
# codec => rubydebug
#}
}
增加以下配置

PS:truststore密码同样在README.txt可以找到
truststore密码需要引号 用户名和密码也需要加引号 否则无法启动logstash
用户名和密码没有加引号报错信息为 ConfigurationError

ELK之elasticsearch6安装认证模块search guard的更多相关文章
- ELK之安装了search guard认证后安装elasticsearch-head
安装searc guard参考https://www.cnblogs.com/minseo/p/10576126.html 安装elasticsearch-head参考 https://www.cnb ...
- 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 5.0 安装 Search Guard 5 插件
一.Search Guard 简介 Search Guard 是 Elasticsearch 的安全插件.它为后端系统(如LDAP或Kerberos)提供身份验证和授权,并向Elasticsearc ...
- elasticsearch 6.x 安装search guard
前言 es之前版本一直无用户验证功能,不过官方有提供一x-pack,但是问题是付费.在es的6.3.2版本中,已经集成了x-pack,虽然es团队已经对x-pack开源,但是在该版本中如果需要使用到安 ...
- ELK-6.5.3学习笔记–elk基础环境安装
本文预计阅读时间 13 分钟 文章目录[隐藏] 1,准备工作. 2,安装elasticsearch. 3,安装logstash. 4,安装kibana 以往都是纸上谈兵,毕竟事情也都由部门其他小伙伴承 ...
- Linux操作系统 可插拔认证模块PAM(3)
六.Linux 操作系统安全登陆设计 自己编写PAM 模块并编译成动态链接库so 文件,将其添加进/etc/pam.d/login 文件中实现命令行安全登陆设计,将其添加进/etc/pam.d/lig ...
- 【python】用setup安装自定义模块和包
python解释器查找module进行加载的时候,查找的目录是存放在sys.path变量中的,sys.path变量中包含文件的当前目录.如果你想使用一个存放在其他目录的脚本,或者是其他系统的脚本,你可 ...
随机推荐
- JAVA在Windows使用apache commons-csv导出CSV解决方案
一.添加依赖到pom.xml <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <dependenc ...
- synchronized和lock比较
一.synchronized的实现方案 1.synchronized能够把任何一个非null对象当成锁,实现由两种方式: a.当synchronized作用于非静态方法时,锁住的是当前对象的事例,当s ...
- [剑指Offer]5.二维数组中的查找
题目 在一个二维数组中,每一行都依照从左到右递增的顺序排序,每一列都依照从上到下递增的顺序排序.请完毕一个函数,输入这种一个二维数组和一个整数.推断数组中是否含有该整数. 思路 [算法系列之三十三]杨 ...
- Xcode 插件优缺点对照(推荐 20 款插件)
Xcode 插件优缺点对照(推荐 20 款插件) 2016-01-22 06:16 编辑: lansekuangtu 分类:iOS开发 来源:董铂然 的博客 28 13527 /XCode/" ...
- linux每日命令(32):gzip命令
减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间.gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用.gzip不仅可以用 ...
- 如何快速学习Scala
大数据学习过程中,会学习非常多的技术,但SCALA无疑是必不可少,那我们在大数据技术的学习过程中,如何快速的认识scala,并且学习它,感谢科多大数据公司的余老师提供的详细素材,本人整理成章,希望对你 ...
- Java设计模式六大原则
一.单一职责原则 单一职责原则是最简单的面向对象设计原则,它用于控制类的粒度大小.单一职责原则定义如下: 单一职责原则(Single Responsibility Principle, SRP):一个 ...
- java框架篇---hibernate之CRUD操作
CRUD是指在做计算处理时的增加(Create).读取(Retrieve)(重新得到数据).更新(Update)和删除(Delete)几个单词的首字母简写. 下面列举实例来讲解这几个操作: 实体类: ...
- 【九天教您南方cass 9.1】01 安装Cad和Cass9.1
同学们大家好,欢迎收看由老王测量上班记出品的cass9.1视频课程 今后会将cass的教程目录定期发布在测量空间中. 我是本节课主讲老师九天. [点击索取cass教程]5元立得 (给客服说暗号:“老王 ...
- Spring Security登陆
本文参考或摘录自:http://haohaoxuexi.iteye.com/blog/2154714 在上一篇中使用Spring Security做了一些安全控制,如Spring Security 自 ...