6.Kibana安全访问控制
孙富阳, 江湖人称没人称。多年互联网运维工作经验,曾负责过孙布斯大规模集群架构自动化运维管理工作。擅长Web集群架构与自动化运维,曾负责国内某大型博客网站运维工作。
1.Kibana安全访问控制概述
默认情况下,kibana可以直接通过浏览器打开进行操作,这样的话任何人都可以通过该方式打开,极其的不安全。我们可以通过如下两种方式来解决。
方式1:nginx+kibana,非常简单实现方式。
方式2:kibana roles,比较推荐方式。
2.nginx+kibana实现基础访问控制
###安装nginx和密码工具
[root@es-node3 ~]# yum -y install nginx
[root@es-node3 ~]# yum -y install httpd-tools
###创建密码文件并配置nginx
[root@es-node3 ~]# htpasswd -b -c /etc/nginx/auth_basic.pass sfy 123456
[root@es-node3 ~]# cat /etc/nginx/conf.d/kibana.conf
server {
listen 80;
server_name kibana.com;
location / {
proxy_pass http://10.0.0.150:5601;
auth_basic on;
auth_basic_user_file auth_basic.pass;
include proxy_params;
}
}
[root@es-node3 ~]# cat /etc/nginx/proxy_params
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 60;
proxy_read_timeout 60;
proxy_send_timeout 60;
proxy_buffering on;
proxy_buffer_size 8k;
proxy_buffers 4 64k;
proxy_http_version 1.1;
[root@es-node3 ~]# systemctl restart nginx

3.配置TLS实现安全访问控制
1.概述
从 Elastic Stack6.8和7.1开始,在默认分发包中免费提供多项安全功能,例如 TLS 加密通信、基于角色的访问控制 RBAC 等等
2.配置TLS
1.在 Elastic 主节点配置 TLS
[root@node01 ~]# /usr/share/elasticsearch/bin/elasticsearch-certutil ca
[root@node01 ~]# /usr/share/elasticsearch/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
一路回车即可
2.复制证书到合适的位置并复制到集群所有节点
注意,各节点证书需要一致
mkdir /etc/elasticsearch/certs
cp /usr/share/elasticsearch/*.p12 /etc/elasticsearch/certs/
chown -R elasticsearch:elasticsearch /etc/elasticsearch/certs/
scp -r /etc/elasticsearch/certs 10.0.0.151:/etc/elasticsearch/
scp -r /etc/elasticsearch/certs 10.0.0.150:/etc/elasticsearch/
3.各节点修改配置文件开启安全功能后重启所有节点
xpack.security.enabled: true #开启安全功能
xpack.security.transport.ssl.enabled: true #开启传输的时候通过ssl加密功能
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 #证书位置
systemctl restart elasticsearch
4.配置用户密码,auto会为不同的内部堆栈生成随机密码。interactive手动定义密码
##密码至少6位,默认用户名为elastic
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto

5.kibana配置密码认证
vim /etc/kibana/kibana.yml
elasticsearch.username: "kibana_system"
elasticsearch.password: "2jDiQNs13NOdMCdr1CCH"
##密码为上一步设置的密码
修改好配置后记得重启:
systemctl restart kibana
使用上一步创建的elastic用户登录


3.注意事项
1.一定要先配置证书认证,再配置密码,不然就会报错。
2.默认创建的证书是root只读权限,需要设置为elasticsearch可以读取的权限,不然启动报错
3.创建账号密码命令只需要在master节点配置即可
4.创建账号密码命令只能运行一次,再次运行就会报错
5.初始化的账号密码仅仅是作为组件之间传输信息使用,并不是给用户使用的。
6.如果是需要给用户分配权限,需要在kibana里以elastic用户登录,然后在创建新用户和新角色。
7.一旦开启了tls认证,那么集群里所有的包括logstash都要配置用户密码,以确保数据能写到es
以下是一个logstash的配置示例用户名和密码均来自上面的auto创建的
output {
elasticsearch {
hosts => ["10.0.0.150:9200","10.0.0.151:9200","10.0.0.152:9200"]
user => "elastic"
password => "iEj4tsQy7iFrdXdJjNY6"
index => "%{[@metadata][target_index]}"
template_overwrite => true
}
}
未经允许不得转载:孙某某的运维之路 » 6.Kibana安全访问控制
评论已关闭