LXC/Incus 网络 ACL 配置完全指南

LXC/Incus 网络 ACL 配置完全指南

incus Powerful system container and virtual machine manager incus 项目地址: https://gitcode.com/gh_mirrors/inc/incus

什么是网络 ACL

网络 ACL(Access Control List,访问控制列表)是 LXC/Incus 中用于控制网络流量的重要功能。它允许管理员精确控制不同实例之间、以及实例与其他网络之间的通信规则。

网络 ACL 可以应用于以下场景:

  • OVN 类型的网络接口
  • OVN 网络
  • 桥接网络(部分功能受限)

ACL 基础概念

核心组件

  1. Ingress 规则:控制进入网络接口的流量(入站)
  2. Egress 规则:控制离开网络接口的流量(出站)
  3. 规则动作
    • allow:允许流量通过(有状态)
    • allow-stateless:允许流量通过(无状态)
    • reject:拒绝流量并发送拒绝通知
    • drop:静默丢弃流量

规则优先级

系统会自动按照以下顺序处理规则:

  1. drop 规则
  2. reject 规则
  3. allow 规则
  4. 默认动作(通常为 reject

创建和配置 ACL

创建 ACL

incus network acl create my-acl

ACL 名称规范:

  • 长度 1-63 字符
  • 仅包含字母、数字和连字符
  • 不能以数字或连字符开头
  • 不能以连字符结尾

添加规则

添加入站规则示例:

incus network acl rule add my-acl ingress action=allow protocol=tcp destination_port=80,443

添加出站规则示例:

incus network acl rule add my-acl egress action=allow protocol=icmp4

规则属性详解

| 属性 | 类型 | 必填 | 说明 | |------|------|------|------| | action | 字符串 | 是 | 规则动作 | | state | 字符串 | 否 | 规则状态(enabled/disabled/logged) | | description | 字符串 | 否 | 规则描述 | | source | 字符串 | 否 | 源地址/组 | | destination | 字符串 | 否 | 目标地址/组 | | protocol | 字符串 | 否 | 协议类型 | | source_port | 字符串 | 否 | 源端口范围 | | destination_port | 字符串 | 否 | 目标端口范围 | | icmp_type | 字符串 | 否 | ICMP 类型 | | icmp_code | 字符串 | 否 | ICMP 代码 |

高级功能

使用选择器

在 OVN 网络中,可以使用选择器代替具体的 IP 地址:

# 引用 ACL 组
source=my-acl-group

# 引用内部网络
source=@internal

# 引用外部网络
source=@external

# 引用对等网络
source=@ovn-network/peer-name

流量日志记录

创建日志规则:

incus network acl rule add my-acl ingress action=allow protocol=tcp state=logged

查看日志:

incus network acl show-log my-acl

ACL 应用实践

应用到网络

incus network set my-network security.acls="my-acl"

应用到实例 NIC

incus config device set my-instance eth0 security.acls="my-acl"

配置默认动作

修改网络默认动作:

incus network set my-network security.acls.default.ingress.action=allow

修改实例 NIC 默认动作:

incus config device set my-instance eth0 security.acls.default.egress.action=drop

桥接网络特殊说明

使用桥接网络时需注意以下限制:

  1. 仅能控制桥接网络与宿主机之间的边界流量
  2. 不支持 ACL 组和网络选择器
  3. 使用 iptables 时不支持 IP 范围选择
  4. 使用 nftables 时:
    • 可以在实例间应用 ACL
    • 入站 reject 规则会自动转为 drop

最佳实践建议

  1. 最小权限原则:从最严格的规则开始,逐步开放必要权限
  2. 合理命名:使用描述性名称和注释
  3. 测试规则:先使用 state=logged 测试规则效果
  4. 分层设计:网络级 ACL 用于通用规则,实例级 ACL 用于特殊需求
  5. 定期审计:检查 ACL 规则的有效性和必要性

通过合理配置网络 ACL,可以显著提升 LXC/Incus 环境中的网络安全性,实现精细化的流量控制。

incus Powerful system container and virtual machine manager incus 项目地址: https://gitcode.com/gh_mirrors/inc/incus

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

施笛娉Tabitha

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值