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 einer 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
Melden Sie sich beim Azure-Portal an.
Geben Sie im Suchfeld oben im Azure-Portal Netzwerksicherheitsgruppen ein. Wählen Sie in den Suchergebnissen Netzwerksicherheitsgruppen aus.
Wählen Sie die NSG aus, für die Sie die Protokollierung aktivieren möchten.
Wählen Sie unter Überwachung die Option Diagnoseeinstellung und dann Diagnoseeinstellung hinzufügen aus.
Geben Sie unter Diagnoseeinstellung einen Namen ein, z. B. myNsgDiagnostic.
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.
Wählen Sie unter Zieldetails mindestens ein Ziel aus:
- Senden Sie die Daten an einen Log Analytics-Arbeitsbereich.
- In einem Speicherkonto archivieren.
- An einen Event Hub streamen.
- An eine Partnerlösung senden.
Weitere Informationen finden Sie unter Protokollziele.
Wählen Sie Speichern aus.
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 von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.
Sie können die Befehle ausführen, die in diesem Abschnitt in Azure Cloud Shellverfügbar sind. Sie können auch PowerShell über Ihren Computer aus ausführen. 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 NSG 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, erstellen Sie einen mit dem Cmdlet New-AzOperationalInsightsWorkspace.
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 Cloud Shell oder über die Azure CLI auf Ihrem Computer ausführen. 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 NSG 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 Zählerkategorie 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:
- Log Analytics-Arbeitsbereich
- Azure Event Hubs
- Azure Storage (in englischer Sprache)
- Azure Monitor – integrierte Partnerlösungen
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 einer MAC-Adresse auf virtuelle Computer angewendet werden. 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 NSG-Analyselösung können Sie bessere Erkenntnisse gewinnen. 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.
Zugehöriger Inhalt
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.