1 說明
本月漏洞掃描,發現有一套pg系antdb集中式集群存在網絡安全漏洞,需要及時對漏洞認領和整改,整改要求:
- 緊急漏洞需在2日內完成整改;
- 高風險漏洞需在15日內完成整改;
- 中風險漏洞需在3個月內完成整改。
完成整改后,需要及時提交復核申請,避免漏洞超時。
一般來說,生產環境數據庫服務器的常見漏洞主要是:依賴軟件的版本過低、特殊端口號未做限制,修復起來不算困難。
2 信息
漏洞如下:
| 漏洞uuid | 系統/資產名稱 | 內網IP | 內網端口 | 漏洞名稱 | 漏洞等級 |
|---|---|---|---|---|---|
| 1 | AntDB | 192.168.131.11 | 12378 | adbhamgr API 未授權訪問漏洞【原理掃描】 | 高危漏洞 |
| 2 | AntDB | 192.168.131.11 | 12379 | adbdcs API 未授權訪問漏洞【原理掃描】 | 高危漏洞 |
| 3 | AntDB | 192.168.131.11 | 12380 | adbdcs API 未授權訪問漏洞【原理掃描】 | 高危漏洞 |
| 4 | AntDB | 192.168.131.12 | 12378 | adbhamgr API 未授權訪問漏洞【原理掃描】 | 高危漏洞 |
| 5 | AntDB | 192.168.131.12 | 12379 | adbdcs API 未授權訪問漏洞【原理掃描】 | 高危漏洞 |
| 6 | AntDB | 192.168.131.12 | 12380 | adbdcs API 未授權訪問漏洞【原理掃描】 | 高危漏洞 |
| 7 | AntDB | 192.168.131.13 | 12378 | adbhamgr API 未授權訪問漏洞【原理掃描】 | 高危漏洞 |
| 8 | AntDB | 192.168.131.13 | 12379 | adbdcs API 未授權訪問漏洞【原理掃描】 | 高危漏洞 |
| 9 | AntDB | 192.168.131.13 | 12380 | adbdcs 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 daemon
Loaded: 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 ago
Docs: 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 daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2025-07-23 22:07:18 CST; 2s ago
Docs: man:firewalld(1)
Main PID: 21100 (firewalld)
CGroup: /system.slice/firewalld.service
└─21100 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
Jul 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 日內整改。整改方案為調整防火墻策略,關閉端口對外開放,僅允許集群內部節點訪問,操作無需重啟數據庫且不影響業務,修復操作執行后需及時提交復核。




