1. 程式人生 > >elasticsearch+kibana實現許可權控制-search-guard

elasticsearch+kibana實現許可權控制-search-guard

一、版本
     1.elasticsearch 5.2.0
     2.kibana 5.2.0
二、es安裝searchguard外掛
     1.進入ES_HOME目錄,執行
       bin/elasticsearch-plugin install -b com.floragunn:search-guard-5:5.2.0-12
       search-guard-5:5.2.0-12(:後為版本號,選擇與自己版本匹配的search-guard外掛)
三、kibana安裝searchguard
     1.下載kibana search-guard外掛
       https://github.com/floragunncom/search-guard-kibana-plugin/releases/download/v5.2.0-3/searchguard-kibana-5.2.0-3.zip
     2.通過ftp工具上傳至KIBANA_HOME目錄下
     3.進入KIBANA_HOME目錄,執行
       bin/kibana-plugin install file://$KIBANA_HOME/searchguard-kibana-5.2.0-3.zip
       searchguard-kibana-5.2.0-3.zip(-5.2.0-3後為版本號,選擇與自己版本匹配的search-guard外掛)
四、下載search-guard-ssl
     1.進入ES_HOME目錄,執行
       git clone https://github.com/floragunncom/search-guard-ssl.git
     生成search-guard-ssl目錄
     2.進入search-guard-ssl/example-pki-scripts/目錄
       cd search-guard-ssl/example-pki-scripts/
=======說明====================  
     下面有三個指令碼,分別為
     gen_client_node_cert.sh 建立客戶端證書
     gen_node_cert.sh        建立節點證書
     gen_root_ca.sh          建立根證書
===============================
五、修改指令碼檔案
     1.vim gen_client_node_cert.sh
     將-dname "CN=$CLIENT_NAME, OU=client, O=client, L=Test, C=DE"
     改為:-dname "CN=$CLIENT_NAME"
     2.vim gen_node_cert.sh
     將-dname "CN=$NODE_NAME.example.com, OU=SSL, O=Test, L=Test, C=DE" \
     改為:-dname "CN=$NODE_NAME"    
     3.vim example.sh(全部修改)
     #!/bin/bash
     set -e
     ./clean.sh
     ./gen_root_ca.sh password password 
     ./gen_node_cert.sh 0 password  password 
     ./gen_node_cert.sh 1 password  password 
     ./gen_client_node_cert.sh admin password password 
     (password自定義)
=====說明======================= 
    1.gen_root_ca.sh 123 123
    第一個引數為CA_PASS,即CA密碼(根證書密碼)
    第二個引數為TS_PASS,即TS密碼(truststore,信任證書密碼)
    2.gen_node_cert.sh 0 123 123
    第一個引數為node編號,生成證書後的檔名為node-0*
    第二個引數為KS_PASS(keystore檔案密碼)
    第三個引數為CA_PASS
    3.gen_client_node_cert.sh admin 123
    第一個引數為客戶端節點名稱,生成證書後的檔名為admin*
    第二個引數為KS_PASS
    第三個引數為CA_PASS
=================================
六、生成證書和密匙庫
    1.執行./example.sh
    2.將example-pki-scripts資料夾中的node-0-keystore.jks和truststore.jks複製到elasticsearch的配置目錄中
      cp truststore.jks node-0-keystore.jks $ES_HOME/config/
    3.將example-pki-scripts資料夾中的admin-keystore.jks和truststore.jks複製到elasticsearch程式目錄下的plugins/search-guard-5/sgconfig下
      cp truststore.jks admin-keystore.jks $ES_HOME/plugins/search-guard-5/sgconfig
七、修改配置檔案
1.vim  ES_HOME/config/elasticsearch.yml  新增如下資訊
 searchguard.ssl.transport.enabled: true
    searchguard.ssl.transport.keystore_filepath: node-0-keystore.jks
    searchguard.ssl.transport.keystore_password: changeit
    searchguard.ssl.transport.truststore_filepath: truststore.jks
    searchguard.ssl.transport.truststore_password: changeit
    searchguard.ssl.transport.enforce_hostname_verification: false
    searchguard.authcz.admin_dn:
            - "CN=admin, OU=client, O=client, L=Test, C=DE"  
  2.vim KIBANA_HOME/config/kibana.yml 修改如下資訊
    elasticsearch.username: "kibanaserver"
    elasticsearch.password: "kibanaserver"
    elasticsearch.ssl.verify: false
