ELK基礎安全實踐總結

ES X-Pack基礎安全如何配置
前提要求ELK版本爲7.1+版本,7.1+版本的基礎安全是免費提供的,這裏必須點贊。

  1. 在elasticsearch中生成證書

    ./bin/elasticsearch-certutil ca -out config/elastic-certificates.p12 -pass ""
    

    或者

    ./bin/elasticsearch-certutil cert \
      --ca elastic-stack-ca.p12 \
      --dns localhost \
      --ip 127.0.0.1,::1 \
      --out config/certs/node-1.p12
    
    # --ca爲CA證書路徑名稱
    # -dns爲節點DNS
    # --ip爲節點ip
    # --out爲生成節點證書的路徑和名稱等,輸出文件是PKCS#12密鑰庫,其中包括節點證書,節點密鑰和CA證書
    # 或者使用命令 bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 效果跟上面這個一樣,生成一個p12結尾的證書
    

    提取用戶證書:
    openssl pkcs12 -in test.p12 -clcerts -nokeys -out cert.pem //pem格式
    openssl pkcs12 -in test.p12 -clcerts -nokeys -out cert.crt //crt格式
    如果需要攜帶祕鑰,則去掉 -nokeys
    openssl pkcs12 -in test.p12 -clcerts -out cert.pem //pem格式
    openssl pkcs12 -in test.p12 -clcerts -out cert.crt //crt格式
    提取私鑰:
    openssl pkcs12 -in test.p12 -nocerts -out key.pem
    清除祕鑰中的密碼(在把祕鑰部署到某些服務器上時可能需要清除密碼)
    openssl rsa -in key.pem -out newkey.pem

  2. 編輯elasticsearch.yml配置文件

    xpack.security.enabled: true
    xpack.security.transport.ssl.enabled: true
    xpack.security.transport.ssl.verification_mode: certificate
    xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
    xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
    
  3. 啓動elasticsearch

    ./bin/elasticsearch -d
    
  4. 設置ELK各個組件的密碼

    ./bin/elasticsearch-setup-passwords auto
    

    或者自定義密碼

    ./bin/elasticsearch-setup-passwords interactive
    
  5. logstash中輸出到elasticsearch的需要加上上一步生成的es用戶名和密碼,修改logstash的配置文件

     output {
       elasticsearch {
         hosts => ["192.168.72.135:9200"]
         index => "%{[@metadata][test]}"
         user => "elastic"
         password => "l03xgeIOxmWDRNveVjMm"
         codec => json
       }
       stdout{
         codec  => rubydebug {
           metadata => true
         }
         }
     }
    
  6. kibana啓動也需要es的用戶名和密碼,修改kibana.yml配置文件

     elasticsearch.username: "elastic"
     elasticsearch.password: "l03xgeIOxmWDRNveVjMm"
    
  7. last

    前面主要對elasticsearch的安全做了配置,更細分的權限配置在kibana中才能進行配置,
    裏面可以定義用戶和角色,角色對應各種權限很豐富,可以針對索引,和命名空間,只讀等等個性化的權限控制.
    如下在這裏插入圖片描述

    我創建了一個test用戶,test角色,權限他只能訪問test-1這一個索引,和只能查看日誌
    在這裏插入圖片描述
    使用test賬號登錄可以看到左側工程菜單裏只有個日誌功能,設置功能進去也沒有權限,因爲沒給它權限,只能看test-1索引的日誌。

over

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章