Ressourcenprotokollierung für eine Netzwerksicherheitsgruppe

Eine Netzwerksicherheitsgruppe (NSG) umfasst Regeln, die Datenverkehr an ein Subnetz oder eine Netzwerkschnittstelle eines virtuellen Netzwerks oder beides zulassen oder ablehnen.

Wenn Sie die Protokollierung für eine NSG aktivieren, können Sie die folgenden Typen von Ressourcenprotokollinformationen erfassen:

  • Ereignis: Es werden Einträge protokolliert, für die auf Grundlage der MAC-Adresse NSG-Regeln auf virtuellen Computern angewendet werden.
  • Regelzähler: Enthält Einträge darüber, wie oft jede NSG-Regel angewendet wurde, um Datenverkehr zuzulassen oder zu verweigern. Der Status für diese Regeln wird alle 300 Sekunden erfasst.

Ressourcenprotokolle sind nur für NSGs verfügbar, die über das Azure Resource Manager-Bereitstellungsmodell bereitgestellt wurden. Sie können die Ressourcenprotokollierung nicht für NSGs aktivieren, die über das klassische Bereitstellungsmodell bereitgestellt wurden. Weitere Informationen finden Sie unter Grundlagen von Bereitstellungsmodellen.

Die Ressourcenprotokollierung wird für jede NSG separat aktiviert, für die Diagnosedaten gesammelt werden. Wenn Sie stattdessen an Aktivitäts- oder Betriebsprotokollen interessiert sind, lesen Sie die Übersicht über Azure-Plattformprotokolle. Informationen zum IP-Datenverkehr, der durch NSGs fließt, finden Sie unter NSG-Datenflussprotokolle für Netzwerksicherheitsgruppen.

Aktivieren der Protokollierung

Die Ressourcenprotokollierung kann über das Azure-Portal, Azure PowerShell oder die Azure-Befehlszeilenschnittstelle aktiviert werden.

Azure-Portal

  1. Melden Sie sich beim Azure-Portal an.

  2. Geben Sie im Suchfeld oben im Azure-Portal Netzwerksicherheitsgruppen ein. Wählen Sie in den Suchergebnissen Netzwerksicherheitsgruppen aus.

  3. Wählen Sie die NSG aus, für die die Protokollierung aktiviert werden soll.

  4. Wählen Sie unter Überwachung die Option Diagnoseeinstellung und dann Diagnoseeinstellung hinzufügen aus:

    Screenshot: Diagnoseeinstellungen für eine NSG mit hervorgehobener Option „Diagnoseeinstellung hinzufügen“.

  5. Geben Sie unter Diagnoseeinstellung einen Namen ein, z. B. myNsgDiagnostic.

  6. Wählen Sie für Protokolle die Option allLogs aus, oder wählen Sie einzelne Protokollkategorien aus. Weitere Informationen zu den einzelnen Kategorien finden Sie unter Protokollkategorien.

  7. Wählen Sie unter Zieldetails mindestens ein Ziel aus:

    • Senden an den Log Analytics-Arbeitsbereich
    • In einem Speicherkonto archivieren
    • An einen Event Hub streamen
    • Senden an eine Partnerlösung

    Weitere Informationen finden Sie unter Protokollziele.

  8. Wählen Sie Speichern aus.

  9. Zeigen Sie Protokolle an, und analysieren Sie sie. Weitere Informationen finden Sie unter Anzeigen und Analysieren von Protokollen.

Azure PowerShell

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren des Azure Az PowerShell-Moduls. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Sie können die Befehle in diesem Abschnitt in Azure Cloud Shell oder über PowerShell auf Ihrem Computer ausführen. Azure Cloud Shell ist eine kostenlose interaktive Shell. Sie verfügt über allgemeine vorinstallierte Tools und ist für die Verwendung mit Ihrem Konto konfiguriert.

Wenn Sie PowerShell auf Ihrem Computer ausführen, müssen Sie das Azure PowerShell-Modul Version 1.0.0 oder höher ausführen. Führen Sie Get-Module -ListAvailable Az aus, um die installierte Version zu ermitteln. Wenn Sie ein Upgrade ausführen müssen, finden Sie unter Installieren des Azure PowerShell-Moduls Informationen dazu. Wenn Sie PowerShell lokal ausführen, müssen Sie auch das Cmdlet Connect-AzAccount ausführen, um sich bei Azure mit einem Konto anzumelden, das über die erforderlichen Berechtigungen verfügt.

