防火墙政策规则在应用于流量时会生成日志条目。 虽然数据包流可以生成多个日志条目,但防火墙政策规则最多会为来自虚拟机 (VM) 实例的每个连接生成一个日志条目。
以下示例展示了防火墙政策规则日志记录的工作方式,包括与旧版虚拟私有云 (VPC) 防火墙规则不同的行为,例如针对被拒连接的重复日志记录,以及针对高级检查的基于会话的日志记录。
出站流量拒绝示例
在此示例中,流量在 example-proj 项目的 example-net VPC 网络中的两个虚拟机实例之间流动。
us-west1-a地区中的 VM1,在west-subnet(us-west1区域)中的 IP 地址为10.10.0.99。us-east1-b地区中的 VM2,在east-subnet(us-east1区域)中的 IP 地址为10.20.0.99。- 规则 A:出站拒绝防火墙规则,该规则的目标是网络中的所有实例,目的地为
10.20.0.99(VM2),应用于 TCP 端口80。此规则已启用日志记录。 - 规则 B:入站允许防火墙规则,该规则的目标是网络中的所有实例,来源为
10.10.0.99(VM1),应用于 TCP 端口80。 此规则也启用了日志记录。
如需创建防火墙政策规则,请参阅 防火墙政策规则任务。
在 VM1 尝试通过 TCP 端口 80 连接到 VM2 的情况下,会发生以下情况:
防火墙会根据 VM1 生成规则 A 的日志条目,以记录连接尝试失败。
由于规则 A 是
DENY规则,因此防火墙会将与唯一五元组对应的每个数据包记录为一次失败的连接尝试。如果防火墙继续收到此连接的数据包,则会每 5 秒重复记录一次相同的日志条目。由于规则 A 会在来源处阻止流量,因此防火墙不会考虑规则 B。因此,防火墙不会根据 VM2 生成规则 B 的日志条目。
VM1 报告了以下防火墙日志记录:
| 字段 | 值 |
|---|---|
connection |
src_ip=10.10.0.99 src_port=[EPHEMERAL_PORT] dest_ip=10.20.0.99 dest_port=80 protocol=6 |
disposition |
DENIED |
rule_details |
reference = "network:example-net/firewallPolicy:12345" priority = 10 action = DENY destination_range = 10.20.0.99/32 ip_port_info = tcp:80 direction = egress |
instance |
project_id="example-proj" instance_name=VM1 区域=us-west1 zone=us-west1-a |
出站允许且入站允许”示例
在此示例中,流量在 example-proj 项目的 example-net VPC 网络中的虚拟机实例之间流动。
us-west1-a地区中的 VM1,在west-subnet(us-west1区域)中的 IP 地址为10.10.0.99。us-east1-b地区中的 VM2,在east-subnet(us-east1区域)中的 IP 地址为10.20.0.99。- 规则 A:全球网络防火墙政策出站允许规则,该规则的
目的地为
10.20.0.99(VM2),应用于 TCP 端口80。此规则已启用日志记录。 - 规则 B:全球网络防火墙政策入站允许规则,该规则的来源为
10.10.0.99(VM1),应用于 TCP 端口80。此规则已启用日志记录。
如需创建防火墙政策规则,请参阅 防火墙政策规则任务。
在 VM1 尝试通过 TCP 端口 80 连接到 VM2 的情况下,会发生以下情况:
- 当 VM1 连接到
10.20.0.99时,防火墙会根据 VM1 生成规则 A 的日志条目。由于它是ALLOW规则,因此连接只会记录一次,不会重复记录。 - 当 VM2 允许来自
10.10.0.99的入站连接时,防火墙会根据 VM2 生成规则 B 的日志条目。
VM1 报告了以下防火墙日志记录:
| 字段 | 值 |
|---|---|
connection |
src_ip=10.10.0.99 src_port=[EPHEMERAL_PORT] dest_ip=10.20.0.99 dest_port=80 protocol=6 |
disposition |
已允许 |
rule_details |
reference = "network:example-net/firewallPolicy:12345" priority = 10 action = ALLOW destination_range = 10.20.0.99/32 ip_port_info = tcp:80 direction = egress |
VM2 报告了以下防火墙日志记录:
| 字段 | 值 |
|---|---|
connection |
src_ip=10.10.0.99 src_port=[EPHEMERAL_PORT] dest_ip=10.20.0.99 dest_port=80 protocol=6 |
disposition |
已允许 |
rule_details |
reference = "network:example-net/firewallPolicy:67890" priority = 10 action = ALLOW source_range = 10.10.0.99/32 ip_port_info = tcp:80 direction = ingress |
互联网入站示例
在此示例中,流量从外部资源流向 example-net VPC 网络中的虚拟机实例。该网络位于 example-proj 项目中。
- 该系统在互联网上的 IP 地址为
203.0.113.114。 us-west1-a地区中的 VM1,在west-subnet(us-west1区域)中的 IP 地址为10.10.0.99。- 规则 C:入站允许防火墙政策规则,该规则的来源为任何 IP 地址 (
0.0.0.0/0),应用于 TCP 端口80。 此规则已启用日志记录。 - 规则 D:出站拒绝防火墙政策规则,该规则的目的地为任何 IP 地址 (
0.0.0.0/0),应用于所有协议。此规则已启用日志记录。
如需创建防火墙政策规则,请参阅 防火墙政策规则任务。
在 IP 地址为 203.0.113.114 的系统尝试通过 TCP 端口 80 连接到 VM1 的情况下,会发生以下情况:
- 当 VM1 接受来自
203.0.113.114的流量时,系统会根据 VM1 生成规则 C 的日志条目。 - Cloud Next Generation Firewall 政策规则是有状态的,这意味着如果入站防火墙规则允许流量流向虚拟机实例,则出站返回流量会自动获得许可。在这种情况下,规则 C 允许入站流量,因此尽管存在规则 D,VM1 仍可以将回复流量发送到
203.0.113.114。 - 无论出站防火墙规则如何,连接跟踪都允许回复流量,并且不会产生任何日志记录。因此,防火墙不会考虑规则 D,也不会生成任何出站日志条目。
VM1 报告了以下防火墙日志记录:
| 字段 | 值 |
|---|---|
connection |
src_ip=203.0.113.114 src_port=[EPHEMERAL_PORT] dest_ip=10.10.0.99 dest_port=80 protocol=6 |
disposition |
已允许 |
rule_details |
reference = "network:example-net/firewallPolicy:12345" priority = 10 action = ALLOW source_range = 0.0.0.0/0 ip_port_info = tcp:80 direction = ingress |
remote_location |
continent country region city |
高级检查示例
在此示例中,Cloud NGFW 防火墙政策使用 apply_security_profile_group 操作来拦截流量,以进行深度数据包检查。
- 该系统在互联网上的 IP 地址为
203.0.113.114。 us-west1-a地区中的 VM1,在west-subnet(us-west1区域)中的 IP 地址为10.10.0.99。- 规则 E:出站防火墙政策规则,该规则的操作设置为
apply_security_profile_group。此规则已启用日志记录。
如需创建用于高级检查的防火墙政策规则,请参阅 安全配置文件概览。
假设 VM1 发送的流量与规则 E 匹配。会发生以下情况:
apply_security_profile_group操作使用基于会话的日志记录,这与标准allow或deny规则生成的基于连接的日志不同。Cloud NGFW 会为与规则匹配的初次会话生成单个防火墙规则日志条目,以确认流量已成功拦截并重定向到防火墙端点。即使将多个连接识别为同一会话的一部分,Cloud NGFW 也会生成此高级日志。
VM1 报告了以下防火墙日志记录:
| 字段 | 值 |
|---|---|
connection |
src_ip=10.10.0.99 src_port=[EPHEMERAL_PORT] dest_ip=203.0.113.114 dest_port=80 protocol=6 |
disposition |
INTERCEPTED |
rule_details |
reference = "network:example-net/firewallPolicy:12345" priority = 10 action = APPLY_SECURITY_PROFILE_GROUP apply_security_profile_fallback_action = UNSPECIFIED destination_range = 0.0.0.0/0 direction = egress |