由于CVE-2020-10770漏洞,k8s集群升级keycloak 8.0.0-->15.0.0(由于15.0.0最近又出安全漏洞,升级为16.0.0)
背景
前段时间项目组用到的8.0.0版本的keycloak被安全部门同事扫出来一个中危漏洞:
A flaw was found in Keycloak, where it is possible to force the server to call out an unverified URL using the OIDC parameter request_uri. This flaw allows an attacker to use this parameter to execute a Server-side request forgery (SSRF) attack.
所以这两天在琢磨怎么升级keycloak。
最终依赖导出功能解决升级问题:(部署方式为腾讯云的k8s容器服务)
keycloak通过standalone.sh导出导出
1 新建部署单元,镜像:直接填: jboss/keycloak,版本用16.0.0
2 数据库配置在环境变量,指定另外的库,(环境变量好像有先后顺序之分?期间填错了database和user的前后位置导致报错)具体需要的环境变量有:

- env:
- name: KEYCLOAK_USER
value: admin
- name: KEYCLOAK_PASSWORD
value: **********
- name: DB_VENDOR
value: mysql
- name: DB_ADDR
value: 10.200.192.3
- name: MYSQL_PORT
value: "3306"
- name: DB_DATABASE
value: keycloak_2022
- name: DB_USER
value: root
- name: DB_PASSWORD
value: **********
- name: PROXY_ADDRESS_FORWARDING
value: "true"
- name: KEYCLOAK_FRONTEND_URL
value: https://sso-2022.xxx.com/auth
- name: TZ
value: Asia/Shanghai
3 该数据库必须已创建,且为空;
4 启动新keycloak。如果启动正常的话可以看到如下日志:

