背景
BMC安全管理计划支持基于IP的登录防暴力破解能力,需要支持禁止/允许某个特定IP访问特定端口。
关联ISSUE
暂无ISSUE
整体方案
- 新增针对远端IP及目的端口设置iptables过滤规则的方法;
- 安全管理调用该方法,实现禁止/允许特定IP针对特定本地端口的访问;
评审点
- 新增资源;
- 新增资源协作接口方法,支持针对远端IP及目的端口设置过滤规则;
详细描述
-
新增资源
资源Path:/bmc/kepler/Managers/:ManagerId/FilterConfig
资源interface:bmc.kepler.Managers.FilterConfig -
新增资源协作接口方法,支持针对远端IP及目的端口设置过滤规则;
| 方法名称 | 请求签名 | 请求参数描述 | 响应签名 | 响应参数描述 | 方法描述 | 访问权限 |
|---|---|---|---|---|---|---|
| AddFilterRule | a{ss} | FilterType:Accept/Drop/Reject ProtocolType:协议类型(例:tcp/udp) SrcIpAddr:远端访问IP地址 DstPort:端口号(例:SSH服务使用22端口) Usage:用途(支持按照用途添加/批量删除) |
无 | 无 | 针对特定IP特定端口新增iptables filter规则 | SecurityMgmt |
| DeleteFilterRule | a{ss} | FilterType:Accept/Drop/Reject ProtocolType:协议类型(例:tcp/udp) SrcIpAddr:远端访问IP地址 DstPort:端口号(例:SSH服务使用22端口) Usage:用途(支持按照用途添加/批量删除) |
无 | 无 | 针对特定IP特定端口删除iptables filter规则 | SecurityMgmt |
评审结论
- 同意新增资源,资源Path:
/bmc/kepler/Managers/:ManagerId/FilterConfig,资源Interface:bmc.kepler.Managers.FilterConfig; - 同意新增资源协作接口方法AddFilterRule,权限为SecurityMgmt,请求签名为a{ss},参数范围如下表,无响应签名,用于针对特定IP特定端口新增iptables filter规则;
| 参数属性名称 | 参数属性取值 | 取值说明 | 可选/必选 |
|---|---|---|---|
| FilterType | Accepet/Drop/Reject | Filter规则策略 | 必选 |
| ProtocolType | tcp/udp | 协议类型 | 必选 |
| SrcIpAddr | IPv4/IPv6地址 | 远端IP地址 | 必选 |
| DstPort | - | 端口号 | 必选 |
| Usage | - | 规则用途 | 必选 |
- 同意新增资源协作接口方法DeleteFilterRule,权限为SecurityMgmt,请求签名为a{ss},参数范围如下表,无响应签名,用于删除iptables filter规则,参数选择模式支持仅指定Usage及指定所有参数两种模式;
| 参数属性名称 | 参数属性取值 | 取值说明 | 可选/必选 |
|---|---|---|---|
| FilterType | Accepet/Drop/Reject | Filter规则策略 | 可选 |
| ProtocolType | tcp/udp | 协议类型 | 可选 |
| SrcIpAddr | IPv4/IPv6地址 | 远端IP地址 | 可选 |
| DstPort | - | 端口号 | 可选 |
| Usage | - | 规则用途 | 必选 |
遗留问题
- 添加规则数量上限:规则上限确认为64,调用方法时超出限制返回错误信息;
- 错误信息如下表所示:
| 场景 | 错误信息描述 |
|---|---|
| 参数校验失败 | InvalidValue |
| 添加已存在的规则/删除不存在的规则 | OperationNotAllowed |
| 添加规则失败/删除规则失败 | OperationNotSupport |
| 添加规则数超上限 | CreateLimitReachedForResource |