Nginx反代实现Kibana登录认证功能

kebochina 2020-06-11

一、场景介绍:
因Kibana 5.5 版后,已不支持认证功能,也就是说,直接打开页面就能管理,想想都不安全,不过官方提供了 X-Pack 认证,但有时间限制。毕竟X-Pack是商业版。决定采用nginx做反向代理。

二、实现过程

1.安装 Apache Httpd 密码生成工具

[ ~]# yum install httpd-tools -y

2.生成Kibana认证密码
?
[ ~]# mkdir -p /usr/local/src/nginx/
[ ~]# htpasswd -c /usr/local/src/nginx/passwd kibanna
New password:
Re-type new password:
Adding password for user kibanna
注意:上面的 /usr/local/src/nginx/passwd 是生成密码文件的路径,然后feiyu 是用户名,你可以根据需要自行设置成其它用户名。运行命令后,会要求你连续输入两次密码。输入成功后,会提示已经为feiyu这个用户添加了密码。

3.查看下生成的密码文件的内容:
[ ~]# cat /usr/local/src/nginx/passwd
kibanna:$apr1$bj22mciQ$4Rq6U1EnZPyxmDj5X8v1d/
其中用户名就是kibanna,分号后面就是密码(已经加过密)。

4.配置Nginx反向代理

在Nginx配置文件中添加如下内容:

[ ~]# vim /usr/local/nginx/conf/nginx.conf
Nginx反代实现Kibana登录认证功能
server {
listen 80;
auth_basic "Restricted Access";
auth_basic_user_file /usr/local/nginx/conf/passwd/kibana.passwd;
location / {
proxy_pass 10.10.17.41:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection ‘upgrade‘;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
配置Kibana

取消下面注释:

[ ~]# vim /usr/local/kibana/config/kibana.yml

server.host: "10.10.17.41"
重启 Kibana 及 Nginx 服务使配置生效

$ systemctl restart kibana
$ systemctl restart nginx

接下来浏览器访问 http://IP 会提示验证弹窗,输入以上生成的用户密码登录即可。

相关推荐