当前位置: 首页 > 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.dtcms.com/a/295769.html

相关文章:

  • Vue-23-通过flask接口提供的数据使用plotly.js绘图(二)
  • Python爬虫实战:与dominoup.com平台结合的域名数据分析系统
  • 【数据可视化-72】苏超第七轮战罢:黑金大屏下的足球数据洞察(含完整代码、数据和大屏)
  • Windows 如何更改 ModelScope 的模型下载缓存位置?
  • 低功耗设计双目协同画面实现光学变焦内带AI模型
  • 几个常用的Oxygen编辑器插件
  • Python进阶第三方库之Matplotlib
  • Jenkins最新版本的安装以及集成Allure生成测试报告
  • “适应度”简介
  • 【牛客刷题】和零在一起
  • SQL基础⑫ | 视图篇
  • 学习设计模式《十九》——享元模式
  • ​Excel——SUMPRODUCT 函数
  • LeetCode 2322:从树中删除边的最小分数
  • J2EE模式---业务代表模式
  • 后信创时代,融合数据库成为国产数据库的新锚点
  • MongoDB的操作
  • skywalking应用性能监控
  • 内网穿透的应用-分布式系统观测革命:SigNoz与cpolar的技术协同之道
  • Java从入门到精通!第十三天(IO 流)
  • Web前端:JavaScript every()迭代方法
  • 闲庭信步使用图像验证平台加速FPGA的开发:第三十四课——车牌识别的FPGA实现(6)叠加车牌识别的信息
  • 认识单片机
  • Centos新增磁盘,进行根目录扩容
  • SkyWalking异步采集spring gateway日志
  • 基于Qt和OpenCV的图片与视频编辑器
  • 完整指南:使用Apache htpasswd为Chronograf配置基础认证及功能详解
  • 响应式前端设计:CSS 自适应布局与字体大小的最佳实践
  • spring boot h2数据库无法链接问题
  • 数学基础弱能学好大数据技术吗?