Azure CLI kullanarak Azure Ağ İzleyicisi ile sanal makineler için paket yakalamalarını yönetme

Ağ İzleyicisi paket yakalama aracı, Azure sanal makinesine (VM) gelen ve bu makineden gelen ağ trafiğini kaydetmek için yakalama oturumları oluşturmanıza olanak tanır. Yalnızca istediğiniz trafiği yakalamanızı sağlamak için yakalama oturumu için filtreler sağlanır. Paket yakalama, ağ anomalilerini hem reaktif hem de proaktif olarak tanılamaya yardımcı olur. Uygulamaları, anomali algılamanın ötesine geçerek ağ istatistikleri toplamayı, ağ yetkisiz girişleriyle ilgili içgörüler elde etme, istemci-sunucu iletişiminde hata ayıklama ve diğer çeşitli ağ sorunlarını gidermeyi içerir. Ağ İzleyicisi paket yakalama, belirli bir sanal makinede el ile yürütme gereksinimini ortadan kaldırın ve paket yakalamalarını uzaktan başlatmanızı sağlar.

Bu makalede, Azure PowerShell kullanarak bir sanal makine paket yakalamasını uzaktan yapılandırmayı, başlatmayı, durdurmayı, indirmeyi ve silmeyi öğreneceksiniz. Azure portalını veya Azure CLI'yı kullanarak paket yakalamalarını yönetmeyi öğrenmek için bkz . Azure portalını kullanarak sanal makineler için paket yakalamalarını yönetme veya PowerShell kullanarak sanal makineler için paket yakalamalarını yönetme.

Önkoşullar

  • Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.

  • Azure Cloud Shell veya Azure CLI.

    Bu makaledeki adımlar, Azure Cloud Shell'de Azure CLI komutlarını etkileşimli olarak çalıştırır. Komutları Cloud Shell'de çalıştırmak için kod bloğunun sağ üst köşesindeki Cloud Shell'i Aç'ı seçin. Kodu kopyalamak için Kopyala'yı seçin ve çalıştırmak için Cloud Shell'e yapıştırın. Cloud Shell'i Azure portalından da çalıştırabilirsiniz.

    Komutları çalıştırmak için Azure CLI'yi yerel olarak da yükleyebilirsiniz. Azure CLI'yı yerel olarak çalıştırıyorsanız az login komutunu kullanarak Azure'da oturum açın .

  • Aşağıdaki giden TCP bağlantısına sahip bir sanal makine:

    • 443 numaralı bağlantı noktası üzerinden depolama hesabına
    • 80 numaralı bağlantı noktası üzerinden 169.254.169.254'e
    • 8037 numaralı bağlantı noktası üzerinden 168.63.129.16'ya

Not

  • Azure, Ağ İzleyicisi bu bölge için etkinleştirilmediyse sanal makinenin bölgesinde bir Ağ İzleyicisi örneği oluşturur. Daha fazla bilgi için bkz. Azure Ağ İzleyicisi etkinleştirme veya devre dışı bırakma.
  • Ağ İzleyicisi paket yakalama, hedef sanal makineye Ağ İzleyicisi aracı VM uzantısının yüklenmesini gerektirir. Daha fazla bilgi için bkz. Ağ İzleyicisi aracısını yükleme.
  • Önkoşullar bölümünde listelenen son iki IP adresi ve bağlantı noktası, Ağ İzleyicisi aracısını kullanan ve zaman zaman değişebilen tüm Ağ İzleyicisi araçlarda yaygındır.

Bir ağ güvenlik grubu ağ arabirimiyle veya ağ arabiriminin bulunduğu alt ağ ile ilişkiliyse, önceki bağlantı noktaları üzerinden giden bağlantıya izin vermek için kuralların mevcut olduğundan emin olun. Benzer şekilde, ağınıza kullanıcı tanımlı yollar eklerken önceki bağlantı noktaları üzerinden giden bağlantı olduğundan emin olun.

Ağ İzleyicisi aracıyı yükleme

1. Adım

Paket yakalama aracısını az vm extension set konuk sanal makineye yüklemek için komutunu çalıştırın.

Windows sanal makineleri için:

az vm extension set --resource-group resourceGroupName --vm-name virtualMachineName --publisher Microsoft.Azure.NetworkWatcher --name NetworkWatcherAgentWindows --version 1.4

Linux sanal makineleri için:

az vm extension set --resource-group resourceGroupName --vm-name virtualMachineName --publisher Microsoft.Azure.NetworkWatcher --name NetworkWatcherAgentLinux --version 1.4

2. Adım

Aracının yüklendiğinden emin olmak için komutunu çalıştırın vm extension show ve kaynak grubu ile sanal makine adını geçirin. Aracının yüklü olduğundan emin olmak için sonuçta elde edilen listeyi denetleyin.

Windows sanal makineleri için:

az vm extension show --resource-group resourceGroupName --vm-name virtualMachineName --name NetworkWatcherAgentWindows

Linux sanal makineleri için:

az vm extension show --resource-group resourceGroupName --vm-name virtualMachineName --name AzureNetworkWatcherExtension

Aşağıdaki örnek, çalıştırılan yanıtın bir örneğidir az vm extension show

{
  "autoUpgradeMinorVersion": true,
  "forceUpdateTag": null,
  "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions/NetworkWatcherAgentWindows",
  "instanceView": null,
  "location": "westcentralus",
  "name": "NetworkWatcherAgentWindows",
  "protectedSettings": null,
  "provisioningState": "Succeeded",
  "publisher": "Microsoft.Azure.NetworkWatcher",
  "resourceGroup": "{resourceGroupName}",
  "settings": null,
  "tags": null,
  "type": "Microsoft.Compute/virtualMachines/extensions",
  "typeHandlerVersion": "1.4",
  "virtualMachineExtensionType": "NetworkWatcherAgentWindows"
}

