当前位置: 首页 > article >正文

解决单台Elasticsearch 未授权访问漏洞

一、单机部署

1、新增密码

编辑配置文件 bin/elasticsearch.yml,新增配置

#开启密码验证
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true

如下截图所示:

2、java应用调用ES服务

报错提示没有用户信息:

Elasticsearch exception [type=security_exception, reason=missing authentication credentials for REST request [/seproject/_search?typed_keys=true&ignore_unavailable=false&expand_wildcards=open&allow_no_indices=true&ignore_throttled=true&search_type=query_then_fetch&batched_reduce_size=512&ccs_minimize_roundtrips=true]]

3、设置一下用户及密码

ES要先启动才能设置否则报错,如下图:

启动ES:

./elasticsearch -d

设置密码:

./elasticsearch-setup-passwords interactive

4、访问需要密码,输入刚才设置的密码就正常访问

5、java程序修改,新增用户及密码,密码放到配置里

    RestHighLevelClient client() {
        RestClientBuilder build = RestClient.builder(createHosts()).setRequestConfigCallback(new RestClientBuilder.RequestConfigCallback() {
            @Override
            public RequestConfig.Builder customizeRequestConfig(RequestConfig.Builder builder) {
                return builder.setConnectTimeout(5000 * 1000) // 连接超时(默认为1秒)
                        .setSocketTimeout(6000 * 1000);// 套接字超时(默认为30秒)//更改客户端的超时限制默认30秒现在改为100分钟
            }
        });
        //加密码后增加
        CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));
        build.setHttpClientConfigCallback((HttpAsyncClientBuilder httpAsyncClientBuilder) -> httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider));
       //加密码后增加
        RestHighLevelClient restHighLevelClient = new RestHighLevelClient(build);
        return restHighLevelClient;
    }

5、重启java应用再次访问,正常

6、Kibana,连不上

7、配置Kibana config/kinana.yml

默认是注释掉的

elasticsearch.username: kibana
elasticsearch.password: password

8、使用刚才设置密码的用户登录


http://www.kler.cn/a/457180.html

相关文章:

  • 2024165读书笔记|《飞花令·合》——人生飘忽百年内,且须酣畅万古情
  • 操作系统的用户空间与内核空间
  • ROS2软件架构全面解析-学习如何设计通信中间件框架
  • HarmonyOS开发:关于帧动画使用分享
  • uniapp——App下载文件,打开文档(一)
  • SpringBoot数据字典字段自动生成对应code和desc
  • 4-3 MCU中ARM存储器的作用
  • node-js Express-路由模块化
  • 小米汽车加速出海,官网建设引领海外市场布局!
  • 通过 Ansys Electronics Desktop 中的高级仿真优化 IC 设计
  • 华为手机鸿蒙4.2连接不上adb
  • 网络协议入门
  • 【SpringMVC】REST 风格
  • CSS @property 颜色过渡动画实例
  • 基于统计分析与随机森林的环境条件对生菜生长的影响研究
  • Django 模型中使用选择(choices):全面指南
  • vue.js 工程化开发 脚手架 Vue CLl
  • MySQL日志之误删恢复数据
  • Soul App创始人张璐团队以科技守护真实,净化网络社交环境
  • Mac 12.1安装tiger-vnc问题-routines:CRYPTO_internal:bad key length
  • 【每日学点鸿蒙知识】Grid子项拖动、Swiper指示器、手势事件上报、指定使用发布版本API、打包签名失败报错109
  • 「Python数据科学」标量、向量、矩阵、张量与多维数组的辨析
  • WEB UI 常用类
  • 【每日学点鸿蒙知识】Web高度适配、变量声明规范、动画取消、签名文件、包体积优化相关
  • 亚马逊云科技陈晓建:每个应用程序都离不开生成式AI
  • MySQL-数据库,数据表备份