跳到主要内容

ACL 管理

ACL(Access Control List)是 CVMConsole VPC 网络的底层访问控制机制,基于 nftables 实现。ACL 管理模块提供了对 VPC 安全组规则生成的 nftables 规则进行预览和应用的功能,是网络安全策略的最终执行层。

ACL 架构​

ACL 预览​

ACL 预览功能用于查看当前所有 VPC 安全组规则生成的 nftables 规则,帮助管理员了解当前的安全策略配置。

预览内容​

内容说明
规则总数生成的 nftables 规则总数量
入站规则入站方向的规则列表
出站规则出站方向的规则列表
规则格式nftables 配置格式
生成时间规则生成的时间戳

预览界面说明​

预览规则格式​

ACL 预览显示的规则格式为标准的 nftables 配置语法:

元素说明示例
表名nftables 表名称kvm_console_vpc_acl
链名规则所属的链ingress、egress
规则具体的匹配和动作ip daddr 0.0.0.0/0 tcp dport 80 accept
预览用途

ACL 预览功能主要用于审计和调试。在应用规则前,建议先预览规则内容,确保规则符合预期。

ACL 应用​

ACL 应用功能用于将预览的 nftables 规则应用到系统,使其生效。

应用流程​

应用操作说明​

操作说明影响
预览按当前安全组规则生成 nftables 规则文本(支持一键复制)只读
刷新预览重新生成预览内容只读
应用 ACL危险操作二次确认后,将预览规则加载到系统(需高风险二次验证)立即生效
应用影响

应用 ACL 规则会立即影响所有绑定安全组的虚拟机的网络访问。建议在业务低峰期进行操作,并提前通知相关用户。

实现原理​

安全组到 ACL 的转换流程​

规则生成逻辑​

ACL 规则生成遵循以下逻辑:

步骤说明处理方式
1遍历所有安全组获取安全组列表
2获取安全组规则读取每条规则
3规则格式转换转换为 nftables 语法
4生成 nftables 配置生成完整配置
5加载到内核应用到系统

nftables 表结构​

ACL 规则加载到 kvm_console_vpc_acl 表中,该表包含以下结构:

组件说明用途
表kvm_console_vpc_acl存储所有 VPC ACL 规则
链ingress处理入站流量
链egress处理出站流量
规则具体的匹配规则控制网络访问

链结构说明​

链名方向说明优先级
ingress入站处理进入虚拟机的流量高
egress出站处理从虚拟机发出的流量高

规则转换示例​

安全组规则nftables 规则说明
入站 TCP 80 允许 0.0.0.0/0ip daddr 0.0.0.0/0 tcp dport 80 accept允许所有 IP 访问 80 端口
出站 TCP 443 允许 10.0.0.0/8ip saddr 10.0.0.0/8 tcp dport 443 accept允许内网访问 443 端口
入站 ICMP 允许 192.168.1.0/24ip saddr 192.168.1.0/24 icmp type echo-request accept允许内网 Ping

与安全组的关系​

关系说明​

关系说明
用户界面安全组是用户友好的规则管理界面
底层实现ACL 是安全组规则的底层实现
规则转换安全组规则转换为 ACL 规则
双向同步修改安全组规则后需要重新应用 ACL

层次关系图​

同步机制​

操作触发条件处理方式
规则更新修改安全组规则重新生成 ACL 规则
规则应用手动应用 ACL加载规则到内核
规则清除清除所有规则移除所有 ACL 规则
同步建议

每次修改安全组规则后,建议重新预览和应用 ACL 规则,确保安全策略立即生效。

ACL 规则管理​

ACL 管理模块提供以下操作(均为管理员权限):

操作说明
预览预览生成的 nftables 规则(代码块展示,支持一键复制)
刷新预览重新生成预览内容
应用二次确认 + 高风险验证后将规则加载到系统
规则备份

预览内容支持一键复制为 nftables 文本,可自行保存用于审计与备份;面板不提供独立的规则导出接口。已生效的规则也可在宿主机通过 nft list table inet kvm_console_vpc_acl 查看。

ACL 最佳实践​

管理建议​

  1. 定期预览:定期预览 ACL 规则,确保规则符合预期
  2. 及时应用:修改安全组规则后及时应用 ACL
  3. 备份规则:复制预览内容或宿主机 nft 输出自行留档,便于恢复
  4. 审计日志:记录 ACL 规则变更日志,便于追溯

规则优化​

优化项说明预期效果
规则合并合并相似规则减少规则数量
规则排序按优先级排序提升匹配效率
规则清理删除无用规则减少系统负载
规则分组按功能分组(安全组划分)便于管理维护

安全建议​

建议说明重要性
最小权限只开放必要端口高
默认拒绝默认拒绝所有访问高
日志记录记录规则变更日志中
定期审计定期审计规则配置中
安全警告

ACL 规则直接控制网络访问权限,错误的规则配置可能导致安全漏洞或服务中断。建议在测试环境验证后再应用到生产环境。

故障排除​

常见问题​

问题可能原因解决方案
规则不生效ACL 未应用应用 ACL 规则
规则冲突多个安全组规则冲突检查规则优先级
性能下降规则数量过多优化规则配置
规则丢失系统重启后规则丢失重新应用规则

诊断步骤​

诊断工具​

工具说明用途
ACL 预览查看当前规则验证规则配置
nftables 状态宿主机执行 nft list table inet kvm_console_vpc_acl验证已生效规则
日志查看查看系统日志追溯问题原因
诊断建议

遇到 ACL 问题时,建议先使用 ACL 预览功能检查规则配置,然后在宿主机检查 nftables 表是否存在及其内容。如果问题仍然存在,可以查看系统日志获取更多信息。

高级功能​

规则模板​

ACL 支持规则模板功能,便于快速创建常用规则:

模板类型说明适用场景
Web 服务器HTTP/HTTPS 访问规则Web 服务部署
数据库服务器数据库访问规则数据库服务部署
SSH 管理SSH 远程管理规则服务器管理
开发测试宽松访问规则开发测试环境

规则备份与恢复​

操作说明用途
备份导出当前 ACL 规则配置配置备份
恢复导入 ACL 规则配置配置恢复
迁移将规则迁移到其他环境环境迁移

规则监控​

ACL 支持实时监控规则匹配情况:

监控项说明用途
匹配次数规则匹配的数据包数量分析访问模式
拒绝次数被拒绝的数据包数量发现攻击行为
流量统计规则匹配的流量统计流量分析
性能指标规则匹配的性能指标性能优化
监控建议

建议启用 ACL 监控功能,实时了解网络访问情况。通过监控数据可以及时发现异常访问和潜在的安全威胁。