跳到主要内容

ACL 管理

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

ACL 架构

ACL 预览

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

预览内容

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

预览界面说明

预览规则格式

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

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

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

ACL 应用

ACL 应用功能用于将预览的 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 管理模块提供以下查看功能:

功能说明
规则列表查看所有 ACL 规则
规则详情查看单条规则详情
规则统计统计规则数量和类型
规则搜索搜索特定规则

规则操作

操作说明限制
预览预览生成的规则只读操作
应用应用规则到系统需要管理员权限
清除清除所有规则需要管理员权限
导出导出规则配置只读操作

规则导出

ACL 规则支持导出为 nftables 配置文件,便于备份和迁移:

导出格式说明用途
nftables 配置标准 nftables 配置格式系统备份
JSON 格式JSON 格式的规则数据程序处理
CSV 格式CSV 格式的规则列表数据分析

ACL 最佳实践

管理建议

  1. 定期预览:定期预览 ACL 规则,确保规则符合预期
  2. 及时应用:修改安全组规则后及时应用 ACL
  3. 备份规则:定期导出 ACL 规则配置,便于恢复
  4. 审计日志:记录 ACL 规则变更日志,便于追溯

规则优化

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

安全建议

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

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

故障排除

常见问题

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

诊断步骤

诊断工具

工具说明用途
ACL 预览查看当前规则验证规则配置
nftables 状态检查 nftables 服务状态验证服务运行
规则计数统计规则数量检查规则完整性
日志查看查看规则变更日志追溯问题原因
诊断建议

遇到 ACL 问题时,建议先使用 ACL 预览功能检查规则配置,然后检查 nftables 服务状态。如果问题仍然存在,可以查看系统日志获取更多信息。

高级功能

规则模板

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

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

规则备份与恢复

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

规则监控

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

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

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