1 Added 'admin' to '/opt/jboss/keycloak/standalone/configuration/keycloak-add-user.json', restart server to load user
2 -b 0.0.0.0
3 =========================================================================
4
5 Using MySQL database
6
7 =========================================================================
8
9 [0m16:54:59,234 INFO [org.jboss.modules] (CLI command executor) JBoss Modules version 1.11.0.Final
10 [0m[0m16:54:59,836 INFO [org.jboss.msc] (CLI command executor) JBoss MSC version 1.4.12.Final
11 [0m[0m16:54:59,922 INFO [org.jboss.threads] (CLI command executor) JBoss Threads version 2.4.0.Final
12 [0m[0m16:55:00,731 INFO [org.jboss.as] (MSC service thread 1-2) WFLYSRV0049: Keycloak 15.0.0 (WildFly Core 15.0.1.Final) starting
13 [0m[0m16:55:01,040 INFO [org.jboss.vfs] (MSC service thread 1-2) VFS000002: Failed to clean existing content for temp file provider of type temp. Enable DEBUG level log to find what caused this
14 [0m[0m16:55:04,734 INFO [org.wildfly.security] (ServerService Thread Pool -- 20) ELY00001: WildFly Elytron version 1.15.3.Final
15 [0m[0m16:55:06,725 INFO [org.jboss.as.controller.management-deprecated] (ServerService Thread Pool -- 5) WFLYCTL0033: Extension 'security' is deprecated and may not be supported in future versions
16 [0m[0m16:55:08,639 INFO [org.jboss.as.controller.management-deprecated] (Controller Boot Thread) WFLYCTL0028: Attribute 'security-realm' in the resource at address '/core-service=management/management-interface=http-interface' is deprecated, and may be removed in a future version. See the attribute description in the output of the read-resource-description operation to learn more about the deprecation.
5 从旧keycloak导出配置文件:keycloak-export.json:(参考链接https://www.coder.work/article/6370494)
bin/standalone.sh -Dkeycloak.migration.action=export -Dkeycloak.migration.provider=singleFile -Dkeycloak.migration.file=keycloak-export.json -Djboss.http.port=8888 -Djboss.https.port=9999 -Djboss.management.http.port=7777

6
登录新版本keycloak导入:
bin/standalone.sh -Dkeycloak.migration.action=import -Dkeycloak.migration.provider=singleFile -Dkeycloak.migration.file=keycloak-export.json -Dkeycloak.migration.strategy=OVERWRITE_EXISTING -Djboss.http.port=8888 -Djboss.https.port=9999 -Djboss.management.http.port=7777
7 将keycloak的 KEYCLOAK_FRONTEND_URL 改为生产用的url,并将域名解析切换至新keycloak。自此,生产流量已切换至新keycloak。
经验证,用户和权限配置等都迁移正常。
总结:
官方表示,控制台导出,会将一些敏感信息用****代替,所以从控制台的导出和导入都会有问题。
----------------------------------------------------
参考链接:https://wjw465150.gitbooks.io/keycloak-documentation/content/server_admin/topics/export-import.html
参考链接:https://www.keycloak.org/docs/latest/server_admin/#assembly-exporting-importing_server_administration_guide
由于CVE-2020-10770漏洞,k8s集群升级keycloak 8.0.0-->15.0.0(由于15.0.0最近又出安全漏洞,升级为16.0.0)的更多相关文章
- kubeadm部署K8S集群v1.16.3
本次先更新kubeadm快速安装K8S,二进制安装上次没写文档,后续更新,此次最新的版本是V1.16.3 1.关闭防火墙.关闭selinux.关闭swapoff -a systemctl stop f ...
- 在k8s集群部署SonarQube
目录 1.2.存储环境 1.3.sonarqube版本 2.部署sonarqube 2.1.部署PostgreSQL 2.2.部署SonarQube 2.3.访问检查 SonarQube 是一款用于代 ...
- 【K8S】基于单Master节点安装K8S集群
写在前面 最近在研究K8S,今天就输出部分研究成果吧,后续也会持续更新. 集群规划 IP 主机名 节点 操作系统版本 192.168.175.101 binghe101 Master CentOS 8 ...
- 使用kubeadm部署k8s集群[v1.18.0]
使用kubeadm部署k8s集群 环境 IP地址 主机名 节点 10.0.0.63 k8s-master1 master1 10.0.0.63 k8s-master2 master2 10.0.0.6 ...
- 万级K8s集群背后etcd稳定性及性能优化实践
背景与挑战 随着腾讯自研上云及公有云用户的迅速增长,一方面,腾讯云容器服务TKE服务数量和核数大幅增长, 另一方面我们提供的容器服务类型(TKE托管及独立集群.EKS弹性集群.edge边缘计算集群.m ...
- 冰河教你一次性成功安装K8S集群(基于一主两从模式)
写在前面 研究K8S有一段时间了,最开始学习K8S时,根据网上的教程安装K8S环境总是报错.所以,我就改变了学习策略,先不搞环境搭建了.先通过官网学习了K8S的整体架构,底层原理,又硬啃了一遍K8S源 ...
- 边缘计算k8s集群SuperEdge初体验
前言 手上一直都有一堆的学生主机,各种各样渠道途径拿来的机器. 一直管理里面都比较蛋疼,甚至也不太记得住它们在哪是什么IP,管理起来很是头疼. 有阵子空闲的时候想折腾了一下边缘计算集群方案. 希望能把 ...
- 利用容器逃逸实现远程登录k8s集群节点
某天, 某鱼说要吃瞄, 于是...... 李国宝:边缘计算k8s集群SuperEdge初体验 zhuanlan.zhihu.com 图标 照着上一篇文章来说,我这边边缘计算集群有一堆节点. 每个节 ...
- 二进制方法-部署k8s集群部署1.18版本
二进制方法-部署k8s集群部署1.18版本 1. 前置知识点 1.1 生产环境可部署kubernetes集群的两种方式 目前生产部署Kubernetes集群主要有两种方式 kuberadm Kubea ...
- Kubernetes全栈架构师(Kubeadm高可用安装k8s集群)--学习笔记
目录 k8s高可用架构解析 Kubeadm基本环境配置 Kubeadm系统及内核升级 Kubeadm基本组件安装 Kubeadm高可用组件安装 Kubeadm集群初始化 高可用Master及Token ...
随机推荐
- 制作 2D 素材|基于 AI 5 天创建一个农场游戏,第 4 天
欢迎使用 AI 进行游戏开发! 在本系列中,我们将使用 AI 工具在 5 天内创建一个功能完备的农场游戏.到本系列结束时,您将了解到如何将多种 AI 工具整合到游戏开发流程中.本系列文章将向您展示如何 ...
- 车联网安全WEB靶场实测
序言 车联网跟WEB安全相关联的地方不多,车联网更多还是基于IOT安全.但是车联网安全也和WEB安全有密切相关的地方,比如云安全.API安全等.近两年的智能网联汽车从IVI(车载信息娱乐系统).OTA ...
- dataset的基本使用
在折线图(柱状.散点图类似)中使用 案例一(默认方式) let option={ dataset:{ source:[ ["1","2","3&quo ...
- 织梦DedeCMS 0day RCE
前言 原文链接:https://mp.weixin.qq.com/s/bwBc4I9GeY6M_WlEDx83TA 复现记录时间: 下载当前最新版本DedeCMS V5.7.105进行漏洞复现以及漏洞 ...
- Xmake v2.7.7 发布,支持 Haiku 平台,改进 API 检测和 C++ Modules 支持
Xmake 是一个基于 Lua 的轻量级跨平台构建工具. 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时. 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLis ...
- echart4和echarts5同时引入方法
main.js import Vue from 'vue' 同时引入如下: // 引入echart4,echarts4版本放本地, import echarts4 from '../static/js ...
- RocketMQ - 消费者进度保存机制
RocketMQ设计了远程位点管理和本地位点管理两种位点管理方式.集群消费时,位点由客户端提交给Broker保存,具体实现代码在RemoteBrokerOffsetStore.java文件中:广播消费 ...
- LeetCode-2100 适合打劫银行的日子
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/find-good-days-to-rob-the-bank 题目描述 你和一群强盗准备打劫银行. ...
- mkdir 08 权限居然和mkdir 07不同
在用fileZilla软件往Ubuntu传输文件时,提示没有权限,当时就蒙了,往文件夹复制内容怎么还扯到权限了?ls -l一看,mkdir 08 权限居然和mkdir 07不同,记录下来. 原因:在嵌 ...
- Kubernetes持久化存储
一.emptyDir持久化存储配置 emptyDir 的一些用途: 缓存空间,例如基于磁盘的归并排序. 为耗时较长的计算任务提供检查点,以便任务能方便地从崩溃前状态恢复执行. 在 Web 服务器容器服 ...