八、啟動es,並將相關配置初始化寫入es中
 1.ES_HOME/bin/elasticsearch -d
    2.cd ES_HOME/plugins/search-guard-5/
 3.tools/sgadmin.sh -ts ES_HOME/config/truststore.jks -tspass password -ks sgconfig/kirk-keystore.jks -kspass password -cd sgconfig/ -icl -nhnv -h hostname/IP
九、啟動kibana,並驗證
 1.nohup KIBANA_HOME/bin/kibana &
 2.訪問127.0.0.1:5601 
      跳出登陸框,輸入使用者名稱和密碼   admin/admin
      進入kibana使用者介面即成功
    3.或者直接訪問es:127.0.0.1:9200
      跳出登陸框,輸入使用者名稱和密碼   admin/admin
      返回叢集資訊即成功
=======說明======================
    searchguard 主要有5個配置檔案在ES_HOME/plugins/search-guard-5/sgconfig 下:
    sg_config.yml:主配置檔案不需要做改動。
    sg_internal_users.yml:本地使用者檔案,定義使用者密碼以及對應的許可權。
    sg_roles.yml:許可權配置檔案
    sg_roles_mapping.yml:定義使用者的對映關係
    sg_action_groups.yml:定義許可權
=================================
十、自定義使用者(sloan)
    1.cd ES_HOME/plugins/search-guard-5/
    2.tools/hash.sh -p password
    3.vim sgconfig/sg_internal_users.yml  新增如下資訊
      sloan:
        hash:************************************************************** (hash.sh生成的碼)
    4.vim sgconfig/sg_roles_mapping.yml  在
      sg_all_access:
         users:
          - admin
      後加上-sloan
    5.重新初始化資料,參考第八步
    6.參考第九步進行驗證

相關推薦

elasticsearch+kibana實現許可權控制-search-guard

一、版本      1.elasticsearch 5.2.0      2.kibana 5.2.0 二、es安裝searchguard外掛      1.進入ES_HOME目錄,執行        bin/elasticsearch-plugin install -b

Ubuntu16.04下安裝elasticsearch+kibana實現php客戶端的中文分詞

lba 實例 exc common adding creat 啟動服務 uid dbms 1.下載安裝elasticsearch和kibana wget https://artifacts.elastic.co/downloads/elasticsearch/elasti

Spring Boot 整合 Shiro實現許可權控制,親測可用,附帶sql

前提: 本文主要講解Spring Boot 與 Shiro的整合 與許可權控制的實現方式(主要以程式碼實現功能為主),主要用到的技術Spring Boot+Shiro+Jpa(通過Maven構建),並不會涉及到Shiro框架的原始碼分析 如果有想要學習Shiro框架的小夥伴可以去http://shiro.

Shiro——實現許可權控制demo思路(包含自定義標籤hasAnyPermission)

在很多系統中需要使用許可權控制,來控制不同角色的人訪問不同的資源。表達能力不好,不喜勿噴! 環境:eclipse4.5.2+oracle11g+hibernate4+spring4+shiro+jboss 原始碼(工程)+ 資料表sql(包含初始化資料)+hibernat

Taurus.MVC 2.2.3.4 :WebAPI 實現許可權控制認證(及功能增強說明)

前言: 前兩天,當我還在老家收拾行旅,準備回廣州,為IT連的創業再戰365天時, 有網友扣上問:Taurus.MVC中如何實現認證和許可權控制,最好能做個小例子。 我一不小心回了句:等回廣州我再寫篇文章...... 然後,今天就來補文章了〜〜〜〜 Taurus.MVC Nuget 更新: 寫文之前

第7篇:ui-router登入檢查實現許可權控制

