OceanBase安全审计之传输加密

上一期我们讲了关于 OceanBase 安全审计的《身份鉴别》和《用户管理与访问控制》 两个部分,OceanBase 的安全机制介绍其支持传输加密,今天我们主要来实践一下如何配置传输加密以及验证是否真的加密。

作者:金长龙

爱可生测试工程师,负责 DMP 产品的测试工作。

作者:陈慧明

爱可生测试工程师,主要参与 DMP 和 DBLE 自动化测试项目。

本文来源:原创投稿

* 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

OceanBase 的安全机制介绍其支持传输加密,今天我们主要来实践一下如何配置传输加密以及验证是否真的加密。

环境准备

  1. 企业版 OceanBase 4.1 集群(3 节点) + OBProxy

  2. 配置 CA、服务端、客户端证书

OceanBase 社区版也可以实现。

OBServer 传输加密

2.1 开启加密

OceanBase 传输加密的开启通过多个配置项配合使用。

通过 root 用户登录 sys 租户

指定私钥/证书/CA 证书的获取方式

sql 复制代码
alter system set ssl_external_kms_info = '
{
"ssl_mode":"file"
}';

配置 MySQL 端口 SSL 通信

sql 复制代码
alter system set ssl_client_authentication = 'TRUE';
# 配置为 TRUE 后,MySQL 通信 SSL 即时开启。

配置 RPC 通信的 SSL 白名单

由于 OBServer 之间 TCP 连接都是长连接,因此需要重启 OBServer 后 RPC SSL 加密通信才能开启。

sql 复制代码
# RPC 通信 SSL 需要配置白名单。
# 整个集群都开启。
alter system set _ob_ssl_invited_nodes='ALL'; 

# 指定 IP 的 OBServer 开启 SSL。
alter system set _ob_ssl_invited_nodes='135.xxx.xx.xx, 128.xxx.xx.xx'; 

2.2 验证加密

MySQL 端口(2881)

通过 \s 查看。

抓包。

RPC 端口(2882)

日志检索 rpc connection accept,查看 use_ssl 的值是 True 还是 False。

抓包。

ODP 传输加密

使用了 OBProxy 之后,客户端跟 OceanBase 建立加密连接,实际是跟 OBProxy 建立加密连接,然后 OBProxy 跟 OBServer 再建立加密连接。 按照这个理解,前面服务端 OceanBase 集群开启 SSL 客户端认证也是个必要的前提了。

3.1 开启加密

  1. 使用 OBProxy 的 root@proxysys 账号登录。
  2. 设置证书、公钥、私钥。
sql 复制代码
UPDATE proxyconfig.security_config SET CONFIG_VAL= '{"sourceType" : "FILE", "CA" : "certs/ca.pem", "publicKey" : "certs/client-cert.pem", "privateKey" : "certs/client-key.pem"}' WHERE APP_NAME = 'obproxy' and VERSION = '1';

注意:这里配置的公钥和私钥,是前面生成的 Client 端证书,而不是 Server 端的。因为 OBProxy 作为客户端和服务端链路中间重要的一环,是客户端的"服务端",同时也是 OceanBase 服务端的"客户端"。

检查是否设置成功。

配置客户端和 OBProxy 开启 SSL 连接。

sql 复制代码
alter proxyconfig set enable_client_ssl=true;

配置 OBProxy 和 OBServer 开启 SSL 连接。

sql 复制代码
alter proxyconfig set enable_server_ssl=true;

用业务租户的管理员账户登录,设置 SSL 白名单。

sql 复制代码
alter system set ob_ssl_invited_common_names="obclient";
# 这个参数是租户级别的,需要在要连接的租户里设置,立即生效,不需要重启实例或者集群。

注意:ob_ssl_invited_common_names 的值要设置成和 Client 端证书 subject 中的 cn(common name) 字段一致。

3.2 验证加密

客户端和 OBProxy 的连接

OBProxy 和 OBServer 的连接

总结

实际配置和验证的过程也踩了几个坑,还是要结合文档多加理解和消化。

更多技术文章,请访问:https://opensource.actionsky.com/

关于 SQLE

爱可生开源社区的 SQLE 是一款面向数据库使用者和管理者,支持多场景审核,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。

SQLE 获取

类型 地址
版本库 https://github.com/actiontech/sqle
文档 https://actiontech.github.io/sqle-docs/
发布信息 https://github.com/actiontech/sqle/releases
数据审核插件开发文档 https://actiontech.github.io/sqle-docs/docs/dev-manual/plugins/howtouse
相关推荐
OceanBase数据库官方博客3 天前
OceanBase场景解码系列三|OB Cloud 如何稳定支撑中企出海实现数 10 倍的高速增长?
数据库·oceanbase·分布式数据库
码海踏浪3 天前
从简单到专业在OceanBase中查看SQL是否走索引
数据库·sql·oceanbase
OceanBase数据库官方博客5 天前
DeepK 自动程序修复框架论文——OceanBase 校企联合研究
数据库·oceanbase·分布式数据库
OceanBase数据库官方博客5 天前
高德刘振飞:从自研 OceanBase,回望数据库技术范式变迁
数据库·oceanbase·分布式数据库·高德
MMMMMMMMMMemory6 天前
社区版oceanbase报警XA事务悬挂
数据库·oceanbase
OceanBase数据库官方博客6 天前
APQO自适应参数化查询优化框架——OceanBase 校企联合研究成果
数据库·oceanbase·分布式数据库
OceanBase数据库官方博客6 天前
中国联通软研院基于OceanBase引领运营商数智化转型新范式
数据库·oceanbase·分布式数据库
OceanBase数据库官方博客7 天前
滔搏基于OceanBase实现 15TB到0.9TB“无痛切换”与“系统瘦身”
数据库·oceanbase·分布式数据库
OceanBase数据库官方博客7 天前
爱奇艺基于OceanBase实现百亿级卡券业务的“单库双擎”架构升级
数据库·架构·oceanbase·分布式数据库
OceanBase数据库官方博客9 天前
主流关系型数据库系统缺陷实证研究——OceanBase 校企联合研究
数据库·oceanbase·分布式数据库