依据 GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》第三级"安全计算环境" 条款,结合 OceanBase 4.x 官方《安全配置白皮书》 及多家测评机构现场实践,给出可直接落地的 测评命令清单。
覆盖身份鉴别、访问控制、安全审计、入侵防范、恶意代码防范、数据完整性、数据备份恢复、剩余信息保护 8 大控制点,均已在 OceanBase 4.2.1(MySQL 模式 / Oracle 模式)+ OBProxy + OCP 环境验证通过。
建议在 root 或 SYS 租户 sys 用户 下执行;默认连接工具为 obclient 或 mysql -h127.1 -P2883 -uroot@sys -p
一、身份鉴别(8.1.4.1)
|
控制项 |
测评命令 |
达标判据 |
|---|---|---|
|
帐号唯一性 | SELECT user,host FROM mysql.user; |
user+host 唯一,无重复 |
|
空口令检查 | SELECT user,host FROM mysql.user WHERE authentication_string=''; |
无返回行 |
|
密码复杂度 |
MySQL 模式: | validate_password_policy=STRONG
或 profile 绑定自定义函数 |
|
密码有效期 | SHOW VARIABLES LIKE 'default_password_lifetime'; |
≤90 天(86400*90) |
|
登录失败锁定 |
安装 connection_control: | connection_control_failed_connections_threshold≤5 |
|
远程管理加密 | SHOW VARIABLES LIKE '%ssl%'; | have_ssl=YES
;OBProxy 已开启 SSL 监听 |
|
超时自动退出 | SHOW VARIABLES LIKE 'wait_timeout'; |
≤600 秒 |
二、访问控制(8.1.4.2)
|
控制项 |
测评命令 |
达标判据 |
|---|---|---|
|
最小权限原则 | SHOW GRANTS FOR 'app'@'%'; |
仅授予业务所需库表权限 |
|
默认/匿名账户 | SELECT user,host FROM mysql.user WHERE user IN ('','root','test'); |
已删除或禁用 |
|
三权分立 |
访谈 + 查看角色: |
安全、审计、系统三类管理员分离 |
|
粒度到表/字段 |
Oracle 模式: |
策略存在或表级权限可控 |
|
管理终端限制 | SELECT * FROM __all_white_list;
(sys 租户) |
仅允许堡垒机 IP |
三、安全审计(8.1.4.3)
|
控制项 |
测评命令 |
达标判据 | |
|---|---|---|---|
|
审计开启 |
Oracle 模式: | audit_trail=DB
或 | |
|
审计策略覆盖 |
Oracle 模式: |
策略已启用,覆盖登录、DDL、DML | |
|
审计日志保留 | SHOW PARAMETERS LIKE 'audit_file_max_size';
|
单文件 ≥100 MB,保留 ≥180 天 | |
|
审计日志权限 | ls -l /home/admin/oceanbase/log/audit/ |
仅 | |
|
审计记录字段 |
取一条审计日志: |
tail -1` |
含时间、用户、客户端 IP、操作、结果 |
四、入侵防范(8.1.4.4)
|
控制项 |
测评命令 |
达标判据 | |||
|---|---|---|---|---|---|
|
补丁与版本 | SELECT version();
`rpm -qa |
grep oceanbase` |
运行版本 ≥4.2.1 且补丁 ≤30 天 | ||
|
最小安装 |
`systemctl list-unit-files --state=enabled |
grep -vE "ob |
ssh |
audit"` |
仅必要服务 |
|
漏洞扫描 |
访谈 + 第三方扫描(绿盟、启明星辰) |
无 Critical/High 漏洞 | |||
|
连接数限制 | SHOW VARIABLES LIKE 'max_connections'; |
≤合理业务峰值,防止 DoS |
五、恶意代码防范(8.1.4.5)
|
控制项 |
测评命令 |
达标判据 | |
|---|---|---|---|
|
杀毒软件 | systemctl is-active clamd
|
实时保护开启,病毒库 ≤24 h | |
|
可信启动 |
`dmesg |
grep -i ima` |
已启用 IMA 度量 |
六、数据完整性(8.1.4.7)
|
控制项 |
测评命令 |
达标判据 |
|---|---|---|
|
传输完整性 | SHOW VARIABLES LIKE '%ssl%';
|
SSL 握手成功,证书有效 |
|
存储完整性 |
表空间/日志强制写: | log_mode=ARCHIVELOG
, |
|
校验技术 |
业务表加 CHECKSUM: |
启用 row checksum |
七、数据备份与恢复(8.1.4.9)
|
控制项 |
测评命令 |
达标判据 | ||
|---|---|---|---|---|
|
物理备份 |
`obdumper --help |
head -3 |
grep obdumper` |
每日 2:00 全量,备份保留 30 天 |
|
逻辑备份 | obloader --help
|
逻辑导出成功,恢复演练通过 | ||
|
冗余部署 | SELECT zone,svr_ip,svr_port FROM __all_server; |
至少三副本,跨机房容灾 |
八、剩余信息保护(8.1.4.10)
|
控制项 |
测评命令 |
达标判据 |
|---|---|---|
|
敏感数据清除 | SHOW VARIABLES LIKE 'binlog_row_image'; | binlog_row_image=MINIMAL
减少残留 |
|
审计日志清零策略 | SELECT value FROM __all_sys_parameter WHERE name='audit_trail_purge_interval'; |
自动清理 ≥30 天前记录 |
一键巡检脚本(可直接使用)
#!/bin/bash
# OceanBase 4.x 等保三级一键巡检脚本
# 适用:OceanBase 4.2.1+(MySQL模式/Oracle模式)
# 执行用户:root@sys 或 SYS租户sys用户
OB_USER="root@sys"
OB_PASS="your_password"
OB_HOST="127.0.0.1"
OB_PORT="2883"
echo"===== 1 身份鉴别 ====="
obclient -h$OB_HOST -P$OB_PORT -u$OB_USER -p$OB_PASS-e"
SELECT '空口令账户',user,host FROM mysql.user WHERE authentication_string='';
SHOW VARIABLES LIKE 'validate_password%';
SHOW VARIABLES LIKE 'default_password_lifetime';
SHOW VARIABLES LIKE 'connection_control%';
SHOW VARIABLES LIKE '%ssl%';
SHOW VARIABLES LIKE 'wait_timeout';
"
echo"===== 2 访问控制 ====="
obclient -h$OB_HOST -P$OB_PORT -u$OB_USER -p$OB_PASS-e"
SELECT user,host FROM mysql.user WHERE user IN ('','root','test');
SELECT * FROM __all_white_list;
"
echo"===== 3 安全审计 ====="
obclient -h$OB_HOST -P$OB_PORT -u$OB_USER -p$OB_PASS-e"
SHOW VARIABLES LIKE 'ob_audit_log_level';
SHOW PARAMETERS LIKE 'audit_file%';
"
ls-l /home/admin/oceanbase/log/audit/
echo"===== 4 入侵防范 ====="
obclient -h$OB_HOST -P$OB_PORT -u$OB_USER -p$OB_PASS-e"
SELECT version();
SHOW VARIABLES LIKE 'max_connections';
"
rpm-qa|grep oceanbase
echo"===== 5 数据备份 ====="
crontab-l|grep obdumper
ls-l /backup/ob/ 2>/dev/null ||echo"备份目录未配置"
使用提示
1. OBProxy SSL 一键开启
alter proxyconfig set enable_client_ssl=true;
alter proxyconfig set enable_server_ssl=true;
并确认证书已下发到所有节点 ~/oceanbase/wallet/。
2. 审计保留策略配置
通过 OCP 控制台 → 集群 → 参数 → audit_file_expire_time 图形化修改,立即生效。
3. 双模式差异注意
|
功能项 |
MySQL 模式 |
Oracle 模式 |
|---|---|---|
|
密码复杂度 | validate_password
插件 | dba_profiles
+ 自定义函数 |
|
审计参数 | ob_audit_log_level | audit_trail |
|
权限视图 | information_schema | dba_*
视图 |
|
连接工具 |
mysql/obclient |
obclient/SQL*Plus |
4. 高风险项重点核查
|
检查项 |
验证方法 |
不合规判定 |
|---|---|---|
|
双因子认证缺失 |
访谈 + 登录测试 |
仅单一口令认证 |
|
审计未启用 | SHOW VARIABLES LIKE 'ob_audit_log_level' |
值为 |
|
默认账户未清理 | SELECT user FROM mysql.user WHERE user='root' |
存在默认 root 且未重命名 |
|
三权分立缺失 |
访谈 + 角色查询 |
安全/审计/系统管理员为同一人 |
|
无异地备份 | SELECT zone FROM __all_server |
所有节点在同一机房 |
测评执行要点
1. 权限准备
-
系统命令需
admin用户或root权限 -
数据库命令需在
SYS租户下执行,使用root@sys或sys用户 -
MySQL 模式租户内查询需对应租户管理员
2. 环境变量配置
exportOB_HOME=/home/admin/oceanbase
exportPATH=$OB_HOME/bin:$PATH
aliasobclient='obclient -h127.1 -P2883'
3. 现场核查重点
-
SSL 加密:不仅看配置,需实际抓包验证
2883端口为 TLS 握手 -
审计日志:抽查
observer.audit文件,确认包含失败登录记录 -
三权分立:OceanBase 原生支持多租户,需在
SYS租户和业务租户分别核查 -
备份有效性:必须现场执行
obloader恢复演练,验证备份文件可用
参考标准:GB/T 22239-2019、GB/T 28448-2019
适用版本:OceanBase 4.2.1+(含 4.2.x、4.3.x)
验证环境:CentOS 7.6 / Anolis OS 7.9 / EulerOS 2.0
配套工具:OBProxy 4.2+、OCP 4.2+、obdumper/obloader 4.2+
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/Arthur_WangYu/article/details/158655306




