자습서: Azure Portal을 사용하여 가상 머신 간에 네트워크 트래픽 기록
네트워크 보안 그룹 흐름 로깅은 네트워크 보안 그룹을 통과하는 IP 트래픽에 대한 정보를 로그할 수 있는 Azure Network Watcher의 기능입니다. 네트워크 보안 그룹 흐름 로깅에 대한 자세한 내용은 NSG 흐름 로그 개요를 참조하세요.
이 자습서는 NSG 흐름 로그를 사용하여 네트워크 인터페이스에 연결된 네트워크 보안 그룹을 통해 흐르는 가상 머신의 네트워크 트래픽을 로그하는 데 도움이 됩니다.
이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.
- 가상 네트워크 만들기
- 네트워크 인터페이스에 연결된 네트워크 보안 그룹을 사용하여 가상 머신 만들기
- Microsoft.insights 공급자 등록
- Network Watcher 흐름 로그를 사용하여 네트워크 보안 그룹에 흐름 로깅 사용
- 기록된 데이터 다운로드
- 기록된 데이터 보기
필수 조건
- 활성 구독이 있는 Azure 계정. 구독이 없으면 시작하기 전에 계정을 만드세요.
가상 네트워크 만들기
이 섹션에서는 가상 머신에 대해 하나의 서브넷을 사용하여 myVNet 가상 네트워크를 만듭니다.
Azure Portal에 로그인합니다.
포털 상단에 있는 검색 상자에 가상 네트워크를 입력합니다. 검색 결과에서 가상 네트워크를 선택합니다.
+ 만들기를 선택합니다. 가상 네트워크 만들기의 기본 탭에서 다음 값을 입력하거나 선택합니다.
설정 값 프로젝트 세부 정보 구독 Azure 구독을 선택합니다. 리소스 그룹 새로 만들기를 선택합니다.
이름에 myResourceGroup을 입력합니다.
확인을 선택합니다.인스턴스 세부 정보 이름 myVNet을 입력합니다. 지역 (미국) 미국 동부를 선택합니다. 검토 + 만들기를 선택합니다.
설정을 검토한 다음, 만들기를 선택합니다.
가상 머신 만들기
이 섹션에서는 myVM 가상 머신을 만듭니다.
포털 상단의 검색 상자에 가상 머신을 입력합니다. 검색 결과에서 가상 머신을 선택합니다.
만들기를 선택한 다음, Azure 가상 머신을 선택합니다.
가상 머신 만들기의 기본 탭에서 다음 값을 입력하거나 선택합니다.
설정 값 프로젝트 세부 정보 구독 Azure 구독을 선택합니다. 리소스 그룹 myResourceGroup을 선택합니다. 인스턴스 세부 정보 가상 머신 이름 myVM을 입력합니다. 지역 (미국) 미국 동부를 선택합니다. 가용성 옵션 인프라 중복이 필요하지 않습니다.를 선택합니다. 보안 유형 표준을 선택합니다. 이미지 Windows Server 2022 Datacenter: Azure Edition - x64 Gen2를 선택합니다. 크기 크기를 선택하거나 기본 설정을 그대로 둡니다. 관리자 계정 사용자 이름 사용자 이름을 입력합니다. 암호 암호를 입력합니다. 암호 확인 암호를 다시 입력합니다. 네트워킹 탭을 선택하거나 다음: 디스크, 다음: 네트워킹을 차례로 선택합니다.
[네트워킹] 탭에서 다음 값을 선택합니다.
설정 값 네트워크 인터페이스 가상 네트워크 myVNet을 선택합니다. 서브넷 mySubnet을 선택합니다. 공용 IP (신규) myVM-ip를 선택합니다. NIC 네트워크 보안 그룹 추가 기본을 선택합니다. 이 설정은 myVM-nsg라는 네트워크 보안 그룹을 만들고 이를 myVM 가상 머신의 네트워크 인터페이스와 연결합니다. 공용 인바운드 포트 선택한 포트 허용을 선택합니다. 인바운드 포트 선택 RDP(3389)를 선택합니다. 주의
RDP 포트를 인터넷에 개방하는 설정을 유지하는 방식은 테스트용으로만 권장됩니다. 프로덕션 환경에서는 RDP 포트에 대한 액세스를 특정 IP 주소 또는 IP 주소 범위로 제한하는 것이 좋습니다. RDP 포트에 대한 인터넷 액세스를 차단하고 Azure Bastion을 사용하여 Azure Portal 가상 머신에 안전하게 연결할 수도 있습니다.
검토 + 만들기를 선택합니다.
설정을 검토한 다음, 만들기를 선택합니다.
배포가 완료되면 리소스로 이동을 선택하여 myVM의 개요 페이지로 이동합니다.
연결, RDP를 차례로 선택합니다.
RDP 파일 다운로드를 선택하고 다운로드된 파일을 엽니다.
연결을 선택한 다음, 이전 단계에서 만든 사용자 이름과 암호를 입력합니다. 메시지가 표시되면 인증서를 수락합니다.
Insights 공급자 등록
NSG 흐름을 기록하려면 Microsoft.Insights 공급자가 필요합니다. 상태를 확인하려면 다음 단계를 수행합니다.
포털 맨 위에 있는 검색 상자에 구독을 입력합니다. 검색 결과에서 구독을 선택합니다.
구독에서 공급자를 사용하도록 설정하려는 Azure 구독을 선택합니다.
구독의 설정 아래에서 리소스 공급자를 선택합니다.
필터 상자에서 인사이트를 입력합니다.
표시된 공급자의 상태가 등록됨인지 확인합니다. 상태가 NotRegistered인 경우 Microsoft.Insights 공급자를 선택한 다음, 등록을 선택합니다.
저장소 계정 만들기
이 섹션에서는 흐름 로그를 저장하는 데 사용할 스토리지 계정을 만듭니다.
포털 위쪽의 검색 상자에서 스토리지 계정을 입력합니다. 검색 결과에서 Storage 계정을 선택합니다.
+ 만들기를 선택합니다. 스토리지 계정 만들기의 기본 탭에서 다음 값을 입력하거나 선택합니다.
설정 값 프로젝트 세부 정보 구독 Azure 구독을 선택합니다. 리소스 그룹 myResourceGroup을 선택합니다. 인스턴스 세부 정보 스토리지 계정 이름 고유한 이름을 입력합니다. 이 자습서에서는 mynwstorageaccount를 사용합니다. 지역 (미국) 미국 동부를 선택합니다. 스토리지 계정은 가상 머신 및 해당 네트워크 보안 그룹과 동일한 지역에 있어야 합니다. 성능 표준을 선택합니다. NSG 흐름 로그는 표준 계층 스토리지 계정만 지원합니다. 중복 내구성 요구 사항과 일치하는 LRS(로컬 중복 스토리지) 또는 다른 복제 전략을 선택합니다. 검토 탭을 선택하거나 아래쪽에서 검토 단추를 선택합니다.
설정을 검토한 다음, 만들기를 선택합니다.
NSG 흐름 로그 만들기
이 섹션에서는 이전에 자습서에서 만든 스토리지 계정에 저장되는 NSG 흐름 로그를 만듭니다.
포털 맨 위에 있는 검색 상자에 Network Watcher를 입력합니다. 검색 결과에서 Network Watcher를 선택합니다.
로그에서 흐름 로그를 선택합니다.
Network Watcher | 흐름 로그에서 + 만들기 또는 흐름 로그 만들기 파란색 단추를 선택합니다.
흐름 로그 만들기에서 다음 값을 입력하거나 선택합니다.
설정 값 프로젝트 세부 정보 Subscription 로그하려는 네트워크 보안 그룹의 Azure 구독을 선택합니다. 네트워크 보안 그룹 + 리소스 선택을 선택합니다.
네트워크 보안 그룹 선택에서 myVM-nsg를 선택합니다. 다음으로 선택 확인을 선택합니다.흐름 로그 이름 myVM-nsg-myResourceGroup-flowlog의 기본값을 그대로 둡니다. 인스턴스 세부 정보 구독 스토리지 계정의 Azure 구독을 선택합니다. 스토리지 계정 이전 단계에서 만든 스토리지 계정을 선택합니다. 이 자습서에서는 mynwstorageaccount를 사용합니다. 보존(일) 스토리지 계정에서 삭제할 때까지 흐름 로그 데이터를 스토리지 계정에 영원히 유지하려면 0을 입력합니다. 보존 정책을 적용하려면 보존 시간을 일 단위로 입력합니다. 스토리지 가격 책정에 대한 자세한 내용은 Azure Storage 가격 책정을 참조하세요. 참고 항목
Azure Portal에서 NetworkWatcherRG 리소스 그룹에 NSG 흐름 로그를 만듭니다.
검토 + 만들기를 선택합니다.
설정을 검토한 다음, 만들기를 선택합니다.
배포가 완료되면 리소스로 이동을 선택하여 생성되어 흐름 로그 페이지에 나열된 흐름 로그를 확인합니다.
myVM 가상 머신의 RDP 세션으로 돌아갑니다.
Microsoft Edge를 열고
www.bing.com
(으)로 이동합니다.
흐름 로그 다운로드
이 섹션에서는 이전에 선택한 스토리지 계정으로 이동하고, 이전 섹션에서 만든 NSG 흐름 로그를 다운로드합니다.
포털 위쪽의 검색 상자에서 스토리지 계정을 입력합니다. 검색 결과에서 Storage 계정을 선택합니다.
mynwstorageaccount 또는 이전에 만들고 로그를 저장하도록 선택한 스토리지 계정을 선택합니다.
데이터 스토리지에서 컨테이너를 선택합니다.
insights-logs-networksecuritygroupflowevent 컨테이너를 선택합니다.
컨테이너에서
PT1H.json
파일에 도달할 때까지 폴더 계층 구조를 탐색합니다. NSG 로그 파일은 다음 명명 규칙을 따르는 폴더 계층 구조에 기록됩니다.https://{storageAccountName}.blob.core.windows.net/insights-logs-networksecuritygroupflowevent/resourceId=/SUBSCRIPTIONS/{subscriptionID}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/{networSecurityGroupName}/y={year}/m={month}/d={day}/h={hour}/m=00/macAddress={acAddress}/PT1H.json
PT1H.json 파일의 오른쪽에 있는 줄임표(...)를 선택한 다음, 다운로드를 선택합니다.
참고 항목
Azure Storage Explorer를 사용하여 스토리지 계정에서 흐름 로그에 액세스하고 다운로드할 수 있습니다. 자세한 내용은 Storage Explorer 시작을 참조하세요.
흐름 로그 보기
선택한 텍스트 편집기를 사용하여 다운로드한 PT1H.json
파일을 엽니다. 다음 예제는 다운로드한 PT1H.json
파일에서 가져온 섹션이며, DefaultRule_AllowInternetOutBound 규칙에 따라 처리된 흐름을 보여줍니다.
{
"time": "2023-02-26T23:45:44.1503927Z",
"systemId": "00000000-0000-0000-0000-000000000000",
"macAddress": "112233445566",
"category": "NetworkSecurityGroupFlowEvent",
"resourceId": "/SUBSCRIPTIONS/abcdef01-2345-6789-0abc-def012345678/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/MYVM-NSG",
"operationName": "NetworkSecurityGroupFlowEvents",
"properties": {
"Version": 2,
"flows": [
{
"rule": "DefaultRule_AllowInternetOutBound",
"flows": [
{
"mac": "112233445566",
"flowTuples": [
"1677455097,10.0.0.4,13.107.21.200,49982,443,T,O,A,C,7,1158,12,8143"
]
}
]
}
]
}
}
flowTuples의 쉼표로 구분된 정보는 다음과 같습니다.
예제 데이터 | 데이터가 나타내는 정보 | 설명 |
---|---|---|
1677455097 | 타임스탬프 | 흐름이 UNIX EPOCH 형식으로 발생한 타임스탬프입니다. 이전 예제에서 날짜는 2023년 2월 26일 오후 11:44:57 GMT로 변환됩니다. |
10.0.0.4 | 원본 IP 주소 | 흐름이 시작된 원본 IP 주소입니다. 10.0.0.4는 이전에 만든 VM의 개인 IP 주소입니다. |
13.107.21.200 | 대상 IP 주소 | 흐름을 보내는 대상 IP 주소입니다. 13.107.21.200은 www.bing.com 의 IP 주소입니다. 트래픽이 Azure 외부로 향하므로 DefaultRule_AllowInternetOutBound 보안 규칙에서 흐름을 처리했습니다. |
49982 | 원본 포트 | 흐름이 시작된 원본 포트입니다. |
443 | 대상 포트 | 흐름을 보낸 대상 포트입니다. |
T | 프로토콜 | 흐름의 프로토콜입니다. T: TCP입니다. |
O | Direction | 흐름의 방향입니다. O: 아웃바운드입니다. |
A | 의사 결정 | 보안 규칙의 결정입니다. A: 허용됨입니다. |
C | 흐름 상태 버전 2만 해당 | 흐름의 상태입니다. C: 진행 중인 흐름에 대해 계속됩니다. |
7 | 보낸 패킷 수 버전 2만 해당 | 마지막 업데이트 이후 원본에서 대상으로 보낸 TCP 패킷의 총 수입니다. |
1158 | 보낸 바이트 수 버전 2만 해당 | 마지막 업데이트 이후 원본에서 대상으로 보낸 TCP 패킷 바이트의 총 수입니다. 패킷 바이트에는 패킷 헤더 및 페이로드가 포함됩니다. |
12 | 받은 패킷 수 버전 2만 해당 | 마지막 업데이트 이후 대상에서 받은 TCP 패킷의 총 수입니다. |
8143 | 받은 바이트 수 버전 2만 해당 | 마지막 업데이트 이후 대상에서 받은 TCP 패킷 바이트의 총 수입니다. 패킷 바이트에는 패킷 헤더 및 페이로드가 포함됩니다. |
리소스 정리
더 이상 필요하지 않은 경우 myResourceGroup 리소스 그룹 및 이 그룹에 포함된 모든 리소스를 삭제합니다.
포털 맨 위에 있는 검색 상자에 myResourceGroup을 입력합니다. 검색 결과에서 myResourceGroup을 선택합니다.
리소스 그룹 삭제를 선택합니다.
리소스 그룹 삭제에 myResourceGroup을 입력한 다음, 삭제를 선택합니다.
삭제를 선택하여 리소스 그룹 및 리소스 그룹의 모든 리소스의 삭제를 확인합니다.
참고 항목
myVM-nsg-myResourceGroup-flowlog 흐름 로그는 NetworkWatcherRG 리소스 그룹에 있지만 (myResourceGroup 리소스 그룹을 삭제함으로써) myVM-nsg 네트워크 보안 그룹을 삭제한 후 삭제됩니다.
관련 콘텐츠
- NSG 흐름 로그에 대한 자세한 내용은 네트워크 보안 그룹 대한 로깅 흐름을 참조하세요.
- NSG 흐름 로그를 생성, 변경, 사용, 사용 안 함 또는 삭제하는 방법을 알아보려면 NSG 흐름 로그 관리를 참조하세요.
- 트래픽 분석에 대한 자세한 내용은 트래픽 분석 개요를 참조하세요.