(修复方案)kibana 未授权访问漏洞

(修复方案)kibana 未授权访问漏洞

  • [1. 存在未授权访问,启用 xpack.security](#1. 存在未授权访问,启用 xpack.security)
  • [2. 不支持xpack,可以使用反向代理添加认证](#2. 不支持xpack,可以使用反向代理添加认证)
  • [3. 设置访问白名单](#3. 设置访问白名单)

1. 存在未授权访问,启用 xpack.security

(1)在 kibana.yml 中添加

bash 复制代码
elasticsearch.username: "kibana_system"
elasticsearch.password: "your-password"
xpack.security.enabled: true

(2)然后在 Elasticsearch 中启用内置用户并设置密码:

bash 复制代码
./bin/elasticsearch-setup-passwords interactive

(3)重启 Kibana 和 Elasticsearch 后,即可通过用户名密码访问

2. 不支持xpack,可以使用反向代理添加认证

在 Nginx 或 Apache 反向代理前面加一层 Basic Auth 或 OAuth 认证,以 Nginx + Basic Auth 为例:

(1) 安装 htpasswd 工具,这个工具用来生成 Basic Auth 的用户名密码文件

bash 复制代码
# CentOS/RHEL
sudo yum install httpd-tools -y

# Ubuntu/Debian
sudo apt-get install apache2-utils -y

(2)创建认证文件

bash 复制代码
# admin 是用户名,输入后会让你设密码
# 认证文件路径 /etc/nginx/.htpasswd 可以自定义
sudo htpasswd -c /etc/nginx/.htpasswd admin

(3)配置 Nginx 反向代理

bash 复制代码
server {
    listen 80;
    server_name kibana.example.com;

    location / {
        auth_basic "Restricted Access";
        auth_basic_user_file /etc/nginx/.htpasswd;

        proxy_pass http://127.0.0.1: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;
    }
}

(4)重启 Nginx

bash 复制代码
sudo systemctl restart nginx

此时访问 http://kibana.example.com 时会要求输入账号密码

3. 设置访问白名单

仅允许内网或特定 IP 访问 Kibana 服务,在 kibana.yml 中配置绑定地址:

bash 复制代码
server.host: "127.0.0.1"

随后重启 Kibana

相关推荐
Brucye6 小时前
信息收集-源码获取
网络安全
wal13145207 小时前
OpenClaw教程(九)—— 彻底告别!OpenClaw 卸载不残留指南
前端·网络·人工智能·chrome·安全·openclaw
无忧智库9 小时前
从《数据安全法》到全域治理:构建数字时代的安全新基石(PPT)
安全
二进喵10 小时前
关于OpenClaw安全使用指南
安全
数据库安全10 小时前
用AI重新定义数据安全监测,让数据安全变简单
人工智能·安全·数据安全
zzh08110 小时前
nginx安全笔记
笔记·nginx·安全
cramer_50h10 小时前
网络安全技术研究之漏洞和各种安全工具(二)
安全·web安全
湛生11 小时前
NoSQL注入
数据库·安全·web安全·网络安全·nosql
不吃香菜kkk、12 小时前
通过夜莺n9e监控Kubernetes集群
安全·云原生·容器·kubernetes
Mimo_YY12 小时前
SQL-忘记sa密码,如何安全的尝试旧密码,如何修改新密码
安全