<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                > ##### [感謝江榕分享](https://www.tuicool.com/articles/6fyU7bU) > ##### [感謝chenzanlong123](http://blog.csdn.net/chenzanlong123/article/details/11784143 "關于truststore和kenstore的區別") 關于truststore和kenstore的區別 ### Search Guard基礎知識 SearchGuard?是Elasticsearch的開源安全套件,提供加密,身份驗證,授權,審計日志記錄和多租戶的整個ELK堆棧。開源版本核心功能: - 節點之間的RPC流量通過 SSL/TLS 傳輸(強制性); - 索引級別訪問控制(重點!); - 權限配置基本與shield保持一致; - 支持restful接口流量加密(可選); #### 個人理解 - Search Guard會將ES包裹起來,其他程序連接ES時,實際是Search Guard在做驗證和權限控制。 - ES的Master/Node節點間的SSL/TLS通訊加密必須配置,但客戶端(Kibana、Logstash、ES-Head等)訪問ES的HTTPS可不配置 - 證書的生成需要使用 Search Guard SSL程序包,需要單獨下載,但該程序無需放在ES的服務器中執行,只使用生成后的證書 - keystore可以看成一個放key的庫,key就是公鑰,私鑰,數字簽名等組成的一個信息。truststore和keystore的性質是一樣的,都是存放key的一個倉庫,區別在于,truststore里存放的是只包含公鑰的數字證書,代表了可以信任的證書,而keystore是包含私鑰的 - Search Guard有Demo腳本,為了更好的理解原理,不要使用 ##### Search Guard部署過程 - 第一階段:實現訪問ES需要用戶名密碼 - 第二節點:Kibana實現用戶名密碼登錄 ##### 涉及插件 >[GitHub鏈接](https://github.com/floragunncom "github鏈接") - search-guard-ssl(生成證書程序) - search-guard(ES插件) - search-guard-kibana-plugin(Kibana插件) ### 部署Search Guard SSL(任意機器) 僅生成證書,無需部署在生產節點,生成后部署到對應節點即可,該文件需備份! 不推薦使用樣例腳本 > [具體版本對照](https://github.com/floragunncom/search-guard-ssl/wiki "版本對照") 腳本依賴openssl 和 keytool ```shell git clone https://github.com/floragunncom/search-guard-ssl.git cd search-guard-ssl/example-pki-scripts ``` #### 證書生成重要概念 因為我們要使用到生產環境,所以我們需要自定義創建證書 - ##### gen_client_node_cert.sh(生成admin-keystore.jks) 生成客戶端和管理員證書,包含客戶端證書的密鑰庫。此證書被配置為管理員證書,名字可以使用sgadmin/admin/ding均可,但名稱要與ES中配置的前綴保持一致(下文中會提到),否則ES啟動時,會報Search Guard密碼錯誤 - ##### gen_node_cert.sh(生成 node-0-keystore.jks) 生成ES節點間通訊的證書,密鑰庫包含節點證書和中間證書。這些密鑰庫可以在所有Elasticsearch節點上使用。 - ##### gen_root_ca.sh(生成truststore.jks) 包含用于簽署所有其他證書的根CA的信任庫 ##### 修改配置 ```shell example-pki-scripts/etc/root-ca.conf example-pki-scripts/etc/signing-ca.conf ``` 腳本會根據這兩個配置生成證書,需要修改如下內容,暫時還不太理解作用,我并沒有修改 ```shell [ ca_dn ] 0.domainComponent = "com" 1.domainComponent = "example" organizationName = "Example Com Inc." organizationalUnitName = "Example Com Inc. Root CA" commonName = "Example Com Inc. Root CA" ``` #### 生成證書 ##### 生成強密碼 ```shell 根CA密碼:NhRxQ3dC3rJZuQFa truststore密碼:siCPVLDYN2BwuYKo keystore密碼:CNByuENniEtkHRfs ``` ##### 生成truststore證書 ```shell #./gen_root_ca.sh capassword_use_a_strong_one truststorepassword ./gen_root_ca.sh NhRxQ3dC3rJZuQFa siCPVLDYN2BwuYKo ``` ##### 生成ES節點通訊證書 > ##### 留下問題?是所有ES用一個,每個ES都用不同的證書 ```shell ./gen_node_cert.sh nodenum keystorepassword capassword_use_a_strong_one ./gen_node_cert.sh 0 CNByuENniEtkHRfs NhRxQ3dC3rJZuQFa ``` ##### 生成客戶端(管理員)證書 ```shell ./gen_client_node_cert.sh clientname keystorepassword capassword_use_a_strong_one ./gen_client_node_cert.sh admin CNByuENniEtkHRfs NhRxQ3dC3rJZuQFa ``` ##### 生成的文件 ```shell #ll /opt/search-guard-ssl/example-pki-scripts/*.jks -rw-r--r-- 1 root root 4164 Nov 10 16:38 admin-keystore.jks -rw-r--r-- 1 root root 4233 Nov 10 16:38 node-0-keystore.jks -rw-r--r-- 1 root root 956 Nov 10 16:37 truststore.jks ``` #### 分發證書 node和truststore證書分發到所有ES的/etc/elasticsearch/目錄下 admin證書,放到管理機上,Search Guard會在Elasticsearch中建立searchguard的索引分片,內部存儲的就是用戶和權限的信息,這些信息只能通過sgadmin.sh腳本進行更新,Search Guard中的邏輯用戶,是不具備查看權限的。具體請看下文 ##### 注意備份整個目錄,后期可能還會生成證書 ### 所有ES節點安裝Search Guard #### 在線安裝 >##### [版本對應關系](https://github.com/floragunncom/search-guard/wiki "版本對應關系") ```shell cd /usr/share/elasticsearch/bin ./elasticsearch-plugin install com.floragunn:search-guard-5:5.6.4-16 ``` search-guard-5:search-guard的版本 5.6.4-16:當前Elasticsearch對應的search-guard版本 #### 離線安裝(推薦) > ##### [zip包下載地址](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22com.floragunn%22%20AND%20a%3A%22search-guard-5%22 "下載地址") ```shell ./elasticsearch-plugin install -b file:///tmp/search-guard-5-5.6.4-16.zip ``` #### 增加ES配置(所有ES) 配置結尾增加 ```shell searchguard.ssl.transport.keystore_filepath: node-0-keystore.jks searchguard.ssl.transport.keystore_password: CNByuENniEtkHRfs searchguard.ssl.transport.truststore_filepath: truststore.jks searchguard.ssl.transport.truststore_password: siCPVLDYN2BwuYKo #enforce_hostname_verification為不強制驗證主機名 searchguard.ssl.transport.enforce_hostname_verification: false #注意CN=admin,必須和admin-keystore.jks中的admin相同 searchguard.authcz.admin_dn: - CN=admin,OU=client,O=client,L=Test, C=DE ``` 重啟ES服務器,如未設置,將無法加入到集群,建議所有ES全部停止后統一配置,避免腦裂 ### 生成searchguard索引分片 > ##### [sgadmin相關參數](http://floragunncom.github.io/search-guard-docs/sgadmin.html "1") ```shell sh /usr/share/elasticsearch/plugins/search-guard-5/tools/sgadmin.sh -h 192.168.0.230 -p 9300 -tspass siCPVLDYN2BwuYKo -kspass CNByuENniEtkHRfs -cd /usr/share/elasticsearch/plugins/search-guard-5/sgconfig -ks /etc/elasticsearch/admin-keystore.jks -ts /etc/elasticsearch/truststore.jks -nhnv -cn es-cluster ``` - 默認要求ES集群狀態至少要為YELLOW,可以使用-arc,–accept-red-cluster跳過 - 早期版本的Search guard是允許使用node證書的,但是新版本已經禁止了,這里的ks需要指定為管理用戶的證書(admin-keystore.jks) - es-cluster為集群名稱 - -nhnv 禁用主機名稱驗證,不要驗證主機名 ```shell ################################### Contacting elasticsearch cluster 'es-cluster' and wait for YELLOW clusterstate ... Clustername: es-cluster Clusterstate: YELLOW Number of nodes: 1 Number of data nodes: 1 searchguard index already exists, so we do not need to create one. Populate config from /usr/share/elasticsearch/plugins/search-guard-5/sgconfig/ Will update 'config' with /usr/share/elasticsearch/plugins/search-guard-5/sgconfig/sg_config.yml SUCC: Configuration for 'config' created or updated Will update 'roles' with /usr/share/elasticsearch/plugins/search-guard-5/sgconfig/sg_roles.yml SUCC: Configuration for 'roles' created or updated Will update 'rolesmapping' with /usr/share/elasticsearch/plugins/search-guard-5/sgconfig/sg_roles_mapping.yml SUCC: Configuration for 'rolesmapping' created or updated Will update 'internalusers' with /usr/share/elasticsearch/plugins/search-guard-5/sgconfig/sg_internal_users.yml SUCC: Configuration for 'internalusers' created or updated Will update 'actiongroups' with /usr/share/elasticsearch/plugins/search-guard-5/sgconfig/sg_action_groups.yml SUCC: Configuration for 'actiongroups' created or updated Done with success ``` SUCC代表更新成功 #### 截至目前,ES各個節點間通訊已經加密;Search Guard已經開始守護ES集群了。但由于Search Guard默認設置了一些用戶,都是弱口令用戶,下一步,我們要進行權限設置以及客戶端(Logstash、Kibana、Head)的訪問設置
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看