使用虚拟网络流日志监视 Azure Virtual Network Manager

监视流量对于了解网络的性能以及排查问题至关重要。 管理员可以利用虚拟网络流日志来显示流量是通过安全管理员规则流经虚拟网络还是阻止流量。 虚拟网络流日志是网络观察程序的一项功能。

启用虚拟网络流日志

目前,需要在要监视的每个虚拟网络上启用虚拟网络流日志。 可以使用 Azure 门户、PowerShell 或 Azure CLI 指南在虚拟网络上启用虚拟网络流日志。

安全管理员规则在流程日志中的显示方式

每个流量日志记录都会在评估它们的资源下分组流,因此你可以判断 Azure Virtual Network Manager 的安全管理员规则是否允许或拒绝直接从记录中发送流。 有三个字段代表这个答案:

领域 它告诉你什么
aclID 评估流量的资源标识符,可能是网络安全组或 Azure Virtual Network Manager。 对于因加密而被拒绝的流量,这个值为 unspecified
flowGroups[].rule 允许或拒绝流量的规则名称。 对于由 Azure Virtual Network Manager 评估的流程,这个值就是安全管理员规则的名称。 对于因加密而被拒绝的流量,这个值为 unspecified
flowGroups[].flowTuples 逗号分离的流量记录。 第七个值是交通方向,第八个值是流态,负责允许或拒绝的决策。

每个流元组采用以下字段顺序:

Time Stamp, Source IP, Destination IP, Source port, Destination port, Protocol, Flow direction, Flow state, Flow encryption, Packets sent, Bytes sent, Packets received, Bytes received

流向I(入站)或 O(出站)。 流动状态 是指 B 流动开始、 C 继续、 E 结束以及 D 流被拒绝的状态。 在日志中,被阻止的连接会显示为流状态为 D,并带有安全管理员规则名称。

例如,此元组出现在规则 BlockHighRiskTCPPortsFromInternet 下方:

1663145998065,203.0.113.153,10.0.0.6,55188,22,6,I,D,NX,0,0,0,0

该元组记录了从 203.0.113.153 到 10.0.0.6、目标端口为 22 的入站 I TCP 流量(协议 6),该流量已被拒绝(D),且双向均未传输任何数据包或字节。 由于该流量显示在 BlockHighRiskTCPPortsFromInternet 下,因此具有该名称的安全管理员规则阻止了该连接。

示例流程日志记录

以下记录被裁剪为一个允许流组和两个拒绝流组。 第一组显示 DefaultRule_AllowInternetOutBound 允许的出站流量,其余各组显示被 BlockHighRiskTCPPortsFromInternet 以及被 Internet 规则拒绝的入站流量。

{
    "records": [
        {
            "time": "2022-09-14T09:00:52.5625085Z",
            "flowLogVersion": 4,
            "flowLogGUID": "66aa66aa-bb77-cc88-dd99-00ee00ee00ee",
            "macAddress": "112233445566",
            "category": "FlowLogFlowEvent",
            "flowLogResourceID": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/NETWORKWATCHERRG/PROVIDERS/MICROSOFT.NETWORK/NETWORKWATCHERS/NETWORKWATCHER_CHINANORTH3/FLOWLOGS/VNETFLOWLOG",
            "targetResourceID": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVNet",
            "operationName": "FlowLogFlowEvent",
            "flowRecords": {
                "flows": [
                    {
                        "aclID": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
                        "flowGroups": [
                            {
                                "rule": "DefaultRule_AllowInternetOutBound",
                                "flowTuples": [
                                    "1663146003599,10.0.0.6,192.0.2.180,23956,443,6,O,B,NX,0,0,0,0",
                                    "1663146003606,10.0.0.6,192.0.2.180,23956,443,6,O,E,NX,3,767,2,1580"
                                ]
                            }
                        ]
                    },
                    {
                        "aclID": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
                        "flowGroups": [
                            {
                                "rule": "BlockHighRiskTCPPortsFromInternet",
                                "flowTuples": [
                                    "1663145998065,203.0.113.153,10.0.0.6,55188,22,6,I,D,NX,0,0,0,0",
                                    "1663146005503,192.0.2.164,10.0.0.6,35276,119,6,I,D,NX,0,0,0,0"
                                ]
                            },
                            {
                                "rule": "Internet",
                                "flowTuples": [
                                    "1663145989563,192.0.2.10,10.0.0.6,50557,44357,6,I,D,NX,0,0,0,0",
                                    "1663145989679,203.0.113.81,10.0.0.6,62797,35945,6,I,D,NX,0,0,0,0"
                                ]
                            }
                        ]
                    }
                ]
            }
        }
    ]
}