当前位置: 首页 > news >正文

数据库集群环境漏洞修复

1 说明

本月漏洞扫描,发现有一套pg系antdb集中式集群存在网络安全漏洞,需要及时对漏洞认领和整改,整改要求:

  1. 紧急漏洞需在2日内完成整改;
  2. 高风险漏洞需在15日内完成整改;
  3. 中风险漏洞需在3个月内完成整改。

完成整改后,需要及时提交复核申请,避免漏洞超时。

一般来说,生产环境数据库服务器的常见漏洞主要是:依赖软件的版本过低、特殊端口号未做限制,修复起来不算困难。

2 信息

漏洞如下:

漏洞uuid系统/资产名称内网IP内网端口漏洞名称漏洞等级
1AntDB192.168.131.1112378adbhamgr API 未授权访问漏洞【原理扫描】高危漏洞
2AntDB192.168.131.1112379adbdcs API 未授权访问漏洞【原理扫描】高危漏洞
3AntDB192.168.131.1112380adbdcs API 未授权访问漏洞【原理扫描】高危漏洞
4AntDB192.168.131.1212378adbhamgr API 未授权访问漏洞【原理扫描】高危漏洞
5AntDB192.168.131.1212379adbdcs API 未授权访问漏洞【原理扫描】高危漏洞
6AntDB192.168.131.1212380adbdcs API 未授权访问漏洞【原理扫描】高危漏洞
7AntDB192.168.131.1312378adbhamgr API 未授权访问漏洞【原理扫描】高危漏洞
8AntDB192.168.131.1312379adbdcs API 未授权访问漏洞【原理扫描】高危漏洞
9AntDB192.168.131.1312380adbdcs API 未授权访问漏洞【原理扫描】高危漏洞

本次漏洞扫描发现 AntDB 集中式集群(节点 192.168.131.11/12/13)存在 9 项高危漏洞,均为核心组件 adbhamgr(12378 端口)和 adbdcs(12379、12380 端口)的 API 未授权访问漏洞:

  • ADBHAMGR 是 AntDB 集群的高可用管理组件,负责管理集群节点(如主节点、同步备节点和异步备节点)的角色和状态(如 Leader、Sync Standby 或 Replica 状态),持续监控数据库节点的健康状态,并在检测到主库故障时,自动、快速地执行故障转移操作,确保集群在主节点故障时能自动切换,维持服务连续性。
  • ADBDCS 是 AntDB 集中式架构中的 “数据服务控制器”,主要负责数据库实例的生命周期管理、资源调度及客户端连接管控,是用户与数据库内核之间的中间层交互入口。是整个集中式 AntDB 集群的核心计算和存储引擎,承载着实际的 SQL 解析、优化、执行、事务管理、数据存储等功能。

这两个组件如此重要,既需要继续保持运行,也要封堵漏洞,确保数据库系统安全。处理方式就是调整防火墙策略限制集群内部主机访问12378、12379和w12380端口。

确认防火墙策略可以在线调整,不涉及数据库服务重启,不影响应用,业务无感知,即可选择一个割接窗口开展调整。

3 处理过程

用root用户在数据库集群所有节点配置以下防火墙策略。

3.1 检查防火墙状态

查看防火墙状态:

[root@adb-ccn1 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)Active: inactive (dead) since Wed 2025-07-23 20:44:13 CST; 1h 11min agoDocs: man:firewalld(1)Process: 3465 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)Main PID: 3465 (code=exited, status=0/SUCCESS)

查看防火墙是否开启,一般来说生产环境数据库主机在数据库部署的时候就禁用主机自带的防火墙软件了,主要由网络安全的同事负责使用专业的防火墙设备进行策略配置。

开启防火墙:

[root@adb-ccn1 ~]# systemctl start firewalld
[root@adb-ccn1 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)Active: active (running) since Wed 2025-07-23 22:07:18 CST; 2s agoDocs: man:firewalld(1)Main PID: 21100 (firewalld)CGroup: /system.slice/firewalld.service└─21100 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopidJul 23 22:07:18 adb-ccn1 systemd[1]: Starting firewalld - dynamic firewall daemon...
Jul 23 22:07:18 adb-ccn1 systemd[1]: Started firewalld - dynamic firewall daemon.
Jul 23 22:07:18 adb-ccn1 firewalld[21100]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It will be removed...ng it now.
Hint: Some lines were ellipsized, use -l to show in full.

3.2 关闭端口对外开放

移除TCP 端口 12378 、12379、12380的开放规则:

firewall-cmd --permanent --remove-port=12378/tcp
firewall-cmd --permanent --remove-port=12379/tcp
firewall-cmd --permanent --remove-port=12380/tcp

后续生效后,外部将无法访问这几个端口。

3.3 对数据库内部主机开放端口

将集群的所有结点ip分别开放这几个端口:

[root@adb-ccn1 ~]# 
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.131.11" port protocol="tcp" port="12378" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.131.12" port protocol="tcp" port="12378" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.131.13" port protocol="tcp" port="12378" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.131.11" port protocol="tcp" port="12379" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.131.12" port protocol="tcp" port="12379" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.131.13" port protocol="tcp" port="12379" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.131.11" port protocol="tcp" port="12380" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.131.12" port protocol="tcp" port="12380" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.131.13" port protocol="tcp" port="12380" accept"

后续生效后,仅允许集群内结点 IP 通过 TCP 协议访问目标端口。

3.4 重新加载规则

把上面修改的规则立即加载到运行时配置中,使其真正生效:

[root@adb-ccn1 ~]# firewall-cmd --reload
success

