参考: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安装

  1. cd /usr/share/elasticsearch/bin/
  2. ./elasticsearch-plugin install com.floragunn:search-guard-6:6.3.1-24.0

  安装的版本查看

 

  查看

  进行demo模式安装

  1. cd /usr/share/elasticsearch/plugins/search-guard-6/tools
  2. bash install_demo_configuration.sh

  安说明输入3个y确认

  重启elasticsearch

  1. systemctl restart elasticsearch

  web访问测试安装是否成功

  1. https://172.16.20.12:9200/_searchguard/authinfo

  注意是https而不是http

  输入默认用户名和密码admin

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

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

  2.2在kibana安装

  首先停止kibana

  1. systemctl stop kibana

  PS:如果不停止kibana直接安装,启动会报错 报错日志 /var/log/meaasge

    如果启动报错了,可以删除kibana插件重新安装

  1. ./kibana-plugin remove searchguard

  1. cd /usr/share/kibana/bin/
  2. ./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

  1. server.port: 5601
  2. server.host: "172.16.20.12"
  3. #server.host: "0.0.0.0"
  4. server.name: "test-es-kibana"
  5. elasticsearch.url: "https://172.16.20.12:9200"
  6. kibana.index: ".kibana"
  7. elasticsearch.username: "kibanaserver"
  8. elasticsearch.password: "kibanaserver"
  9. elasticsearch.ssl.verificationMode: none
  10. elasticsearch.requestHeadersWhitelist: [ "Authorization", "sgtenant" ]
  11. xpack.monitoring.enabled: false
  12. xpack.graph.enabled: false
  13. xpack.ml.enabled: false
  14. xpack.watcher.enabled: false
  15. xpack.security.enabled: false

   PS:elasticsearch配置为https  

   启动kibana通过5601端口访问,输入用户名和密码均为admin

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

  PS:版本6.5.4配置kibana后启动报错

  1. Browserslist: caniuse-lite is outdated. Please run next command `npm update caniuse-lite browserslis

  原因为node版本低4版本,升级为8版本重启kibana即可

  添加只读用户guest

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

  

  配置logstash输入至elasticsearch

  1. /etc/logstash/conf.d/logstash.conf

 

  1. input {
  2. stdin{}
  3. }
  4.  
  5. output {
  6. elasticsearch {
  7. hosts => [ "172.16.20.12:9200" ]
  8. ssl => true
  9. ssl_certificate_verification => false
  10. user => admin
  11. password => admin
  12. index => "logstash_%{+YYYY.MM.dd}"
  13. }
  14.  
  15. stdout {
  16. codec => rubydebug
  17. }
  18. }

  PS:测试标准输出至elasticsearch并输出至屏幕

        需要增加这两个配置  否则启动报错

  1.    ssl => true
  2. ssl_certificate_verification => false

  1.  

启动

  1. /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

  1. cd /tmp
  2. rz
  3. tar -xf search-guard-certificates-8d1c8141-5f8b-4932-b7e2-a7109c400330.tar.gz.tar
  4. cd /tmp/search-guard-certificates
  5. mv * /etc/elasticsearch/key/

  证书文件目录结构如下

  1. [root@prd-elk-logstash-02 key]# tree
  2. .
  3. ├── chain-ca.pem
  4. ├── client-certificates
  5.    ├── CN=demouser.all.pem
  6.    ├── CN=demouser.crtfull.pem
  7.    ├── CN=demouser.crt.pem
  8.    ├── CN=demouser.csr
  9.    ├── CN=demouser.key.pem
  10.    ├── CN=demouser.key.pkcs12
  11.    ├── CN=demouser-keystore.jks
  12.    ├── CN=demouser-keystore.p12
  13.    ├── CN=demouser-signed.pem
  14.    ├── CN=sgadmin.all.pem
  15.    ├── CN=sgadmin.crtfull.pem
  16.    ├── CN=sgadmin.crt.pem
  17.    ├── CN=sgadmin.csr
  18.    ├── CN=sgadmin.key.pem
  19.    ├── CN=sgadmin.key.pkcs12
  20.    ├── CN=sgadmin-keystore.jks
  21.    ├── CN=sgadmin-keystore.p12
  22.    └── CN=sgadmin-signed.pem
  23. ├── node-certificates
  24.    ├── CN=IP-172.16.90.24.crtfull.pem
  25.    ├── CN=IP-172.16.90.24.csr
  26.    ├── CN=IP-172.16.90.24.key.pem
  27.    ├── CN=IP-172.16.90.24.key.pkcs12
  28.    ├── CN=IP-172.16.90.24-keystore.jks
  29.    ├── CN=IP-172.16.90.24-keystore.p12
  30.    └── CN=IP-172.16.90.24-signed.pem
  31. ├── README.txt
  32. ├── root-ca
  33.    ├── root-ca.crt
  34.    ├── root-ca.key
  35.    └── root-ca.pem
  36. ├── root-ca.pem
  37. ├── signing-ca
  38.    ├── signing-ca.crt
  39.    ├── signing-ca.key
  40.    └── signing-ca.pem
  41. ├── truststore.jks
  42. └── truststore.p12
  43.  
  44. 4 directories, 36 files

  安装elsticsearch 插件

  1. cd /usr/share/elasticsearch/bin/
  2. ./elasticsearch-plugin install com.floragunn:search-guard-6:6.5.4-24.2

  以上为在线下载安装,也可以下载好文件使用以下命令安装

  1. /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

  1. cluster.name: hopesz-es
  2. node.name: prd-elk-logstash-02
  3. path.data: /data/es-data
  4. path.logs: /var/log/elasticsearch
  5. bootstrap.memory_lock: false
  6. network.host: 0.0.0.0
  7. http.port: 9200
  8. #集群个节点IP地址,也可以使用els、els.shuaiguoxia.com等名称,需要各节点能够解析
  9. #discovery.zen.ping.unicast.hosts: ["172.16.90.24", "172.16.30.55"]
  10. #集群节点数
  11. #discovery.zen.minimum_master_nodes: 2
  12. http.cors.enabled: true
  13. http.cors.allow-origin: "*"
  14.  
  15. #search guard配置开始
  16. #证书可以在key目录下找到
  17. searchguard.ssl.transport.pemcert_filepath: key/node-certificates/CN=IP-172.16.90.24.crtfull.pem
  18. searchguard.ssl.transport.pemkey_filepath: key/node-certificates/CN=IP-172.16.90.24.key.pem
  19. #密码可以在key下README.txt找到
  20. searchguard.ssl.transport.pemkey_password: 5ea2206b9b1e041bf052
  21. searchguard.ssl.transport.pemtrustedcas_filepath: key/chain-ca.pem
  22. searchguard.ssl.transport.enforce_hostname_verification: false
  23. searchguard.ssl.http.enabled: true
  24. searchguard.ssl.http.pemcert_filepath: key/node-certificates/CN=IP-172.16.90.24.crtfull.pem
  25. searchguard.ssl.http.pemkey_filepath: key/node-certificates/CN=IP-172.16.90.24.key.pem
  26. searchguard.ssl.http.pemkey_password: 5ea2206b9b1e041bf052
  27. searchguard.ssl.http.pemtrustedcas_filepath: key/chain-ca.pem
  28. searchguard.authcz.admin_dn:
  29. - CN=sgadmin
  30. searchguard.audit.type: internal_elasticsearch
  31. searchguard.enable_snapshot_restore_privilege: true
  32. searchguard.check_snapshot_restore_write_privileges: true
  33. searchguard.restapi.roles_enabled: ["sg_all_access"]
  34. cluster.routing.allocation.disk.threshold_enabled: false
  35. node.max_local_storage_nodes: 3
  36. xpack.security.enabled: false
  37. #search guard配置结束

  

  重启elasticsearch报错

  首先检查文件是否存在,如存在则设置权限组为elasticsearch

  1. chown -R elasticsearch.elasticsearch key/

  启动报错

  原因:有志气demo安装的证书需要删除 路径为/etc/elasticsearch

  1. rm -rf kirk-key.pem
  2. rm -rf kirk.pem
  3. rm -rf esnode.pem
  4. rm -rf esnode-key.pem
  5. rm -rf root-ca.pem

  验证是否安装成功,web页面访问输入用户名密码admin admin

  1. https://172.16.90.24:9200/_searchguard/authinfo

  设置权限因子

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

  1. cd /etc/elasticsearch/key/
  2. cp root-ca.pem client-certificates/CN\=sgadmin.key.pem client-certificates/CN\=sgadmin.crtfull.pem /usr/share/elasticsearch/plugins/search-guard-6/tools/
  3. cd /usr/share/elasticsearch/plugins/search-guard-6/tools/
  4. ./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

  1. network.host: 0.0.0.0

  

  初始化搜索保护配置

  1. cd /etc/elasticsearch/key/
  2. cp truststore.jks /usr/share/elasticsearch/plugins/search-guard-6/tools/
  3. cp client-certificates/CN\=sgadmin-keystore.jks /usr/share/elasticsearch/plugins/search-guard-6/tools/
  4. cd /usr/share/elasticsearch/plugins/search-guard-6/tools/
  5. ./sgadmin.sh -ts truststore.jks -tspass e0c2b67ecfc6dad6bc42 -ks CN=sgadmin-keystore.jks -kspass 4abdecb00e4d4891761a -nhnv -icl -cd ../sgconfig/

  安装kibana控件(需要先停止kibana)

  1. cd /usr/share/kibana/bin/
  2. ./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配置文件

  1. server.port: 5601
  2. server.host: "172.16.90.24"
  3. server.name: "prd-elk-logstash-02"
  4. #配置为https
  5. elasticsearch.url: "https://172.16.90.24:9200"
  6. kibana.index: ".kibana"
  7. elasticsearch.username: "kibanaserver"
  8. elasticsearch.password: "kibanaserver"
  9. elasticsearch.ssl.verificationMode: none
  10. elasticsearch.requestHeadersWhitelist: [ "Authorization", "sgtenant" ]
  11. xpack.monitoring.enabled: false
  12. xpack.graph.enabled: false
  13. xpack.ml.enabled: false
  14. xpack.watcher.enabled: false
  15. xpack.security.enabled: false

  启动kibana web页面访问需要输入用户名密码admim即可

  

  配置logstash访问,不同于demo安装的配置需要在logstash配置文件配置如下配置output

  1. output{
  2. if "nginx-prod-log" in [type] {
  3. elasticsearch{
  4. hosts => ["172.16.90.24:9200"]
  5. index => "nginx-prod-log-%{+YYYY.MM}"
  6. ssl => true
  7. ssl_certificate_verification => true
  8. truststore => "/etc/elasticsearch/key/truststore.jks"
  9. truststore_password => "cad3511c129704894bfc"
  10. user => "admin"
  11. password => "admin"
  12. }
  13. #stdout{
  14. # codec => rubydebug
  15. #}
  16. }

  增加以下配置

  PS:truststore密码同样在README.txt可以找到

    truststore密码需要引号 用户名和密码也需要加引号 否则无法启动logstash

    用户名和密码没有加引号报错信息为 ConfigurationError

  

ELK之elasticsearch6安装认证模块search guard的更多相关文章

  1. ELK之安装了search guard认证后安装elasticsearch-head

    安装searc guard参考https://www.cnblogs.com/minseo/p/10576126.html 安装elasticsearch-head参考 https://www.cnb ...

  2. Elasticsearch 5.0 安装 Search Guard 5 插件 (五)

    一.Search Guard 简介 Search Guard  是 Elasticsearch 的安全插件.它为后端系统(如LDAP或Kerberos)提供身份验证和授权,并向Elasticsearc ...

  3. Elasticsearch 5.0 安装 Search Guard 5 插件

    一.Search Guard 简介 Search Guard  是 Elasticsearch 的安全插件.它为后端系统(如LDAP或Kerberos)提供身份验证和授权,并向Elasticsearc ...

  4. elasticsearch安装与使用(5)-- search guard安装与配置

    一.安装search guard插件必须要安装两部分: ①search-guard-xx ②search-guard-ssl (XX指的是与elasticsearch引擎对应的版本) github地址 ...

  5. (转) Elasticsearch 5.0 安装 Search Guard 5 插件

    一.Search Guard 简介 Search Guard  是 Elasticsearch 的安全插件.它为后端系统(如LDAP或Kerberos)提供身份验证和授权,并向Elasticsearc ...

  6. elasticsearch 6.x 安装search guard

    前言 es之前版本一直无用户验证功能,不过官方有提供一x-pack,但是问题是付费.在es的6.3.2版本中,已经集成了x-pack,虽然es团队已经对x-pack开源,但是在该版本中如果需要使用到安 ...

  7. ELK-6.5.3学习笔记–elk基础环境安装

    本文预计阅读时间 13 分钟 文章目录[隐藏] 1,准备工作. 2,安装elasticsearch. 3,安装logstash. 4,安装kibana 以往都是纸上谈兵,毕竟事情也都由部门其他小伙伴承 ...

  8. Linux操作系统 可插拔认证模块PAM(3)

    六.Linux 操作系统安全登陆设计 自己编写PAM 模块并编译成动态链接库so 文件,将其添加进/etc/pam.d/login 文件中实现命令行安全登陆设计,将其添加进/etc/pam.d/lig ...

  9. 【python】用setup安装自定义模块和包

    python解释器查找module进行加载的时候,查找的目录是存放在sys.path变量中的,sys.path变量中包含文件的当前目录.如果你想使用一个存放在其他目录的脚本,或者是其他系统的脚本,你可 ...

随机推荐

  1. 原创:vsphere概念深入系列一:关于vsphere虚拟交换机的端口的数量限制。

    总结出来的概念: vm上有多少个虚拟网卡就被分配了多少个vPort.vswitch缺省情况下有8个vmk端口(vport)保留给vmkernel使用.但是当vport不够的时候也可以被使用. 默认第一 ...

  2. openjudge noi 鸡尾酒疗法

    题目链接:http://noi.openjudge.cn/ch0105/18/ 总时间限制: 1000ms 内存限制: 65536kB 描述 鸡尾酒疗法,原指“高效抗逆转录病毒治疗”(HAART),由 ...

  3. js 引擎 和 html 渲染引擎

  4. unix缓冲

    目的:尽量减少read,write调用的次数. 标准IO提供3种IO: 1.全缓冲.在填满IO缓冲区后才进行实际的IO操作. 2.行缓冲.当输入和输出遇到换行符时,执行IO操作.(设计终端) 3.不带 ...

  5. 【Android】解析Paint类中MaskFilter的使用

    目录结构: contents structure [+] EmbossMaskFilter BlurMaskFilter MaskFilter可以用来指定画笔的边缘效果.如果引用开启硬件加速的话,那么 ...

  6. 记一次数据库参数compatible降级[转]

    转:http://dbzone.iteye.com/blog/1042455 众所周知,Oracle参数compatible 主要用于启用Oracle针对某一版本的新特性.但此参数设置时,只能往上调, ...

  7. linux select函数详解

    linux select函数详解 在Linux中,我们可以使用select函数实现I/O端口的复用,传递给 select函数的参数会告诉内核: •我们所关心的文件描述符 •对每个描述符,我们所关心的状 ...

  8. Socket网络编程--小小网盘程序(4)

    在这一小节中实现了文件的下载,具体的思路是根据用户的uid和用户提供的文件名filename联合两张表,取得md5唯一标识符,然后操作这个标识符对应的文件发送给客户端. 实现下载的小小网盘程序 cli ...

  9. 【Tomcat】面向初级 Web 开发人员的 Tomcat

    Apache Tomcat 应用服务器不再是高级 Web 系统开发人员的专用领域.在本教程中,Sing Li 将向初级 Web 开发人员展示如何利用他们当前的 Java™ 开发技能,使用 Tomcat ...

  10. json-server 详解

    JSON-Server 是一个 Node 模块,运行 Express 服务器,你可以指定一个 json 文件作为 api 的数据源. 安装json-server npm install -g json ...