Paket yakalamayı başlatma

Yukarıdaki adımlar tamamlandıktan sonra paket yakalama aracısı sanal makineye yüklenir.

1. Adım

Bir depolama hesabı alın. Bu depolama hesabı paket yakalama dosyasını depolamak için kullanılır.

az storage account list

2. Adım

Bu noktada, paket yakalama oluşturmaya hazırsınız. İlk olarak, yapılandırmak isteyebileceğiniz parametreleri inceleyelim. Filtreler, paket yakalama tarafından depolanan verileri sınırlamak için kullanılabilecek böyle bir parametredir. Aşağıdaki örnek, birkaç filtreyle paket yakalamayı ayarlar. İlk üç filtre yalnızca yerel IP 10.0.0.3'ten 20, 80 ve 443 hedef bağlantı noktalarına giden TCP trafiğini toplar. Son filtre yalnızca UDP trafiğini toplar.

az network watcher packet-capture create --resource-group {resourceGroupName} --vm {vmName} --name packetCaptureName --storage-account {storageAccountName} --filters "[{\"protocol\":\"TCP\", \"remoteIPAddress\":\"1.1.1.1-255.255.255.255\",\"localIPAddress\":\"10.0.0.3\", \"remotePort\":\"20\"},{\"protocol\":\"TCP\", \"remoteIPAddress\":\"1.1.1.1-255.255.255.255\",\"localIPAddress\":\"10.0.0.3\", \"remotePort\":\"80\"},{\"protocol\":\"TCP\", \"remoteIPAddress\":\"1.1.1.1-255.255.255.255\",\"localIPAddress\":\"10.0.0.3\", \"remotePort\":\"443\"},{\"protocol\":\"UDP\"}]"

Aşağıdaki örnek, komutun çalıştırılmasından beklenen çıkıştır az network watcher packet-capture create .

{
  "bytesToCapturePerPacket": 0,
  "etag": "W/\"b8cf3528-2e14-45cb-a7f3-5712ffb687ac\"",
  "filters": [
    {
      "localIpAddress": "10.0.0.3",
      "localPort": "",
      "protocol": "TCP",
      "remoteIpAddress": "1.1.1.1-255.255.255.255",
      "remotePort": "20"
    },
    {
      "localIpAddress": "10.0.0.3",
      "localPort": "",
      "protocol": "TCP",
      "remoteIpAddress": "1.1.1.1-255.255.255.255",
      "remotePort": "80"
    },
    {
      "localIpAddress": "10.0.0.3",
      "localPort": "",
      "protocol": "TCP",
      "remoteIpAddress": "1.1.1.1-255.255.255.255",
      "remotePort": "443"
    },
    {
      "localIpAddress": "",
      "localPort": "",
      "protocol": "UDP",
      "remoteIpAddress": "",
      "remotePort": ""
    }
  ],
  "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_westcentralus/packetCaptures/packetCaptureName",
  "name": "packetCaptureName",
  "provisioningState": "Succeeded",
  "resourceGroup": "NetworkWatcherRG",
  "storageLocation": {
    "filePath": null,
    "storageId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/gwteststorage123abc",
    "storagePath": "https://gwteststorage123abc.blob.core.windows.net/network-watcher-logs/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/{resourceGroupName}/providers/microsoft.compute/virtualmachines/{vmName}/2017/05/25/packetcapture_16_22_34_630.cap"
  },
  "target": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}",
  "timeLimitInSeconds": 18000,
  "totalBytesPerSession": 1073741824
}

Paket yakalama alma

komutu çalıştırılır az network watcher packet-capture show-status , çalışmakta olan veya tamamlanan paket yakalama durumunu alır.

az network watcher packet-capture show-status --name packetCaptureName --location {networkWatcherLocation}

Aşağıdaki örnek, komutundan elde edilen az network watcher packet-capture show-status çıktıdır. Aşağıdaki örnek yakalamanın Durduruldu olduğu ve TimeExceeded StopReason olduğu durumdur.

{
  "additionalProperties": {
    "status": "Succeeded"
  },
  "captureStartTime": "2016-12-06T17:20:01.5671279Z",
  "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_westcentralus/packetCaptures/packetCaptureName",
  "name": "packetCaptureName",
  "packetCaptureError": [],
  "packetCaptureStatus": "Stopped",
  "stopReason": "TimeExceeded"
}

Paket yakalamayı durdurma

komutu çalıştırılarak az network watcher packet-capture stop , devam eden bir yakalama oturumu durdurulur.

az network watcher packet-capture stop --name packetCaptureName --location westcentralus

Not

Komut, çalışmakta olan bir yakalama oturumunda veya zaten durdurulmuş olan mevcut bir oturumda çalıştırıldığında yanıt döndürmez.

Paket yakalamayı silme

az network watcher packet-capture delete --name packetCaptureName --location westcentralus

Not

Paket yakalama silindiğinde depolama hesabındaki dosya silinmez.

Paket yakalamayı indirme

Paket yakalama oturumunuz tamamlandıktan sonra yakalama dosyası blob depolamaya veya VM'de yerel bir dosyaya yüklenebilir. Paket yakalamanın depolama konumu, oturumun oluşturulması sırasında tanımlanır. Depolama hesabına kaydedilen bu yakalama dosyalarına erişmek için kullanışlı bir araç Microsoft Azure Depolama Gezgini ve buradan indirilebilir:https://storageexplorer.com/

Bir depolama hesabı belirtilirse paket yakalama dosyaları aşağıdaki konumdaki bir depolama hesabına kaydedilir:

https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachines/{VMName}/{year}/{month}/{day}/packetCapture_{creationTime}.cap