【已评审】新增定制化项支持veth端口黑白名单的定制

背景

裸金属云环境,增加可信计算功能,使用了Host/BMC通信独立通道。裸金属场景作为业务面与管理面隔离的场景,需要保证带内外的通道隔离,防止Host侧基于此通道,发送管理命令来攻击并控制BMC。需要BMC支持通道使用白名单的方式控制数据流量, 仅处理Host侧过来的可信计算业务数据,丢弃其他访问数据。
【已评审】支持查询和设置 veth 防火墙及端口黑白名单原子能力
【已评审】redfish接口新增属性增强裸金属场景可信计算的带内通道安全

需补充可信计算在云裸金属场景下veth的带内通道的安全拦截定制化能力和配置导入导出能力

关联ISSUE

暂无

评审点

  1. 新增定制化项,在出厂配置时按照诉求进行定制。
  2. 新增配置导入导出项,支持用户导入导出veth的带内通道的安全拦截配置。

详细描述

评审点1:新增定制化项 Custom_Veth_FirewallMode、Custom_Veth_WhiteListPorts、Custom_Veth_WhiteListPorts

项目 值
定制化项 Custom_Veth_FirewallMode定制项
定制化接口名称 Custom_Veth_FirewallMode
取值类型 string
取值范围 [WhiteList, BlackList]
默认值 “BlackList”
处理逻辑 if (Custom_Veth_FirewallMode!= “”)
 设置veth网口通信黑白名单模式
else
 设置为默认值“BlackList”
项目 值
定制化项 Custom_Veth_WhiteListPorts定制项
定制化接口名称 Custom_Veth_WhiteListPorts
取值类型 string
取值范围 端口列表,每个元素取值范围 1~65535,最多50个元素,端口号以逗号分割,例如:“666,777”
默认值 “”
处理逻辑 if (Custom_Veth_WhiteListPorts!= “”)
 设置veth网口允许访问的端口列表WhiteListPorts
else
 WhiteListPorts设置为默认值 “”
项目 值
定制化项 Custom_Veth_BlackListPorts定制项
定制化接口名称 Custom_Veth_BlackListPorts
取值类型 string
取值范围 端口列表,每个元素取值范围 1~65535,最多50个元素,端口号以逗号分割,例如:“666,777”
默认值 “”
处理逻辑 if (Custom_Veth_BlackListPorts!= “”)
 设置veth网口禁止访问的端口列表BlackListPorts
else
 BlackListPorts设置为默认值""

刷新社区定制化文档:

https://www.openubmc.cn/docs/zh/development/specifications/server_factory_customization/server_factory_customization_items.html

评审点2:新增配置导入导出项,支持用户配置veth带内通道的安全拦截能力

配置项名称 配置项类别 配置项 归属组件 取值类型 取值说明 默认值 导入导出类型 说明
veth网口通信黑白名单模式 VethFirewall Mode host_agent string WhiteList:白名单模式
BlackList:黑名单模式
BlackList ImportAndExport 配置 veth 网口通信过滤模式。WhiteList 模式下仅允许白名单端口访问;BlackList 模式下禁止黑名单端口访问
veth网口允许访问端口列表 VethFirewall WhiteListPorts host_agent array 每个元素取值范围:1~65535
最多支持50个端口
[ ] ImportAndExport 配置 veth 网口允许访问的端口列表,仅在 WhiteList 模式下生效
veth网口禁止访问端口列表 VethFirewall BlackListPorts host_agent array 每个元素取值范围:1~65535
最多支持50个端口
[ ] ImportAndExport 配置 veth 网口禁止访问的端口列表,仅在 BlackList 模式下生效

配置项详情:

{
    "ConfigData": {
        "type": "object",
        "properties": {
            "VethFirewall": {
                "type": "object",
                "properties": {
                    "Mode": {
                        "type": "string",
                        "AttributeType": "ImportAndExport",
                        "enum": [
                            "WhiteList",
                            "BlackList"
                        ]
                    },
                    "WhiteListPorts": {
                        "type": "array",
                        "AttributeType": "ImportAndExport",
                        "maxItems": 50,
                        "items": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 65535
                        }
                    },
                    "BlackListPorts": {
                        "type": "array",
                        "AttributeType": "ImportAndExport",
                        "maxItems": 50,
                        "items": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 65535
                        }
                    }
                }
            }
        }
    }
}

是否准备好AI预审

否

评审结论

1、同意新增定制化项 Custom_Veth_FirewallMode、Custom_Veth_WhiteListPorts、Custom_Veth_BlackListPorts 用于配置裸金属云场景下 veth 带内通道的安全拦截能力。

其中:

  • Custom_Veth_FirewallMode 取值类型为字符串枚举,取值范围:[“WhiteList”、“BlackList”],默认值为 “BlackList”;当配置项为空时,使用默认值 “BlackList”。
  • Custom_Veth_WhiteListPorts 取值类型为字符串,表示端口列表;每个端口取值范围为 1~65535,最多支持 50 个端口,端口之间使用逗号分隔,例如:“666,777”;当配置项为空时,使用默认值“”,WhiteListPorts设置为默认值[ ]。
  • Custom_Veth_BlackListPorts 取值类型为字符串,表示端口列表;每个端口取值范围为 1~65535,最多支持 50 个端口,端口之间使用逗号分隔,例如:“666,777”;当配置项为空时,使用默认值“”,BlackListPorts设置为默认值[ ]。

2、同意新增配置导入导出项 VethFirewall.Mode、VethFirewall.WhiteListPorts、VethFirewall.BlackListPorts,用于配置 veth 带内通道的安全拦截能力,支持导入及导出。

其中:

  • VethFirewall.Mode 取值类型为字符串枚举,取值范围:[“WhiteList”、“BlackList”];“WhiteList” 表示仅允许白名单端口访问,“BlackList” 表示禁止黑名单端口访问。
  • VethFirewall.WhiteListPorts 取值类型为数组;每个元素取值范围为 1~65535,最多支持 50 个端口,仅在 “WhiteList” 模式下生效。
  • VethFirewall.BlackListPorts 取值类型为数组;每个元素取值范围为 1~65535,最多支持 50 个端口,仅在 “BlackList” 模式下生效。