1、elk密码安全重要性
为ELK(Elasticsearch, Logstash, Kibana)设置密码,或者说启用安全认证,是保障整个日志系统安全、稳定和合规的基石。这绝不是一个“可选项”,尤其是在生产环境中,它是一个“必选项”。
简单来说,不设置密码就等于把你的家门钥匙挂在了门上,任何人只要能找到你的房子(网络地址),就可以自由进出。
2、添加安全认证
2.1 官方安全密码设置
2.1.1 适用环境
适用于【已经部署但未投产的ELK】和【准备部署的ELK】环境
集群部署参考链接:ELK实战
2.1.2 elasticsearch添加xpack配置
PS:利用ELK实战已有的集群配置
vim /data/elasticsearch/config/elasticsearch.yml
#创建存放证书的目录
mkdir -p /data/elasticsearch/config/certs
# 启用 X-Pack 安全功能
xpack.security.enabled: true
# 启用传输层(节点间通信)的TLS/SSL(可选且强烈推荐)
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
#默认手动生成的证书名
xpack.security.transport.ssl.keystore.path: certs/elastic-stack-ca.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-stack-ca.p12
# 启用HTTP层(客户端通信)的TLS/SSL
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: certs/elastic-stack-ca.p12
生成证书elastic-stack-ca.p12
#确认生成的证书名,不输入密码,直接回车
/data/elasticsearch/bin/elasticsearch-certutil ca
mv /data/elasticsearch/elastic-stack-ca.p12 /data/elasticsearch/config/certs/

2.1.3 重新启动es
chown -R elastic:elastic /data/elasticsearch
su elastic -c "/data/elasticsearch/bin/elasticsearch -d &"
2.1.4 设置es密码
/data/elasticsearch/bin/elasticsearch-setup-passwords interactive
#输入elk密码,可以同一个密码

2.1.5 logstash新增连接es密码
vim /data/logstash/config/logstash.conf
#添加如下配置并重新启动logstash
/data/logstash/bin/logstash -f /data/logstash/config/logstash.conf

2.1.6 kibana新增连接es密码
vim /data/kibana/config/kibana.yml
#添加如下配置并重新启动kibana
/data/kibana/bin/kibana --allow-root &

2.1.7 登录验证
已经成功提示输入密码

输入密码后成功登录和查看日志

2.2 第三方htpasswd密码设置
2.2.1 适用环境
适用于【已经部署但不能停服的elasticsearch环境】
2.2.2 添加kibana配置
vim /data/kibana/config/kibana.yml
server.basePath: "/elk"

2.2.3 重启kibana
/data/kibana/bin/kibana --allow-root &
2.2.4 安装htpasswd工具
yum install httpd-tools -y
2.2.5 生成密码文件
#nginx服务器上操作,elastic是自定义的账户名,回车后输入密码即可
htpasswd -cm /data/.htpasswd elastic

2.2.6 nginx配置
#/elk需要和kibana.yml的server.basePath: "/elk"路径一致
location /elk/ {
proxy_pass http://172.16.10.132:5601/;
#自定义提示语
auth_basic "kibana登录验证";
#刚才生成的.htpasswd路径
auth_basic_user_file /data/.htpasswd;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
rewrite ^/elk/(.*)$ /$1 break;
}

重载nginx
nginx -t
#-t没问题后重载
nginx -s reload
2.2.7 登录验证
浏览器访问:http://nginx_ip:端口/elk/ 输入创建的账密即可


评论区