一、配置ELK的安全認(rèn)證功能
ELK支持安全認(rèn)證功能锨天,但是需要安裝xpack插件蛇券。我在做認(rèn)證測(cè)試時(shí),發(fā)現(xiàn)ELK在6.3版本默認(rèn)已經(jīng)安裝了xpack插件猪杭,在6.3之前的版本還是需要手動(dòng)安裝xpack軟件餐塘。因?yàn)槲覝y(cè)試環(huán)境是使用ELK 6.3.1搭建的,因此不需要手動(dòng)安裝xpack插件皂吮,所以此處就不在演示安裝xpack了戒傻。
相關(guān)ELK系統(tǒng)的搭建可參考:http://www.reibang.com/p/bc6b0e329978
ps:xpack插件是要收費(fèi)的,不過官方提供一段時(shí)間的免費(fèi)試用蜂筹,有興趣研究的可以到官網(wǎng)申請(qǐng)或登錄kibana界面點(diǎn)擊試用需纳,當(dāng)然也可以弄個(gè)破解版嘿嘿嘿。
系統(tǒng)版本:Centos 6.9
ELK版本:6.3.1
1艺挪、配置啟用elasticsearch的安全認(rèn)證
首先不翩,修改elasticsearch的配置文件:
[root@ES ~]# vim /etc/elasticsearch/elasticsearch.yml
xpack.security.enabled: true #在配置中添加此參數(shù),開啟安全認(rèn)證功能
接著修改elastic和kibana用戶的密碼:
#修改elastic用戶的密碼
curl -XPUT -u elastic '10.10.10.6:9200/_xpack/security/user/elastic/_password' -d '{
"password" : "123456"
}'
#修改kibana用戶的密碼
curl -XPUT -u elastic '10.10.10.6:9200/_xpack/security/user/kibana/_password' -d '{
"password" : "123456"
}'
修改完后,重啟elasticsearch服務(wù)進(jìn)程口蝠,接著你應(yīng)該就會(huì)發(fā)現(xiàn)kibana和logstash 無法連接上elasticsearch了器钟,這是因?yàn)樗鼈冞€沒有配置認(rèn)證。
2妙蔗、配置kibana與elasticsearch的認(rèn)證信息
修改/etc/kibana/kibana.yml文件:
[root@ES ~]# vim /etc/kibana/kibana.yml
#配置用于與elasticsearch做認(rèn)證的賬號(hào)密碼
elasticsearch.username: "kibana"
elasticsearch.password: "123456"
然后重啟kibana服務(wù)
3俱箱、配置logstash認(rèn)證信息
首先登錄kibana,在Dev Tools處執(zhí)行下述命令創(chuàng)建logstash權(quán)限r(nóng)ole和用戶:
#創(chuàng)建logstash role權(quán)限
POST _xpack/security/role/logstash_writer
{
"cluster": ["manage_index_templates", "monitor"],
"indices": [
{
"names": [ "logstash-*","business-index-*"],
"privileges": ["write","delete","create_index"]
}
]
}
#創(chuàng)建logstash_用戶
POST /_xpack/security/user/logstash_internal
{
"password" : "changeme",
"roles" : [ "logstash_writer"],
"full_name" : "Internal Logstash User"
}
接著在logstash服務(wù)器上修改其配置文件:
[root@logstash ~]# vim /etc/logstash/conf.d/test.conf
output {
if [type] == "nginx" {
elasticsearch {
hosts => "10.10.10.6:9200"
index => "logstash-testlog"
user => logstash_internal #配置logstash與elasticsearch認(rèn)證的賬號(hào)
password => "123456" 配置logstash與elasticsearch認(rèn)證的密碼
} }
}
最后重啟logstash服務(wù)即可灭必。
此時(shí)使用此前修改密碼的用戶elastic和kibana 即可登錄kibana界面進(jìn)行管理監(jiān)控狞谱,并可以通過在kibana界面的Management中管理創(chuàng)建用戶和用戶的權(quán)限。
二禁漓、配置filebeat和logstash的安全傳輸
默認(rèn)情況下filebeat和logstash之前的傳輸是不加密的跟衅,但是我們可以通過配置SSL來使用filebeat和logstash之前的日志傳輸更加安全可靠。
1播歼、創(chuàng)建SSL證書
首先需要分別在logstash和filebeat端創(chuàng)建其SSL證書和密鑰伶跷。
修改filebeat端的/etc/pki/tls/openssl.cnf文件:
[root@web ~]# vim /etc/pki/tls/openssl.cnf
[ v3_ca ]
subjectAltName = IP:10.10.10.8 #添加此參數(shù),配置為當(dāng)前filebeat所在的服務(wù)器IP
創(chuàng)建filebeat端的證書和密鑰:
[root@web ~]# openssl req -subj '/CN=10.10.10.8/' -x509 -days $((100 * 365)) -batch -nodes -newkey rsa:2048 -keyout /etc/pki/tls/private/filebeat.key -out /etc/pki/tls/certs/filebeat.crt
創(chuàng)建完成后秘狞,將生成的證書scp到logstash服務(wù)器相應(yīng)的證書和密鑰目錄下:
[root@web ~]# scp /etc/pki/tls/private/filebeat.key 10.10.10.7:/etc/pki/tls/private/
[root@web ~]# scp /etc/pki/tls/certs/filebeat.crt 10.10.10.7:/etc/pki/tls/certs/
接著配置logstash端的證書叭莫,修改/etc/pki/tls/openssl.cnf:
[root@logstash ~]# vim /etc/pki/tls/openssl.cnf
[ v3_ca ]
subjectAltName = IP:10.10.10.7
創(chuàng)建證書和密鑰:
[root@logstash ~]# openssl req -subj '/CN=10.10.10.7/' -x509 -days $((100 * 365)) -batch -nodes -newkey rsa:2048 -keyout /etc/pki/tls/private/logstash.key -out /etc/pki/tls/certs/logstash.crt
最后跟filebeat 一樣,將logstash的證書和密鑰復(fù)雜到filebeat服務(wù)器的對(duì)應(yīng)的目錄下烁试。
2雇初、修改啟用filebeat的ssl加密配置
配置filebeat.yml文件:
[root@web ~]# vim /etc/filebeat/filebeat.yml
output.logstash:
hosts: ["10.10.10.7:5044"]
ssl.certificate_authorities: ["/etc/pki/tls/certs/logstash.crt"] #配置logstash端傳來的證書存放路徑
ssl.certificate: "/etc/pki/tls/certs/filebeat.crt" #配置filebeat生成的證書路徑
ssl.key: "/etc/pki/tls/private/filebeat.key" #配置filebeat生成的密鑰路徑
配置完成后重啟filebeat服務(wù)即可
3、修改啟用logstash的ssl加密配置
配置logstash的配置文件:
[root@logstash ~]# vim /etc/logstash/conf.d/test.conf
input {
beats {
port => 5044
type => "nginx"
ssl => true
ssl_certificate_authorities => ["/etc/pki/tls/certs/filebeat.crt"] #配置filebeat端傳來的證書存放路徑
ssl_certificate => "/etc/pki/tls/certs/logstash.crt" #配置logstash生成的證書存放路徑
ssl_key => "/etc/pki/tls/private/logstash.key" #配置logstash生成的密鑰存放路徑
ssl_verify_mode => "force_peer" #配置SSL認(rèn)證模式减响,force_peer強(qiáng)制要求對(duì)端進(jìn)行證書認(rèn)證靖诗。
}
}
修改完成后重啟logstash服務(wù)。
待filebeat和logstash均配置重啟完成后支示,此時(shí)filebeat和logstash的傳輸已經(jīng)經(jīng)過ssl安全加固了刊橘。
三、配置Kibana的https訪問
1颂鸿、創(chuàng)建Kibana的ssl 證書
[root@ES ~]# openssl req -subj '/CN=10.10.10.6/' -x509 -days $((100 * 365)) -batch -nodes -newkey rsa:2048 -keyout /etc/pki/tls/private/kibana.key -out /etc/pki/tls/certs/kibana.crt
2促绵、修改Kibana的配置文件
[root@ES ~]# vim /etc/kibana/kibana.yml
server.ssl.enabled: true #啟動(dòng)https訪問
server.ssl.certificate: /etc/pki/tls/certs/kibana.crt #配置證書存放路徑
server.ssl.key: /etc/pki/tls/private/kibana.key #配置證書密鑰存放路徑
修改完成后,重啟kibana服務(wù)即可嘴纺。