Microsoft/Azure

Azure NSG Flow log #1 - Overview

megapain 2020. 9. 26. 22:55

참고 자료

 

NSG Flow log 란?

NSG Flow log는 NSG를 통과하는 IP 트래픽에 대한 정보를 기록할 수 있는 Azure Network Watcher의 기능입니다.  흐름 데이터(Flow data)를 Azure Storage Account로 보낸 후에, SIEM, IDS 같은 시각화 도구(visualization tool)로 내보낼 수도(Export) 있습니다.

 

Key properties

  • Flow logs는 Layer 4(Transport layter)에서 작동하며, NSG로 들어오고 나가는 모든 IP 흐름(flow)을 기록합니다.

  • Log는 Azure 플랫폼(platform)을 통해 수집되며, 고객 리소스(resources) 또는 네트워크 성능(network performance)에 영향을 주지 않습니다.

  • Log는 JSON 형식(format)으로 작성되며(written), NSG 규칙 기반(NSG rule basis)으로 outbound 및 inbound 흐름을 표시합니다.

  • 각 log 레코드에는 흐름이 적용되는 네트워크 인터페이스(NIC), 5-tuple 정보, 트래픽 결정(Traffic decision) 및 처리량 정보(traffic decision & (Version 2 only) throughput information)가 포함됩니다.

  • Flow log 보존 기능(retention feature) 은 로그 생성 후 최대 1년까지 자동으로 로그를 삭제할 수 있는 자동 삭제 기능을 가지고 있습니다. (보존 기간을 0으로 설정하면 영구 보존됩니다.)
    보존(retention)은 General purpose v2(GPv2) Storage Account에서만 사용할 수 있습니다.

네트워크의 모든 트래픽 흐름(traffic flow)은 적용된(applicable) NSG 의 규칙(rules)을 사용하여 평가됩니다. 이러한 평가의 결과가 NSG Flow log 입니다. Flow log는 Azure 플랫폼(Platform)을 통해 수집되며, 고객 리소스에 대한 어떠한 변경도 필요 없습니다.

참고로, 규칙(Rule)에는 terminating과 non-terminating 이라는 두 가지 유형이 있으며, 각각 로깅 동작(logging behaviours)이 다릅니다.

  • NSG Deny rules 은 terminating입니다. 트래픽을 거부하는(denying) NSG는 이를 Flow log에 기록하고, 이 경우 처리(processing)는 NSG가 트래픽을 거부한 후에 중지됩니다.

  • NSG Allow rules 은 non-terminating 입니다. 즉, 하나의 NSG에서 허용하면, 다음 NSG로 처리(processing)가 계속됩니다. 트래픽을 허용하는 마지막 NSG가 트래픽을 Flow log에 기록합니다.

 

Log format

https://docs.microsoft.com/en-us/azure/network-watcher/network-watcher-nsg-flow-logging-overview#log-format

Flow log는 아래의 속성들(properties)을 포함합니다.

더보기
  • time - Time when the event was logged

  • systemId - Network Security Group system ID.

  • category - The category of the event. The category is always NetworkSecurityGroupFlowEvent

  • resourceid - The resource ID of the NSG

  • operationName - Always NetworkSecurityGroupFlowEvents

  • properties - A collection of properties of the flow

    • Version - Version number of the Flow Log event schema

    • flows - A collection of flows. This property has multiple entries for different rules

      • rule - Rule for which the flows are listed

        • flows - a collection of flows

          • mac - The MAC address of the NIC for the VM where the flow was collected

          • flowTuples - A string that contains multiple properties for the flow tuple in comma-separated format

            • Time Stamp - This value is the time stamp of when the flow occurred in UNIX epoch format

            • Source IP - The source IP

            • Destination IP - The destination IP

            • Source Port - The source port

            • Destination Port - The destination Port

            • Protocol - The protocol of the flow. Valid values are T for TCP and U for UDP

            • Traffic Flow - The direction of the traffic flow. Valid values are I for inbound and O for outbound.

            • Traffic Decision - Whether traffic was allowed or denied. Valid values are A for allowed and D for denied.

            • Flow State - Version 2 Only - Captures the state of the flow. Possible states are B: Begin, when a flow is created. Statistics aren't provided. C: Continuing for an ongoing flow. Statistics are provided at 5-minute intervals. E: End, when a flow is terminated. Statistics are provided.

            • Packets - Source to destination - Version 2 Only The total number of TCP or UDP packets sent from source to destination since last update.

            • Bytes sent - Source to destination - Version 2 Only The total number of TCP or UDP packet bytes sent from source to destination since last update. Packet bytes include the packet header and payload.

            • Packets - Destination to source - Version 2 Only The total number of TCP or UDP packets sent from destination to source since last update.

            • Bytes sent - Destination to source - Version 2 Only The total number of TCP and UDP packet bytes sent from destination to source since last update. Packet bytes include packet header and payload.