Um die Ressourcenprotokollierung zu aktivieren, benötigen Sie die ID einer vorhandenen NSG. Wenn Sie keine NSG haben, erstellen Sie eine mit dem Cmdlet New-AzNetworkSecurityGroup.

Rufen Sie mit dem Cmdlet Get-AzNetworkSecurityGroup die Netzwerksicherheitsgruppe ab, für die die Ressourcenprotokollierung aktiviert werden soll. Speichern Sie die NSG zur späteren Verwendung in einer Variablen. Um z.B. eine NSG namens myNsg abzurufen, die sich in einer Ressourcengruppe mit dem Namen myResourceGroup befindet, geben Sie den folgenden Befehl ein:

$Nsg=Get-AzNetworkSecurityGroup `
  -Name myNsg `
  -ResourceGroupName myResourceGroup

Sie können Ressourcenprotokolle in drei unterschiedlichen Zieltypen schreiben. Weitere Informationen finden Sie unter Protokollziele. In diesem Artikel werden Protokolle an ein Log Analytics-Arbeitsbereichsziel gesendet. Falls kein Arbeitsbereich vorhanden ist, können Sie einen mit dem Cmdlet New-AzOperationalInsightsWorkspace erstellen.

Rufen Sie mit dem Cmdlet Get-AzOperationalInsightsWorkspace einen vorhandenen Log Analytics-Arbeitsbereich ab. Geben Sie beispielsweise den folgenden Befehl ein, wenn Sie einen vorhandenen Arbeitsbereich mit dem Namen myWorkspace in einer Ressourcengruppe mit dem Namen myWorkspaces abrufen und speichern möchten:

$Oms=Get-AzOperationalInsightsWorkspace `
  -ResourceGroupName myWorkspaces `
  -Name myWorkspace

Es gibt zwei Protokollierungskategorien, die Sie aktivieren können. Weitere Informationen finden Sie unter Protokollkategorien. Aktivieren Sie mit dem Cmdlet New-AzDiagnosticSetting die Ressourcenprotokollierung für die NSG. Im folgenden Beispiel werden sowohl Ereignis- als auch Zählerkategoriedaten in den Arbeitsbereich für eine NSG protokolliert. Es verwendet die IDs für die NSG und den Arbeitsbereich, den Sie mit den vorherigen Befehlen abgerufen haben:

