Java配置11-elasticsearch未授权访问漏洞修复

目录

1.现状

2.下载安装包

3.安装配置elasticsearch

4.安装配置logstash

5.安装配置kibana

 ​


1.现状

        先前安装的elk是6.2.4版本的,只做了最基本的配置,前段时间公司检测出安装的elasticsearch有未经授权访问的漏洞,并限期修复。
查了一些资料,发现在7.2.0版本的elk中默认安装了xpack,免费的,基本可以满足需求。

2.下载安装包

elk官网:https://www.elastic.co/cn/products/
下载的是7.2.0版本,上传至原有的elk服务器,并停止原有的服务。

3.安装配置elasticsearch

解压

tar -xzvf elasticsearch-7.2.0.tar.gz

进入解压后的config文件夹,修改elasticsearch.yml

#ip
network.host: 0.0.0.0
##端口
http.port: 9200
##主要用于集群配置,多台服务器配置名称不可相同
node.name: node-1
#cluster.initial_master_nodes: ["node-1"]
#存放数据的目录,自定义即可
path.data: /home/XX/edata
#存放日志的目录,自定义即可
path.logs: /home/XX/elog

#Centos6不支持SecComp,而ES默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动解决
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

#xpack启用
xpack.security.enabled: true
#单例模式
discovery.type: single-node

保存退出,进入bin文件夹,执行命令

./elasticsearch -d

稍等一会,再执行命令

./elasticsearch-setup-passwords interactive

配置密码
elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user,密码记好,后面要用。

然后访问elasticsearch
http://10.XX.XX.XX:9200/
弹出登录页面,可使用用户elastic登录

登录成功后,出现下面的页面

 

4.安装配置logstash

解压

tar –zxvf logstash-7.2.0.tar.gz

进入解压后的config文件夹,修改logstash.yml

vim logstash.yml

添加以下信息

xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: "elastic"
xpack.monitoring.elasticsearch.password: "elasticpwd"
xpack.monitoring.elasticsearch.hosts: ["http://10.XX.XX.XX:9200"]

保存退出,创建kafka.conf(我们这边是logstash从kafka拿取日志消息,然后放入elasticsearch)
添加以下信息

input {
    kafka{
        bootstrap_servers => ["10.XX.XX.XX:9092"]
        client_id => "logback-kafka"
        auto_offset_reset => "latest"
        consumer_threads => 5
        decorate_events => true
        topics => ["test-logs"]
        codec => "json"
    }
}
filter {
       # pattern matching logback pattern
       grok {
              match => { "message" => "%{TIMESTAMP_ISO8601:timestamp}\s+%{LOGLEVEL:severity}\s+\[%{DATA:service},%{DATA:trace},%{DATA:span},%{DATA:exportable}\]\s+%{DATA:pid}\s+---\s+\[%{DATA:thread}\]\s+%{DATA:class}\s+:\s+%{GREEDYDATA:rest}" }
       }
}
output {
    elasticsearch {
        user => elastic
        password => elasticpwd
        hosts => ["10.XX.XX.XX:9200"]
        index => "test-%{+YYYY-MM-dd}"
    }
}

保存退出,进入bin文件夹,执行命令

nohup ./logstash -f ../config/kafka.conf &

执行命令,跟踪日志

tail -f nohup.out

没出错即为成功

5.安装配置kibana

解压

tar -zvxf kibana-7.2.0.tar.gz

 进入解压后的config文件夹,修改kibana.yml
添加以下信息

server.port: 5601
server.host: "10.XX.XX.XX"
elasticsearch.hosts: ["http://10.XX.XX.XX:9200"]
logging.dest: /home/XX/kibanalog/kibana.log
#中文
i18n.locale: "zh-CN"
#用户名为kibana,密码是刚才在elasticsearch的bin文件夹下执行命令生成的
elasticsearch.username: "kibana"
elasticsearch.password: "kibanapwd"

保存退出,进入bin文件夹,执行命令

./kibana &

访问kibana页面
http://10.XX.XX.XX:5601/

使用elastic登录即可

 

其他问题:

如果系统为centos7以下,启动kibana时会报错,可参考下面的处理:

ELK | Kibana启动报错 libc.so.6: version GLIBC_2.14 not found_MyBlog-CSDN博客

安装glibc,可使用root用户,或者有sudo权限的用户,我尝试安装时,使用普通用户,在执行命令

make install 

报错没有权限。

Elasticsearch授权访问漏洞是指攻击者可以通过访问Elasticsearch的默认端口(9200)获取敏感信息,甚至可以对数据进行修改和删除。下面是一个简单的复现过程: 1. 下载安装Elasticsearch 首先需要下载并安装Elasticsearch,可以从官网 https://www.elastic.co/downloads/elasticsearch 下载适合自己操作系统的版本。安装完成后启动Elasticsearch。 2. 测试授权访问 使用curl命令访问Elasticsearch的默认端口,可以看到返回的json格式数据,其中包含了Elasticsearch的版本信息、集群名称等。 ``` curl http://localhost:9200/ ``` 如果返回的结果中包含了类似以下内容,说明Elasticsearch存在授权访问漏洞。 ``` { "name" : "node-1", "cluster_name" : "elasticsearch", "cluster_uuid" : "zZl94mWlQq6RQlN4WmAz5w", "version" : { "number" : "7.9.3", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "c4138e51121ef06a6404866cddc601906fe5c868", "build_date" : "2020-10-16T10:36:16.141335Z", "build_snapshot" : false, "lucene_version" : "8.6.2", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" } ``` 3. 利用授权访问漏洞 利用授权访问漏洞可以进行一些危害性较大的操作,比如删除数据、创建索引等。这里我们只演示一下获取敏感信息的操作。 使用curl命令访问Elasticsearch中的某个索引,可以看到其中包含了一些敏感信息,比如用户名、密码等。 ``` curl http://localhost:9200/_cat/indices ``` 如果返回的结果中包含了类似以下内容,说明存在敏感信息泄露。 ``` yellow open .kibana_task_manager_1 6rJQh5E8R0yUH9WdPQzLrw 1 1 3 0 35.4kb 35.4kb yellow open .kibana_1 5QZvZnS-QOyvZBTl2t6bKg 1 1 2 0 13.4kb 13.4kb ``` 4. 解决方法 为避免Elasticsearch授权访问漏洞,可以进行以下操作: - 修改配置文件中的network.host配置,限制Elasticsearch只能在特定的IP地址或网段上运行。 - 启用Elasticsearch的安全特性,比如启用访问控制、数据加密等。 以上是Elasticsearch授权访问漏洞的简单复现过程,希望对您有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值