consul配置ACL安全认证


文章目录

  • 前言
  • 一、漏洞详情
  • 二、漏洞处理
    • 1.ACL相关介绍
    • 2.开启ACL
    • 3.创建令牌
    • 4.修改acl文件
    • 5.修改单节点consul启动配置文件
    • 6.重启consul
  • 三、漏洞处理结果验证


前言

因为现阶段属于护网期,因此公司对服务器、业务的安全都很关注,只要再次期间被漏扫出来的漏洞,都需要及时响应处理,恰好昨天下午我负责维护的一个项目被漏扫出来了Consul未授权访问漏洞【原理扫描】HashiCorp Consul 安全漏洞(CVE-2021-41803)这两个漏洞,经过查询漏洞编号及名称,并验证该项目上的consul,才发现是因为该consul未配置任何安全认证,即当在浏览器访问consul的web界面时会直接暴露出已注册的services、nodes等相关信息,容易导致信息泄露。因此在确定了漏洞的详情后就着手准备开始处理漏洞。


因为该项目使用consul做为prometheus的服务发现与注册,且注册的监控指标只有200多个,因此使用的是单节点consul,下方的漏洞处理也是基于单节点consul进行处理

一、漏洞详情

漏洞名称Consul未授权访问漏洞【原理扫描】
详细描述Consul是HashiCorp公司推出的一款开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案相比,Consul提供的方案更为“一站式”。Consul内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(例如ZooKeeper等),使用方式也相对简单。Consul默认配置下缺少访问控制,导致攻击者可以获取敏感信息
解决办法请增加Consul的授权管理控制
漏洞名称HashiCorp Consul 安全漏洞(CVE-2021-41803)
详细描述HashiCorp Consul是美国HashiCorp公司的一套分布式、高可用数据中心感知解决方案。该产品用于跨动态分布式基础架构连接和配置应用程序。HashiCorp Consul 1.8.1、1.11.81.12.4 和 1.13.1版本存在安全漏洞,该漏洞源于在插入和使用自动配置 RPC 的 JWT 声明断言之前没有正确验证节点或段名称。
解决方法厂商补丁:目前厂商已发布升级补丁以修复漏洞,补丁获取链接:https://discuss.hashicorp.com/t/hcsec-2022-19-consul-auto-config-jwt-authorization-missing-input-validation/44627

二、漏洞处理

1.ACL相关介绍

Consul使用 Access Control Lists(ACL-访问控制列表)来保护对UI、API、CLI、服务通信和代理通信的访问;ACL的核心是将规则分组为策略,然后将一个或多个策略与令牌相关联。Consul使用token的形式进行安全控制访问,这里的token就是随机的字符串,有了token就有对应的操作权限啦;
就好比之前说到WebAPI接口加访问控制一样,通过一个授权token就可以访问相关的接口资源。配置ACL的前提是所有节点都需要将ACL启用,然后还要一个bootstrap token,因为针对子权限(策略)生成token的时候需要用到,
就好比MySQL中的root用户一样,只有有了root权限才能给其他用户分配更多的权限。
接下就以UI的访问和Services的控制进行ACL配置演示,其他基本上都一样,重点就是规划好策略规则。

2.开启ACL

启用ACL系统分为两步, 开启ACL和创建令牌(Token)。

首先在各节点启动时将ACL启用,在配置文件夹目录下(这里目录名是consul.d)增加acl.hcl文件,配置如下
[root@prometheus consul.d]# pwd
/export/server/monitor/consul/consul.d
[root@prometheus consul.d]# vim acl.hcl
acl = {enabled = true                      #开启acldefault_policy = "deny"             #默认策略.deny标识默认拒绝所有操作,allow标识默认允许所有操作。enable_token_persistence = true     #持久化到磁盘,重启时重新加载。
}

3.创建令牌

创建初始令牌—— 内置策略(全局管理),相当于管理员令牌,可以授予一部份管理员全局访问权限

