Microsoft/Azure

Azure NSG Flow log #3 - 로그 검색 (Log Analytics)

megapain 2020. 9. 26. 23:32

참고 자료

 

Azure NSG Flow Log를 설정할 때 Traffic Analytics status를 On으로 설정하고 Log Analytics workspace를 지정했다면 Azure Monitor의 Log에서 쿼리를 사용하여 NSG Flow log를 검색할 수 있습니다.

Azure NSG Flow Log는 Log Analytics workspace의 AzureNetworkAnalytics_CL 테이블에 저장되며, 필드 정보는 아래 doc에서 설명하고 있습니다.
https://docs.microsoft.com/en-us/azure/network-watcher/traffic-analytics-schema#fields-used-in-traffic-analytics-schema

 

NSG Flow log 검색

Log Analytics workspaces - (NSG Flow Log가 저장된) 대상 Log Analytics workspace 선택

Log -> Custom Logs 확장하여 AzureNetworkAnalytics_CL 를 더블클릭하여 쿼리 창에 추가 -> [Run]

Results 창에서 검색 결과 확인

 

*참고 - NSG Flow Log Query Sample

특정 시간 대에 특정 Source Public IP에서의 접근을 시간 역순으로 정렬

AzureNetworkAnalytics_CL
| extend localTimeStamp = TimeGenerated + 9h
| where localTimeStamp between (datetime("2020-09-08 10:00:00") .. datetime("2020-09-08 16:00"))
| where SrcPublicIPs_s contains "123.141.145"
| sort by localTimeStamp desc

 

특정 시간 대에 외부에서 내부(Inbound)로 연결 시도 중 거부된 접근을 시간 역순으로 정렬하고, 연결 시도 시간, Source Public IP, Destination IP(내부), Destination port를 표시

AzureNetworkAnalytics_CL
| extend localTimeStamp = TimeGenerated + 9h
| where localTimeStamp between (datetime("2020-09-08 10:00:00") .. datetime("2020-09-08 16:00"))
| where FlowStatus_s == "D" and FlowDirection_s == "I" and FlowType_s == "ExternalPublic"
| sort by localTimeStamp desc
| project localTimeStamp, SrcPublicIPs_s, DestIP_s, DestPort_d

 

외부에서 내부(Inbound)로 거부된 연결 시도 중, 시도 회수가 가장 많은 10개의 Source Public IP를 Columchart로 표현

AzureNetworkAnalytics_CL
| extend localTimeStamp = TimeGenerated + 9h
| extend sourcePIP = split(SrcPublicIPs_s, '|', 0)[0]
| where FlowStatus_s == "D" and FlowDirection_s == "I" and FlowType_s == "ExternalPublic"
| summarize denycount = count() by tostring(sourcePIP)
| top 10 by denycount desc
| render columnchart