New-AzDiagnosticSetting `
   -Name myDiagnosticSetting `
   -ResourceId $Nsg.Id `
   -WorkspaceId $Oms.ResourceId

Wenn Sie Daten in einem anderen Ziel als einem Log Analytics-Arbeitsbereich protokollieren möchten, verwenden Sie einen entsprechenden Parameter in dem Befehl. Weitere Informationen finden Sie unter Azure-Ressourcenprotokolle.

Weitere Informationen zu Einstellungen finden Sie unter New-AzDiagnosticSetting.

Zeigen Sie Protokolle an, und analysieren Sie sie. Weitere Informationen finden Sie unter Anzeigen und Analysieren von Protokollen.

Azure CLI

Sie können die Befehle in diesem Abschnitt in Azure Cloud Shell oder über die Azure-Befehlszeilenschnittstelle auf Ihrem Computer ausführen. Azure Cloud Shell ist eine kostenlose interaktive Shell. Sie verfügt über allgemeine vorinstallierte Tools und ist für die Verwendung mit Ihrem Konto konfiguriert.

Wenn Sie die Befehlszeilenschnittstelle über Ihren Computer ausführen, ist mindestens Version 2.0.38 erforderlich. Führen Sie az --version auf Ihrem Computer aus, um nach der installierten Version zu suchen. Wenn Sie ein Upgrade ausführen müssen, finden Sie unter Installieren der Azure-Befehlszeilenschnittstelle weitere Informationen. Wenn Sie die Befehlszeilenschnittstelle lokal ausführen, müssen Sie auch az login ausführen, um sich bei Azure mit einem Konto anzumelden, das über die erforderlichen Berechtigungen verfügt.

Um die Ressourcenprotokollierung zu aktivieren, benötigen Sie die ID einer vorhandenen NSG. Wenn noch keine NSG vorhanden ist, erstellen Sie eine mit dem Befehl az network nsg create.

Rufen Sie mit dem Befehl az network nsg show die Netzwerksicherheitsgruppe ab, für die die Ressourcenprotokollierung aktiviert werden soll, und speichern Sie sie. Um z.B. eine NSG namens myNsg abzurufen, die sich in einer Ressourcengruppe mit dem Namen myResourceGroup befindet, geben Sie den folgenden Befehl ein:

nsgId=$(az network nsg show \
  --name myNsg \
  --resource-group myResourceGroup \
  --query id \
  --output tsv)

Sie können Ressourcenprotokolle in drei unterschiedlichen Zieltypen schreiben. Weitere Informationen finden Sie unter Protokollziele. In diesem Artikel werden Protokolle beispielhaft an das Ziel Log Analytics gesendet. Weitere Informationen finden Sie unter Protokollkategorien.

Aktivieren Sie mit dem Befehl az monitor diagnostic-settings create die Ressourcenprotokollierung für die NSG. Im folgenden Beispiel werden Daten für die Ereignis- und die Indikatorkategorie in einem vorhandenen Arbeitsbereich namens myWorkspace protokolliert. Dieser ist in einer Ressourcengruppe namens myWorkspaces vorhanden. Es verwendet die ID der NSG, die Sie mit dem vorherigen Befehl gespeichert haben.

az monitor diagnostic-settings create \
  --name myNsgDiagnostics \
  --resource $nsgId \
  --logs '[ { "category": "NetworkSecurityGroupEvent", "enabled": true, "retentionPolicy": { "days": 30, "enabled": true } }, { "category": "NetworkSecurityGroupRuleCounter", "enabled": true, "retentionPolicy": { "days": 30, "enabled": true } } ]' \
  --workspace myWorkspace \
  --resource-group myWorkspaces

Wenn Sie über keinen vorhandenen Arbeitsbereich verfügen, erstellen Sie einen über das Azure-Portal oder über Azure PowerShell. Es gibt zwei Protokollierungskategorien, für die Sie Protokolle aktivieren können.

Wenn Sie Daten nur für die eine oder die andere Kategorie protokollieren möchten, entfernen Sie im vorherigen Befehl die Kategorie, für die Sie keine Daten protokollieren möchten. Wenn Sie Daten in einem anderen Ziel als einem Log Analytics-Arbeitsbereich protokollieren möchten, verwenden Sie einen entsprechenden Parameter. Weitere Informationen finden Sie unter Azure-Ressourcenprotokolle.

Zeigen Sie Protokolle an, und analysieren Sie sie. Weitere Informationen finden Sie unter Anzeigen und Analysieren von Protokollen.

Protokollziele

Sie können Diagnosedaten an die folgenden Optionen senden:

Protokollkategorien

JSON-formatierte Daten werden für die folgenden Protokollkategorien geschrieben: Ereignis und Regelzähler.

Ereignis

Dieses Ereignisprotokoll enthält Informationen darüber, welche NSG-Regeln basierend auf der MAC-Adresse für virtuelle Computer gelten. Die folgenden Daten werden für jedes Ereignis protokolliert. Im folgenden Beispiel werden die Daten für einen virtuellen Computer mit der IP-Adresse „192.168.1.4“ und der MAC-Adresse „00-0D-3A-92-6A-7C“ protokolliert:

{
    "time": "[DATE-TIME]",
    "systemId": "[ID]",
    "category": "NetworkSecurityGroupEvent",
    "resourceId": "/SUBSCRIPTIONS/[SUBSCRIPTION-ID]/RESOURCEGROUPS/[RESOURCE-GROUP-NAME]/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/[NSG-NAME]",
    "operationName": "NetworkSecurityGroupEvents",
    "properties": {
        "vnetResourceGuid":"[ID]",
        "subnetPrefix":"192.168.1.0/24",
        "macAddress":"00-0D-3A-92-6A-7C",
        "primaryIPv4Address":"192.168.1.4",
        "ruleName":"[SECURITY-RULE-NAME]",
        "direction":"[DIRECTION-SPECIFIED-IN-RULE]",
        "priority":"[PRIORITY-SPECIFIED-IN-RULE]",
        "type":"[ALLOW-OR-DENY-AS-SPECIFIED-IN-RULE]",
        "conditions":{
            "protocols":"[PROTOCOLS-SPECIFIED-IN-RULE]",
            "destinationPortRange":"[PORT-RANGE-SPECIFIED-IN-RULE]",
            "sourcePortRange":"[PORT-RANGE-SPECIFIED-IN-RULE]",
            "sourceIP":"[SOURCE-IP-OR-RANGE-SPECIFIED-IN-RULE]",
            "destinationIP":"[DESTINATION-IP-OR-RANGE-SPECIFIED-IN-RULE]"
            }
        }
}

Regelzähler

Das Regelzählerprotokoll enthält Informationen über jede Regel, die auf Ressourcen angewendet wird. Die folgenden Beispieldaten werden jedes Mal protokolliert, wenn eine Regel angewendet wird. Im folgenden Beispiel werden die Daten für einen virtuellen Computer mit der IP-Adresse „192.168.1.4“ und der MAC-Adresse „00-0D-3A-92-6A-7C“ protokolliert:

{
    "time": "[DATE-TIME]",
    "systemId": "[ID]",
    "category": "NetworkSecurityGroupRuleCounter",
    "resourceId": "/SUBSCRIPTIONS/[SUBSCRIPTION ID]/RESOURCEGROUPS/[RESOURCE-GROUP-NAME]/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/[NSG-NAME]",
    "operationName": "NetworkSecurityGroupCounters",
    "properties": {
        "vnetResourceGuid":"[ID]",
        "subnetPrefix":"192.168.1.0/24",
        "macAddress":"00-0D-3A-92-6A-7C",
        "primaryIPv4Address":"192.168.1.4",
        "ruleName":"[SECURITY-RULE-NAME]",
        "direction":"[DIRECTION-SPECIFIED-IN-RULE]",
        "type":"[ALLOW-OR-DENY-AS-SPECIFIED-IN-RULE]",
        "matchedConnections":125
        }
}

Hinweis

Die Quell-IP-Adresse für die Kommunikation wird nicht protokolliert. Sie können die NSG-Flussprotokollierung für eine NSG aktivieren, wobei alle Regelzählerinformationen sowie die Quell-IP-Adresse, die die Kommunikation initiiert, protokolliert werden. NSG-Flussprotokolldaten werden in einem Azure Storage-Konto gespeichert. Sie können die Daten mit der Funktion Traffic Analytics von Azure Network Watcher analysieren.

Anzeigen und Analysieren von Protokollen

Beim Senden von Diagnosedaten in folgenden Lösungen sollten Sie Folgendes wissen:

  • Azure Monitor-Protokolle: Mit der Analyselösung für Netzwerksicherheitsgruppen können Sie bessere Erkenntnisse erzielen. Die Lösung bietet Visualisierungen für NSG-Regeln, die Datenverkehr mittels der MAC-Adresse der Netzwerkschnittstelle auf einem virtuellen Computer zulassen oder ablehnen.

  • Azure Storage-Konto: Daten werden in eine Datei namens PT1H.json geschrieben. Folgende Informationen finden Sie in den angegebenen Speicherorten:

    • Ereignisprotokoll, das sich im folgenden Pfad befindet: insights-logs-networksecuritygroupevent/resourceId=/SUBSCRIPTIONS/[ID]/RESOURCEGROUPS/[RESOURCE-GROUP-NAME-FOR-NSG]/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/[NSG NAME]/y=[YEAR]/m=[MONTH/d=[DAY]/h=[HOUR]/m=[MINUTE]
    • Regelzählerprotokoll, das sich im folgenden Pfad befindet: insights-logs-networksecuritygrouprulecounter/resourceId=/SUBSCRIPTIONS/[ID]/RESOURCEGROUPS/[RESOURCE-GROUP-NAME-FOR-NSG]/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/[NSG NAME]/y=[YEAR]/m=[MONTH/d=[DAY]/h=[HOUR]/m=[MINUTE]

Informationen zum Anzeigen von Ressourcenprotokolldaten finden Sie unter Übersicht über die Azure-Plattformprotokolle.

Nächste Schritte

  • Weitere Informationen zur Aktivitätsprotokollierung finden Sie unter Übersicht über Azure-Plattformprotokolle.

    Die Aktivitätsprotokollierung ist für alle NSGs standardmäßig aktiviert, unabhängig davon, in welchem Azure-Bereitstellungsmodell sie erstellt wurden. Um zu bestimmen, welche Vorgänge für Netzwerksicherheitsgruppen im Aktivitätsprotokoll abgeschlossen wurden, suchen Sie nach Einträgen, die die folgenden Ressourcentypen enthalten:

    • Microsoft.ClassicNetwork/networkSecurityGroups
    • Microsoft.ClassicNetwork/networkSecurityGroups/securityRules
    • Microsoft.Network/networkSecurityGroups
    • Microsoft.Network/networkSecurityGroups/securityRules
  • Lesen Sie Protokollieren des Netzwerkdatenverkehrs zu und von einem virtuellen Computer über das Azure-Portal, um zu erfahren, wie Diagnoseinformationen protokolliert werden.