[root@prometheus consul.d]# ../bin/consul acl bootstrap
AccessorID:       9k8rt356-de9e-1268-123b-3dbensiu912
SecretID:         kjdn2n-be23-fea7-1733-dn2jf92s21ns0   #生成了一个Token,后续登录就需要使用这个ID来登录
Description:      Bootstrap Token (Global Management)
Local:            false
Create Time:      2024-09-10 14:36:28.7500702 +0800 CST
Policies:00000000-0000-0000-0000-000000000001 - global-management  #使用的全局策略,权限很大,类似于MySQL的root

4.修改acl文件

将生成的SecretID添加到acl文件中

[root@prometheus consul.d]# vim acl.hcl
acl = {enabled = truedefault_policy = "deny"enable_token_persistence = truetokens {agent= "7953f9e7-5fb6-6b22-9068-cbcac37fec10"}
}

5.修改单节点consul启动配置文件

添加-config-dir参数

./consul agent -server -bootstrap-expect 1 -config-dir /export/server/monitor/consul/consul.d/ -data-dir /export/server/monitor/consul/data  -node 127.0.0.1 -bind=127.0.0.1 -client=0.0.0.0 -datacenter prod -ui  -&

6.重启consul

[root@prometheus consul.d]# ../bin/restart.sh

三、漏洞处理结果验证

配置acl认证后
在这里插入图片描述
在这里插入图片描述
至此,consul未授权漏洞修复完成,同时也对consul配置acl认证有了大体的认知,虽然本次是以单节点的consul作为示例,acl认证部分描述的也不是很全面,后续针对consul acl认证再次整理一篇相关内容


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/53770.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tomcat是不是已经被Springboot集成了?

Tomcat 确实已经被 Spring Boot 集成。Spring Boot 通过其独特的“starter”模块(如spring-boot-starter-web)实现了对Tomcat的自动配置。当在Spring Boot项目中引入这个starter时,会自动引入相关的依赖,包括tomcat-embed-core、t…

C语言补习课——文件篇

来源:黑马程序员 第157讲 C语言操作文件概述 读取文件:输入流 写文件:输出流 读写的方向判断取决与参照,一般我们站在程序的角度判断读写方向。 第158讲 路径 基本概念 路径就是指文件在电脑中的位置,eg&#xf…

阿里旗下土耳其电商Trendyol计划进军欧洲市场

阿里旗下土耳其电商Trendyol计划进军欧洲市场 近年来,阿里巴巴集团在全球电商领域的布局持续深化,其旗下土耳其电商巨头Trendyol更是凭借其出色的市场表现和强劲的增长势头,成为了备受瞩目的焦点。近日,Trendyol宣布了一项重要战…

Java初步

