4.2. 审计日志记录


您可以为审计日志配置目的地,如 syslog 服务器或 UNIX 域套接字。无论任何其他配置如何,审计日志始终保存到集群中的每个 OVN-Kubernetes pod 上的 /var/log/ovn/acl-audit-log

您可以使用 k8s.ovn.org/acl-logging 部分为每个命名空间启用审计日志记录。在 k8s.ovn.org/acl-logging 部分中,您必须指定 allowdeny 或这两个值来为命名空间启用审计日志记录。

注意

网络策略不支持将 Pass 操作设置为规则。

ACL-logging 实现记录网络的访问控制列表 (ACL) 事件。您可以查看这些日志来分析任何潜在的安全问题。

命名空间注解示例

kind: Namespace
apiVersion: v1
metadata:
  name: example1
  annotations:
    k8s.ovn.org/acl-logging: |-
      {
        "deny": "info",
        "allow": "info"
      }
Copy to Clipboard Toggle word wrap

要查看默认的 ACL 日志记录配置值,请参阅 cluster-network-03-config.yml 文件中的 policyAuditConfig 对象。如果需要,您可以更改此文件中的日志文件参数的 ACL 日志记录配置值。

日志信息格式与 RFC5424 中定义的 syslog 兼容。syslog 工具可配置,默认为 local0。以下示例显示了日志消息中输出的关键参数及其值:

输出参数及其值的日志记录消息示例

<timestamp>|<message_serial>|acl_log(ovn_pinctrl0)|<severity>|name="<acl_name>", verdict="<verdict>", severity="<severity>", direction="<direction>": <flow>
Copy to Clipboard Toggle word wrap

其中:

  • <timestamp> 声明创建日志消息的时间和日期。
  • <message_serial> 列出日志消息的序列号。
  • acl_log (ovn_pinctrl0) 是一个字面字符串,它会在 OVN-Kubernetes 插件中输出日志消息的位置。
  • <severity> 为日志消息设置严重性级别。如果您启用支持 allowdeny 任务的审计日志记录,则日志消息输出中会显示两个严重性级别。
  • <name> 说明由网络策略创建的 OVN Network Bridging Database (nbdb) 中的 ACL-logging 实现的名称。
  • <verdict> 可以是 allowdrop
  • <direction> 可以是 to-lportfrom-lport,表示策略应用到 pod 的流量。
  • <flow> 显示与 OpenFlow 协议等效的格式的数据包信息。此参数包含 Open vSwitch (OVS) 字段。

以下示例显示了 flow 参数用来从系统内存提取数据包信息的 OVS 字段:

flow 参数用来提取数据包信息的 OVS 字段示例

<proto>,vlan_tci=0x0000,dl_src=<src_mac>,dl_dst=<source_mac>,nw_src=<source_ip>,nw_dst=<target_ip>,nw_tos=<tos_dscp>,nw_ecn=<tos_ecn>,nw_ttl=<ip_ttl>,nw_frag=<fragment>,tp_src=<tcp_src_port>,tp_dst=<tcp_dst_port>,tcp_flags=<tcp_flags>
Copy to Clipboard Toggle word wrap

其中:

  • <proto> 声明协议。有效值为 tcpudp
  • vlan_tci=0x0000 声明 VLAN 标头为 0,因为没有为内部 pod 网络流量设置 VLAN ID。
  • <src_mac> 指定 Media Access Control (MAC) 地址的源。
  • <source_mac> 指定 MAC 地址的目的地。
  • <source_ip> 列出源 IP 地址
  • <target_ip> 列出目标 IP 地址。
  • <tos_dscp> 声明 Differentiated Services Code Point (DSCP) 值,对网络流量进行分类并进行优先级排序。
  • <tos_ecn> 声明 Explicit Congestion Notification (ECN) 值,它表示您的网络中的阻塞网络流量。
  • <ip_ttl> 声明数据包的 Time To Live (TTP) 信息。
  • <fragment> 指定要匹配的 IP 片段或 IP 非碎片。
  • <tcp_src_port> 显示 TCP 和 UDP 协议的端口源。
  • <tcp_dst_port> 列出 TCP 和 UDP 协议的目的地端口。
  • <tcp_flags> 支持多个标示,如 SYN, ACK, PSH 等。如果您需要设置多个值,则不同的值由竖线 (|) 分隔。UDP 协议不支持此参数。
注意

有关前面的字段描述的更多信息,请转至 ovs-fields 的 OVS 手册页。

网络策略的 ACL 拒绝日志条目示例

2023-11-02T16:28:54.139Z|00004|acl_log(ovn_pinctrl0)|INFO|name="NP:verify-audit-logging:Ingress", verdict=drop, severity=alert, direction=to-lport: tcp,vlan_tci=0x0000,dl_src=0a:58:0a:81:02:01,dl_dst=0a:58:0a:81:02:23,nw_src=10.131.0.39,nw_dst=10.129.2.35,nw_tos=0,nw_ecn=0,nw_ttl=62,nw_frag=no,tp_src=58496,tp_dst=8080,tcp_flags=syn
2023-11-02T16:28:55.187Z|00005|acl_log(ovn_pinctrl0)|INFO|name="NP:verify-audit-logging:Ingress", verdict=drop, severity=alert, direction=to-lport: tcp,vlan_tci=0x0000,dl_src=0a:58:0a:81:02:01,dl_dst=0a:58:0a:81:02:23,nw_src=10.131.0.39,nw_dst=10.129.2.35,nw_tos=0,nw_ecn=0,nw_ttl=62,nw_frag=no,tp_src=58496,tp_dst=8080,tcp_flags=syn
2023-11-02T16:28:57.235Z|00006|acl_log(ovn_pinctrl0)|INFO|name="NP:verify-audit-logging:Ingress", verdict=drop, severity=alert, direction=to-lport: tcp,vlan_tci=0x0000,dl_src=0a:58:0a:81:02:01,dl_dst=0a:58:0a:81:02:23,nw_src=10.131.0.39,nw_dst=10.129.2.35,nw_tos=0,nw_ecn=0,nw_ttl=62,nw_frag=no,tp_src=58496,tp_dst=8080,tcp_flags=syn
Copy to Clipboard Toggle word wrap

下表描述了命名空间注解值:

Expand
表 4.2. k8s.ovn.org/acl-logging 的审计日志记录命名空间注解
字段描述

deny

阻止任何与 deny 操作匹配的 ACL 规则的流量的访问。字段支持 alert, warning, notice, info, 或 debug 值。

allow

允许命名空间访问与 allow 操作匹配的 ACL 规则的任何流量。字段支持 alert, warning, notice, info, 或 debug 值。

pass

pass 操作适用于管理员网络策略的 ACL 规则。pass 操作允许命名空间中的网络策略或基准 admin 网络策略规则来评估所有传入和传出流量。网络策略不支持 pass 操作。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat