居然有人想白嫖我的日志,趕緊開啟安全保護壓壓驚

你居然還去服務(wù)器上撈日志,搭個日志收集系統(tǒng)難道不香么 一文中我們介紹過ELK日志收集系統(tǒng)的搭建,由于我們的Kibana沒有任何安全保護機制,如果部署到公網(wǎng)上去的話,任何人都可以查看你的日志了。日志暴露在網(wǎng)絡(luò)上可不是件好事情,今天教大家如何給Kibana設(shè)置登錄認證來保護它

實現(xiàn)原理

由于Kibana的日志信息都存儲在Elasticsearch中,所以只要給Elasticsearch開啟X-PACK中的安全功能,并給預(yù)置的賬號設(shè)置好密碼即可。Elasticsearch設(shè)置好之后,就可以在Kibana中對用戶、角色、權(quán)限進行管理了,本文使用的ELK組件版本均為7.6.2。

Elasticsearch設(shè)置密碼

  • 修改Elasticsearch的配置文件并開啟X-PACK中的安全功能,該配置文件在安裝目錄的config文件夾下面,例如elasticsearch-7.6.2\config\elasticsearch.yml;
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
  • 啟動Elasticsearch服務(wù),啟動命令在bin目錄下,例如elasticsearch-7.6.2\bin\elasticsearch.bat;
  • 在bin目錄下使用如下命令elasticsearch-setup-passwords interactive修改預(yù)置賬號的密碼,期間需要設(shè)置多個賬號密碼,我都設(shè)置成了123456;


    image.png
  • 期間設(shè)置了好幾個賬號,我們先來了解下這些賬號都有啥作用吧;
elastic:超級管理員賬號
kibana:Kibana訪問專用賬號logstash_system:Logstash訪問專用賬號
beats_system:FileBeat訪問專用賬號apm_system:APM系統(tǒng)專用賬號
remote_monitoring_user:遠程監(jiān)控賬號
  • 接下來我們需要在Kibana的配置文件中添加可以訪問Elasticsearch的賬號,該配置文件在安裝目錄的config文件夾下面,例如kibana-7.6.2\config\kibana.yml;
elasticsearch.username: "kibana"
elasticsearch.password: "123456"
  • 啟動Kibana服務(wù),啟動命令在bin目錄下,例如kibana-7.6.2\bin\kibana.bat;
  • 當Kibana啟動完成后,我們訪問的時就需要登錄認證了,使用超級管理員賬號elastic:123456可以進行登錄,訪問地址:http://localhost:5601
居然有人想白嫖我的日志,趕緊開啟安全保護壓壓驚
  • 登錄成功后,在我們的Management選項中可以找到安全相關(guān)的配置,在此我們可以對用戶、角色、權(quán)限進行設(shè)置。
居然有人想白嫖我的日志,趕緊開啟安全保護壓壓驚

SpringBoot安全訪問

由于Elasticsearch開啟X-PACK中的安全功能,當我們的SpringBoot應(yīng)用訪問Elasticsearch時,也需要設(shè)置用戶名和密碼了!

  • 我們可以直接在SpringBoot中設(shè)置超級管理員賬號,但這不是個好辦法,我們還是自己建個角色和賬號吧!
  • 首先在Kibana中創(chuàng)建一個應(yīng)用訪問專用的角色app_user;
居然有人想白嫖我的日志,趕緊開啟安全保護壓壓驚
  • 創(chuàng)建一個用戶并配置好該角色,賬號密碼為app:123456;
居然有人想白嫖我的日志,趕緊開啟安全保護壓壓驚
  • 修改SpringBoot應(yīng)用的配置文件application.yml,配置好賬號密碼即可正常訪問了!
spring:
  elasticsearch:
    rest:
      uris: http://localhost:9200
      username: app
      password: 123456

Logstash安全訪問

由于Elasticsearch開啟X-PACK中的安全功能,向Elasticsearch輸出日志的Logstash也需要設(shè)置用戶名和密碼了!

  • 首先修改我們原來的Logstash配置文件logstash.conf,在output節(jié)點下設(shè)置訪問Elasticsearch的用戶名和密碼,直接使用我們創(chuàng)建的app:123456賬號即可;
input {
  tcp {    mode => "server"
    host => "0.0.0.0"
    port => 4560
    codec => json_lines    type => "debug"
  }  tcp {    mode => "server"
    host => "0.0.0.0"
    port => 4561
    codec => json_lines    type => "error"
  }  tcp {    mode => "server"
    host => "0.0.0.0"
    port => 4562
    codec => json_lines    type => "business"
  }  tcp {    mode => "server"
    host => "0.0.0.0"
    port => 4563
    codec => json_lines    type => "record"
  }}filter{  if [type] == "record" {
    mutate {      remove_field => "port"
      remove_field => "host"
      remove_field => "@version"
    }    json {      source => "message"
      remove_field => ["message"]
    }  }}output {  elasticsearch {    hosts => ["localhost:9200"]
    action => "index"
    codec => json    index => "mall-tiny-%{type}-%{+YYYY.MM.dd}"
    template_name => "mall-tiny"
    user => app    password => "123456"
  }}
  • 使用指定配置文件啟動Logstash服務(wù),啟動命令在bin目錄下,例如logstash-7.6.2\bin\logstash.bat;
logstash -f logstash.conf
  • 接下來在Kibana中就可以查看到應(yīng)用輸出的日志了!
居然有人想白嫖我的日志,趕緊開啟安全保護壓壓驚
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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