背景 名字 Oak(橡树)改到一个岛(疑似盛产咖啡) Java之父 詹姆斯高斯林(James Gosling) sun公司研发 现在属于Oracle公司 把它称为甲骨文公司 应用 企业级应用开发 重点学习JavaSE(Standa…

线性代数 第六讲 特征值和特征向量_相似对角化_实对称矩阵_重点题型总结详细解析

文章目录 1.特征值和特征向量1.1 特征值和特征向量的定义1.2 特征值和特征向量的求法1.3 特征值特征向量的主要结论 2.相似2.1 相似的定义2.2 相似的性质2.3 相似的结论 3.相似对角化4.实对称矩阵4.1 实对称矩阵的基本性质4.2 施密特正交化 5.重难点题型总结5.1 判断矩阵能否相…

JavaScript高级——函数中的this

1、this是什么? ① 任何函数本质上都是通过某个对象来调用的,如果没有直接指定就是 window 。 ② 所有函数内部都有一个变量 this 。 ③ 它的值是调用函数的当前对象。 2、如何确定 this 的值? ① test()&#xff…

如何进行DAP-seq的数据挖掘,筛选验证位点

从样本准备到寄送公司,每一天都在“祈祷”有个心仪的分析结果,终于在这天随着邮件提示音的响起,收到了分析结果...... 分析前工作 爱基在进行数据分析之前,会有两次质控报告反馈给老师们。第一个,基因组DNA的提取质控…

springBoot 集成https

springBoot 集成https 1、springBoot默认的证书格式 pring Boot 需要 .p12 或 .jks 格式的证书。如果你只有 .pem 和 .key 文件,可以使用 openssl 工具将它们转换成 .p12 文件 2、转换.p12 我的证书文件如下,需要转换 2.1 下载openssl https://slpr…

苹果手机铃声怎么设置自己的歌?3个方法自定义手机铃声

苹果手机内部的手机铃声库只有固定的几首铃声,且都是纯音乐,比较单调,并不是所有用户都喜欢这些铃声。那么,苹果手机铃声怎么设置自己的歌呢?小编这里有3个方法,可以教大家如何将手机铃声设置成自己喜欢的歌…

Java 入门指南:Java 并发编程 —— 同步工具类 Semephore(信号量)

文章目录 同步工具类Semephore核心功能限制并发访问量公平与非公平策略灵活性与适应性 常用方法使用示例 同步工具类 JUC(Java.util.concurrent)是 Java 提供的用于并发编程的工具类库,其中包含了一些通信工具类,用于在多个线程之…

C语言-综合案例:通讯录

传送门:C语言-第九章-加餐:文件位置指示器与二进制读写 目录 第一节:思路整理 第二节:代码编写 2-1.通讯录初始化 2-2.功能选择 2-3.增加 和 扩容 2-4.查看 2-5.查找 2-6.删除 2-7.修改 2-8.退出 第三节:测试 下期…

【单片机开发】单片机常用开发工具

【前言】 在嵌入式系统领域,单片机(Microcontroller, MCU)作为核心组件,广泛应用于智能家居、工业控制、汽车电子等众多领域。而单片机开发工具,则是开发者们实现创意、解决问题的重要助手。本文主要讲述目前主流的单…

港科夜闻 | 叶玉如校长出席2024科技+新质生产力高峰论坛发表专题演讲,贡献国家科技强国战略...

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、叶玉如校长出席“2024科技新质生产力高峰论坛”,做了题为“三个创新:培育和发展新质生产力、贡献国家科技强国战略”的主题演讲。该论坛于9月2日在香港召开。论坛围绕夯实基础科研、推动源头创新、…

axure判断

在auxre中我们也可以实现判断的功能,当目标等于什么内容时则执行下方的功能。 一、判断输入框中是否有值 画布添加一个输入框、一个文本标签删除其中内容,添加一个按钮,输入框命名为【文本显示】文本标签命名为【提示】 给按钮新增一个交互…

单向链表概述

文章目录 🍊自我介绍🍊单向链表概述数据域和指针域数据类型设计 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞关注评论收藏(一键四连)哦~ 🍊自我介绍 Hello,大家好,我是小珑也要…

(计算机网络)应用层

1.为什么需要应用层 应用层提供使用tcp,udp使用的方式 协议就是制定的规则 2.域名服务器概述 域名是唯一的 新增域名,大家都要修改这个文本文件,所以要进行集中管理这个文本文件,而不是使用本地的hosts文件 hosts文件在Windows系统…

Java | Leetcode Java题解之第397题整数替换

题目: 题解: class Solution {public int integerReplacement(int n) {int ans 0;while (n ! 1) {if (n % 2 0) {ans;n / 2;} else if (n % 4 1) {ans 2;n / 2;} else {if (n 3) {ans 2;n 1;} else {ans 2;n n / 2 1;}}}return ans;} }

部署定时任务每2天清理一次表

1、创建存储过程 create or replace procedure truct authid current_user ---使用“authid Current_user”将存储过程转化为调用者权限 as begin execute immediate truncate table rep.tmp_s_st_busi_send_arc; end; / 2、创建定时任务 begin dbms_scheduler.create…

机器学习中的聚类艺术:探索数据的隐秘之美

一 什么是聚类 聚类是一种经典的无监督学习方法,无监督学习的目标是通过对无标记训练样本的学习,发掘和揭示数据集本身潜在的结构与规律,即不依赖于训练数据集的类标记信息。聚类则是试图将数据集的样本划分为若干个互不相交的类簇&#xff…

【人工智能学习笔记】4_3 深度学习基础之循环神经网络

循环神经网络(Recurrent Neural Network, RNN) 是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network),循环神经网络具有短期记忆能力 RNN核心思想 RNN的结构 一个典型…