wbf
(华鲲Wbf)
2026 年1 月 13 日 06:31
1
问题描述
syslog功能传输协议为TLS时,设置syslog服务器地址为IPV4和IPV6成功,预期失败
环境信息
BMC:25.09.03.01
BIOS:21.24
所有CPLD:
扩展板_BC02IOEA_CPLD V0.10
主板_BC83AMDA-BC83AMDB_CPLD V6.12
风扇板_BC83FDCA_CPLD V0.05
直通板_BC02STMA_CPLD 0.01
12硬盘背板_BC01NHBB_CPLD 5.03
OS版本:NA
OS内核:NA
重现步骤
设置syslog功能传输协议为TLS
设置syslog服务器地址为IPV4和IPV6
期望结果
设置失败
实际结果
设置成功
尝试过的解决方案
[列出您已经尝试过的解决方案及结果]
答案内容由AI生成,仅供参考:
syslog功能传输协议为TLS时,设置syslog服务器地址为IPv4和IPv6问题分析
问题描述
在BMC系统版本为 25.09.03.01 的环境下,当配置syslog功能使用 TLS传输协议 时,成功设置了syslog服务器地址为IPv4(如 1.1.1.1)或IPv6地址,预期应设置失败 ,但实际设置成功。这与系统设计规范不符。
环境信息
BMC版本 :25.09.03.01
BIOS版本 :21.24
CPLD版本 :
扩展板 BC02IOEA CPLD:V0.10
主板 BC83AMDA-BC83AMDB CPLD:V6.12
风扇板 BC83FDCA CPLD:V0.05
直通板 BC02STMA CPLD:0.01
12硬盘背板 BC01NHBB CPLD:5.03
OS版本/内核 :NA
硬件平台 :openUBMC
日志协议 :Syslog over TLS
预期行为
根据系统设计规范:
当“传输协议”选择“TLS”时,Syslog服务器地址必须使用域名,不允许使用IPv4或IPv6地址 。
原因说明:
TLS协议依赖证书验证机制 ,证书通常绑定的是**主机名(域名)**而不是IP地址。
BMC作为Syslog客户端,在建立TLS连接时需验证服务器身份。若仅配置IP地址而无对应SNI(Server Name Indication)支持或证书绑定,将导致无法正确校验服务器合法性。
系统设计要求用户在使用TLS时必须提供域名,并确保已在“BMC管理 > 网络配置”中正确配置DNS解析信息。
因此,使用IPv4或IPv6地址配置TLS通道应当被拒绝并提示错误 。
实际结果
尽管选择了 TLS 传输协议 ,用户仍能成功将 Syslog服务器地址设置为IPv4地址 (例如 1.1.1.1),系统未阻止该操作。
示例配置:
传输协议: TLS
服务器地址:1.1.1.1(IPv4)
端口:8080
结果: 配置成功
此行为违反安全设计原则,可能导致以下风险:
证书验证失败或绕过 :IP地址通常没有有效的域名证书,可能引发证书校验失败或被忽略。
中间人攻击风险增加 :若未强制校验服务器身份,存在安全通信被劫持的风险。
不符合Redfish和行业安全标准 。
相关配置项与机制支持
配置项
当前值
描述
BMCSet_CustomSyslog_Trans_Protocol
TLS
定义Syslog传输协议,支持UDP/TCP/TLS
BMCSet_CustomSyslog_0_IpAddr
1.1.1.1
存储第一个Syslog通道的目标地址
BMCSet_CustomSyslog_State
1(启用)
控制自定义Syslog功能状态
HwSyslogService
v1_0_0
Redfish架构中定义的硬件日志服务
TransmissionProtocol
TLS
在Redfish输出中标明传输协议为TLS
关系确认 :
通过KG数据可知:BMCSet_CustomSyslog_Trans_Protocol → Syslog,控制传输协议类型;而 HwSyslogService 输出中 TransmissionProtocol 被设为 TLS,表明系统已识别协议类型。
设计规范依据
来自文档《服务器出厂定制化配置》和UI说明:
重要说明 :
当“传输协议”选择“TLS”时,服务器地址必须为域名 。
使用域名时,必须在“BMC管理 > 网络配置”页面中配置正确的DNS信息。
若域名的IP发生变化,需手动关闭再重新开启Syslog服务。
域名格式限制:
最大长度255字符
仅允许数字、字母、-、.
连字符不能开头/结尾,点号不能开头
任意两“.”之间不超过63字符
问题影响
影响项
说明
安全性降低
TLS的核心价值是身份认证,使用IP地址易导致证书不匹配或被忽略
合规性缺失
不符合Redfish、ISO/IEC 27001等安全日志传输标准
运维隐患
DNS解析变化后可能无法自动更新IP,造成日志丢失且无告警
证书管理混乱
当前系统使用统一SSL证书(Web/Redfish/Syslog共用),更应强调域名一致性
根本原因分析
前端界面未校验地址类型
Web UI允许在 TLS 模式下输入 IPv4/IPv6 地址,缺乏前置校验逻辑 。
后端接口未拦截非法输入
后端命令如 ipmcset 或 Redfish API 接口未对 “protocol=tls && address=is_ip” 的组合进行拒绝处理。
配置流程绕过了证书验证强制检查
即使地址为IP,系统仍尝试建立TLS连接,可能导致忽略证书错误或使用IP SAN证书(若存在)。
建议修复方案
前端修复
if (protocol === 'TLS' && isIPAddress(serverAddress)) {
showError("TLS 模式下不支持使用 IP 地址,请输入域名");
disableSaveButton();
}
后端校验(Redfish 或 ipmcset)
在处理 CustomSyslog 设置时加入判断逻辑:
if protocol == "TLS" and is_ip(server_address):
return {
"status": "error",
"message": "TLS模式下服务器地址必须为域名"
}
增强Redfish Schema约束(HwSyslogService.v1_0_0)
"ServerAddress": {
"description": "The address of the Syslog server",
"type": "string",
"pattern": "^(?=.{1,255}$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$"
}
并在 TransmissionProtocol == TLS 时强制该字段必须符合域名格式。
验证方法
登录BMC Web界面 → “维护诊断” → “告警上报”
启用Syslog,选择 TLS协议
尝试输入IPv4地址(如 1.1.1.1)作为服务器地址
预期结果 :
输入框报错或保存按钮禁用
提示:“TLS模式下必须使用域名”
输入有效域名(如 syslog.example.com)并保存 → 应成功
结论
当前在 openUBMC + BMC版本25.09.03.01 系统中存在一个安全配置缺陷 :
在TLS传输模式下,允许将Syslog服务器地址设置为IPv4/IPv6地址,应禁止但未禁止 。
这违反了TLS通信的安全基本原则,降低了系统的可审计性和防篡改能力。建议立即在前端UI与后端服务层 增加校验逻辑,强制TLS通道使用域名地址,以提升日志传输的安全性与合规性。
相关链接:
【iTestSmart 1.0.36】验证导入Syslog本地证书在不支持的传输协议时返回无明文敏感
集成busybox修改manifest.yml后,在docker下执行bingo build报错
【iTestSmart 1.0.36】CLI配置IPV4地址测试,测试结果Fail
映射器配置开发者测试配置指南
服务器出厂定制化配置 | 文档中心 | openUBMC