3.5 确认规则生效

查看已配置的所有规则:

[root@adb-ccn1 ~]# firewall-cmd --zone=public --list-rich-rules
rule family="ipv4" source address="192.168.131.11" port port="12378" protocol="tcp" accept
rule family="ipv4" source address="192.168.131.12" port port="12378" protocol="tcp" accept
rule family="ipv4" source address="192.168.131.13" port port="12378" protocol="tcp" accept
rule family="ipv4" source address="192.168.131.11" port port="12379" protocol="tcp" accept
rule family="ipv4" source address="192.168.131.12" port port="12379" protocol="tcp" accept
rule family="ipv4" source address="192.168.131.13" port port="12379" protocol="tcp" accept
rule family="ipv4" source address="192.168.131.11" port port="12380" protocol="tcp" accept
rule family="ipv4" source address="192.168.131.12" port port="12380" protocol="tcp" accept
rule family="ipv4" source address="192.168.131.13" port port="12380" protocol="tcp" accept

3.6 删除规则【备用】

如果ip或端口号不小心输错,或者后续需要再调整防火墙策略,可以使用如下方式进行删除:

firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.131.11" port port="12378" protocol="tcp" accept'
firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.131.12" port port="12378" protocol="tcp" accept'
firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.131.13" port port="12378" protocol="tcp" accept'
firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.131.11" port port="12379" protocol="tcp" accept'
firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.131.12" port port="12379" protocol="tcp" accept'
firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.131.13" port port="12379" protocol="tcp" accept'
firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.131.11" port port="12380" protocol="tcp" accept'
firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.131.12" port port="12380" protocol="tcp" accept'
firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.131.13" port port="12380" protocol="tcp" accept'

将当前运行时配置保存为永久配置:

firewall-cmd --runtime-to-permanent

查看规则是否生效:

firewall-cmd --zone=public --list-rich-rules

重载规则:

firewall-cmd --reload

再查看规则是否生效:

firewall-cmd --zone=public --list-rich-rules

4 检查集群状态

检查集群状态是否正常:

[root@adb-ccn1 ~]# su - antdb
Last login: Wed Jul 23 22:20:29 CST 2025 on pts/0[antdb@adb-ccn1 ~]$ adbhamgrctl -c /etc/adbhamgr/adbhamgr_antdbcluster.yaml list
+ Cluster: antdbcluster (7454263324141054958) +---------+----+-----------+
| Member     | Host                 | Role    | State   | TL | Lag in MB |
+------------+----------------------+---------+---------+----+-----------+
| adbhamgr-1 | 192.168.131.11:15432 | Replica | running | 28 |         0 |
| adbhamgr-2 | 192.168.131.12:15432 | Leader  | running | 30 |           |
| adbhamgr-3 | 192.168.131.13:15432 | Replica | running | 28 |         0 |
+------------+----------------------+---------+---------+----+-----------+

集群状态正常,如果不正常则显示为:

5 总结

本次漏洞扫描发现 AntDB 集中式集群(节点 192.168.131.11/12/13)存在 9 项高危漏洞,均为核心组件 adbhamgr(12378 端口)和 adbdcs(12379、12380 端口)的 API 未授权访问漏洞。按要求需 15 日内整改。整改方案为调整防火墙策略,关闭端口对外开放,仅允许集群内部节点访问,操作无需重启数据库且不影响业务,修复操作执行后需及时提交复核。

http://www.lryc.cn/news/598062.html

相关文章:

  • uniapp写app做测试手机通知栏展示内容
  • AI结对编程:分布式团队的集体记忆外脑
  • TechGPT3部署
  • 初识opencv03——图像预处理2
  • 中国西北典型绿洲区土壤水分特征(2018-2019年)
  • 前端面试专栏-前沿技术:30.跨端开发技术(React Native、Flutter)
  • LeetCode 1695.删除子数组的最大得分:滑动窗口(哈希表)
  • 智慧工厂网络升级:新型 SD-WAN 技术架构与应用解析
  • 【Git知识】Git 常用知识集合之基础--分支系统与 Tag 标签机制
  • Leetcode 07 java
  • CodeBuddy IDE发布:编程新时代的颠覆者?
  • Golang实现 - 实现只有表头的 Excel 模板,并在指定列添加了下拉框功能。生成的 Excel 文件在打开时,指定列的单元格会显示下拉选项
  • 安全逆向工程学习路线
  • Java学习第七十一部分——Dubbo
  • RCLAMP0512TQTCT 升特半导体 TVS二极管 12通道全防护芯片 以太网/PLC控制/5G基站专用
  • 数学基础弱能学好大数据技术吗?
  • 仓库解读 - OpenExo
  • 滑动窗口-5
  • 企业安全基石:解锁等保测评的战略价值
  • TRUMPF TruConvert DC 1008 – 1010 TruConvert System Control 逆变器
  • 【图像理解进阶】如何进行小目标物体的检测?
  • 快乐社兑换码怎么获得,免排队,
  • LLM中典型的Transformer层中:MLP Residual; LN Agg: μ, σ; SM Agg 是什么意思
  • 模拟退火算法对Rastrigin函数的优化
  • 【第五节】列表渲染
  • Flink-1.19.0源码详解8-ExecutionGraph生成-前篇
  • 【图论】倍增与lca
  • 网络编程——聊天程序实现
  • 嵌入式通信知识串讲:从同步 / 异步传输到 UART 协议 STM32F103 硬件解析
  • 换热站可视化:藏在数字里的城市温暖密码