1.分析及解决方案概述
分析原因 通过对现有信息的分析,可以看到主机漏洞是由于RAC的ons引起。
ons使用6100、6200端口进行集群内部通信。
解决方案 针对现有情况,建议如下:
1)启用防火墙,确保只有RAC集群节点机器可以访问6100/6200 端口。
后续计划 启用防火墙,确保只有RAC集群节点机器可以访问6100/6200 端口。
2.问题描述
03月4日XX系统出现漏洞,未导致系统/业务发生重启/业务中断,未产生不良影响,后通过启用防火墙,确保只有RAC集群节点机器可以访问6100/6200 端口操作,漏洞扫描通过,需要从根本上分析问题原因,避免该类问题再次发生;
操作系统版本 RHEL 7
数据库架构 RAC集群
数据库版本 11.2.0.4
业务名称 xxx
3.问题分析
3.1问题现象
漏扫发现漏洞,客户要求修复
3.2漏洞分析
可以发现6200是RAC的ons资源使用的端口
RAC的ons资源使用的端口
分析 1.无密钥泄露:ons.config 是一个纯文本的引导文件。它指向了 walletfile,但不包含 RSA 私钥。黑客拿到这个文件,无法直接解密任何数据,也无法冒充节点,因为他们没有对应的私钥文件(位于 walletfile 指定的目录中,且受操作系统权限保护)。 2.非代码执行点:该文件不被直接解析执行代码,只是被 ONS 进程读取作为参数。不存在像“Log4j”那样的注入漏洞。 结论 依靠网络防火墙。确保 TCP 6100 和 6200 端口只能由 nodes 列表中定义的 IP 地址访问,拒绝其他所有 IP。只要网络层是隔离的,allowunsecuresubscriber=yes 的风险就极低。 处理 1.无需恐慌:该文件内容是正常的 Oracle 19c RAC 配置,不存在所谓的“RSA 漏洞”或硬编码密码。 2.忽略误报:如果您是使用自动化扫描工具得到的“RSA 漏洞”报告,这极大概率是误报。工具可能检测到 walletfile 关键字或 ONS 端口开放,错误地关联了某些 CVE。您可以将此标记为“误报”或“已接受风险”。 3.加固建议: 网络隔离:确认防火墙规则,禁止非集群节点 IP 访问 6100/6200 端口。3.3修改配置文件重启ons资源分析
测试过了,改配置文件没用,重启会恢复外部6200访问权限
也不能修改配置文件权限,否则启动失败
3.4问题分析总结
综合上述分析,我们可以看到:
主机漏洞是由于RAC的ons引起。
ons使用6100、6200端口进行集群内部通信。
4.处理/优化建议
启用防火墙,确保只有RAC集群节点机器可以访问6100/6200 端口
确认RAC的内部IP
确认RAC的对外端口
确认使用的所有端口 [root@xxx02 app]# netstat -tan | grep ESTABLISHED | awk ‘{print $5}’ | cut -d’:’ -f2 | sort | uniq -c | sort -nr 7 1521 6 4 32434 3 1525 1 9516 1 9486 1 6200 1 59605 1 58088 1 55625 1 54950 1 54947 1 54944 1 54942 1 54939 1 54930 1 54924 1 54918 1 54909 1 54895 1 52454 1 51640 1 51521 1 51519 1 51501 1 51493 1 51284 1 51282 1 51280 1 51278 1 51276 1 51228 1 51071 1 50897 1 50866 1 39352 1 39350 1 37389 1 37387 1 37385 1 37383 1 36008 1 34629 1 34627 1 27123 1 26655 1 13192 1 12768 1 10226放通所有端口,然后只处理6200端口,同时放通两个/24网段的6200访问 firewall-cmd --set-default-zone=trusted firewall-cmd --permanent --zone=trusted --add-rich-rule=‘rule family=“ipv4” source address=“xx.yy.9.0/24” port port=“6200” protocol=“tcp” accept’ firewall-cmd --permanent --zone=trusted --add-rich-rule=‘rule family=“ipv4” source address=“192.168.200.0/24” port port=“6200” protocol=“tcp” accept’ firewall-cmd --permanent --zone=trusted --add-rich-rule=‘rule family=“ipv4” port port=“6200” protocol=“tcp” reject’ firewall-cmd --reload确认RAC集群正常