ELK-搭建實時日志ELK分析系統(tǒng)(3)-集成search-guard

這章我們需要給elk增加安全權限訪問限制,可以使用官方的x-pack插件,x-pack在elk6.4.3中已經(jīng)內(nèi)置安裝,并且已經(jīng)開源,但是功能是basic版的,沒有安全功能,可以去申請更高權限的證書,我們使用免費版的一個安全管理——search-guard
本章的elk環(huán)境基于前兩章內(nèi)容搭建:

elasticsearch快速開始search-guard

  • 查找對應版本的search-guard,版本對應。
  • 我的elk版本全部是6.4.3下載對應插件,上傳到服務器:
    search-guard-6-6.4.3-23.2.zip
  • 切換到elasticsearch的目錄下,執(zhí)行命令安裝插件:
    bin/elasticsearch-plugin install -b file:///path/to/search-guard-6-6.4.3-23.2.zip
  • 顯示以下信息:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.lang.RuntimePermission accessClassInPackage.sun.misc
* java.lang.RuntimePermission getClassLoader
* java.lang.RuntimePermission loadLibrary.*
* java.lang.reflect.ReflectPermission suppressAccessChecks
* java.security.SecurityPermission getProperty.ssl.KeyManagerFactory.algorithm
...
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.
  • 切換到目錄<Elasticsearch directory>/plugins/search-guard-6/tools,執(zhí)行命令:
    ./install_demo_configuration.sh(先賦予執(zhí)行權限)
    顯示如下信息:
Search Guard 6 Demo Installer
 ** Warning: Do not use on production or publicly reachable systems **
Install demo certificates? [y/N] y
Initialize Search Guard? [y/N] y
Enable cluster mode? [y/N] n

按y確認。

  • 這個時候觀察到elasticsearch.yml,增加了一下這些配置:

######## Start Search Guard Demo Configuration ########
# WARNING: revise all the lines below before you go into production
searchguard.ssl.transport.pemcert_filepath: esnode.pem
searchguard.ssl.transport.pemkey_filepath: esnode-key.pem
searchguard.ssl.transport.pemtrustedcas_filepath: root-ca.pem
searchguard.ssl.transport.enforce_hostname_verification: false
searchguard.ssl.http.enabled: true
searchguard.ssl.http.pemcert_filepath: esnode.pem
searchguard.ssl.http.pemkey_filepath: esnode-key.pem
searchguard.ssl.http.pemtrustedcas_filepath: root-ca.pem
searchguard.allow_unsafe_democertificates: true
searchguard.allow_default_init_sgindex: true
searchguard.authcz.admin_dn:
  - CN=kirk,OU=client,O=client,L=test, C=de

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
cluster.name: searchguard_demo
discovery.zen.minimum_master_nodes: 1
node.max_local_storage_nodes: 3
######## End Search Guard Demo Configuration ########
  • 因為已經(jīng)內(nèi)置了x-pack,search-guard和x-pack的安全功能沖突,在elasticsearch.yml中增加以下配置:
    xpack.security.enabled: false
  • 重啟elasticsearch

配置kibana

  • 下載對應版本的插件,并上傳到服務器:
    search-guard-kibana-plugin-6.4.3-16.zip
  • 在kibana安裝路徑下執(zhí)行以下命令:
    bin/kibana-plugin install file:///path/to/search-guard-kibana-plugin-6.4.3-16.zip
  • 編輯kibana.yml文件:(kibanaserver是默認內(nèi)置的角色,可以增刪改查kibana相關的索引。)
xpack.security.enabled: false
elasticsearch.url: "https://localhost:9200"
elasticsearch.ssl.verificationMode: none
elasticsearch.username: "kibanaserver"
elasticsearch.password: "kibanaserver"
  • 啟動kibana,會彈出登錄頁面,使用默認的admin:admin登錄,在kibana頁面會新增search-guard插件,可以在此編輯相關權限和用戶。

配置head插件可以訪問

現(xiàn)在head已經(jīng)不能直接訪問es了,需要修改elasticsearch.yml,增加以下配置:

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
  • 重啟elasticsearch,head可以使用admin用戶登錄。

配置logstash

  • 編輯logstash啟動加載的配置文件,修改輸出到elasticsearch的部分:(logstash是內(nèi)置角色,擁有增刪改查和創(chuàng)建索引logstash-**beat*的權限,若更改了默認索引的索引名稱,可以在kibana中給該角色添加新的索引權限)
# 輸出到本機的 ES
output {
    elasticsearch {
            hosts => [ "localhost:9200"  ]
            index => "log-%{[log_source]}-%{+YYYY.MM.dd}"
            user => logstash
            password => logstash
            ssl => true
            ssl_certificate_verification => false

    }
}
  • 重啟logstash

更改默認用戶密碼

  • 切換到目錄<Elasticsearch directory>/plugins/search-guard-6/tools,執(zhí)行命令:
    ./hash.sh -p 新密碼
  • 復制生成的hash密碼,編輯文件<Elasticsearch directory>/plugins/search-guard-6/sgconfi/sg_internal_users.yml,找到想要修改的用戶名,替換其下的hash值。
  • 讓配置生效,執(zhí)行以下命令:
    cd <Elasticsearch directory>/plugins/search-guard-6/tools
    ./sgadmin_demo.sh
    如果更改過elasticsearch默認端口號,打開sgadmin_demo.sh文件,在其中執(zhí)行sgadmin.sh腳本時加上 -p 端口號

更新li

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容