做專案時用到了前端登入檢查實現使用者許可權控制,在angularJS外掛中用到了ui-router,可以利用本地儲存實現對登入狀態的監聽,實現如下: 1)登入成功,將登入資訊寫入本地儲存: $.ajax({ type: 'POST',

在Spring Boot中使用Spring Security實現許可權控制

Spring Boot框架我們前面已經介紹了很多了,相信看了前面的部落格的小夥伴對Spring Boot應該有一個大致的瞭解了吧,如果有小夥伴對Spring Boot尚不熟悉,可以先移步這裡從SpringMVC到Spring Boot,老司機請略過。OK,那我們

springboot整合shiro 實現許可權控制

shiro apache shiro 是一個輕量級的身份驗證與授權框架,與spring security 相比較,簡單易用,靈活性高,springboot本身是提供了對security的支援,畢竟是自家的東西。springboot暫時沒有整合shiro,這得自

ASP.net Menu控制元件動態新增選單項實現許可權控制

      對於動態選單生成,在很多具有許可權控制的專案中非常常見。最近遇到一個需求就是不同使用者具有不同許可權,該許可權是頁面級的,所以需要根據不同使用者的許可權情況動態生成選單項。        首先,我把選單項中的內容先儲存在一個XML裡面,在載入模板頁時只需根據查詢

Spring AOP自定義註解實現許可權控制

1.建立註解類,controller控制層使用該註解進行許可權控制使用 import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.R

SpringBoot中使用Spring Security實現許可權控制

Spring Security,這是一個專門針對基於Spring的專案的安全框架,它主要是利用了AOP來實現的。以前在Spring框架中使用Spring Security需要我們進行大量的XML配置,但是,Spring Boot針對Spring Security

spring boot註解實現許可權控制

1、自定義註解 Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface RoleCheck { String[] roles() default

在前後端分離的專案中,後臺使用shiro框架時,怎樣使用它的會話管理系統(session),從而實現許可權控制

在前後端分離的專案中,ajax跨域和儲存使用者資訊是其中的重點和難點。 如果在後臺使用shiro框架來進行許可權控制,就需要用到cookie+session的模式來儲存使用者的資訊。 在前一篇文章《在前後端分離的專案中,ajax跨域請求怎樣附帶cookie》中,我具體寫了怎

SPRING註解形式實現許可權控制

今天看了一下黑馬程式設計師的視訊,上面講到一個使用spring AOP + 自定義註解的方式來實現許可權控制的一個小例子,個人覺得還是可以借鑑,整理出來與大家分享。 需求:service層有一些方法,這些方法需要不同的許可權才能訪問。 實現方案:自定義一個Privilege

springmvc簡單實現許可權控制

用過了Spring Security,一般都不會採用這種簡單的自定義方式.自定義當然靈活自由,越要完善,也就意味做的工作越多.使用框架,別人考慮得相對周到,比如spring security的防止攻擊就有session

通過代理實現許可權控制

許可權控制在很多系統中都會用到,其實實現許可權控制方法有很多,這裡給大家介紹一下通過代理模式實現許可權控制。Spring中的AOP、Apache的shiro開源專案,其實都是基於此的。 1、實體類Pe

BigInteger.setBit和BigInteger.testBit實現許可權控制

java.math.BigInteger.setBit(int n) 返回一個BigInteger,其值相當於BigInteger與指定的設定位。它計算 (this | (1<<n)).java.math.BigInteger.testBit(int n) 當且僅

基於Vue的addRoutes實現許可權控制

前言從今年3月到現在入門前端也已經有兩個月了,這兩個月在自學的過程中遇到了許多問題也解決了其中一部分,但是現在才開始意識到把學習過程的問題整理到CSDN上。最近老師佈置了基於Vue的許可權控制,網上查閱了許多部落格,例如“前端路上":這篇文章提到了Vue2.0以上使用的add

【Spring MVC】教程——使用攔截器實現許可權控制

之前一直都在用mvc的攔截器許可權控制,後來上網也研究了一些這方面的知識,下面就直接分享下我對mvc的攔截器的理解,通過專案來分析吧。。。 1、首先準備對應的架包 2、看看專案的架構 3、基本的web.xml檔案 ? 1 2 3 4 5 6 7 8 9 10 11

centOS搭建SVN伺服器實現許可權控制及linux與windows客戶端的使用、排錯

目錄 1.在centOS上搭建svn_server 1.查詢是否已安裝軟體包及安裝軟體包  rpm -qa subversion #查詢是否安裝 yum -y install subversion