Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel erfahren Sie, wie Sie mehrere Azure Firewall-Regeln mithilfe von Azure PowerShell effizient hinzufügen und ändern können. Wenn Sie die Schritte in diesem Artikel ausführen, können Sie die Aktualisierungszeit reduzieren und Konfigurationskonflikte vermeiden.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie folgendes haben:
- Ein Azure-Abonnement mit einer vorhandenen Azure-Firewall- oder Azure-Firewallrichtlinie
- Azure PowerShell installiert und konfiguriert
- Geeignete Berechtigungen zum Ändern von Firewallrichtlinien
- Eine Testumgebung zum Überprüfen von Änderungen vor der Anwendung auf die Produktion
Überblick
Wenn Sie der Azure-Firewall- oder Azure-Firewallrichtlinie neue Regeln hinzufügen, verwenden Sie den folgenden Ansatz, um die Gesamtaktualisierungszeit zu reduzieren und potenzielle Konflikte zu vermeiden:
- Rufen Sie das Azure Firewall- oder Azure Firewall Policy-Objekt ab.
- Fügen Sie alle neuen Regeln hinzu, und führen Sie andere gewünschte Änderungen im lokalen Objekt aus. Sie können sie einer vorhandenen Regelsammlung hinzufügen oder nach Bedarf neue erstellen.
- Senden Sie die Firewall- oder Firewallrichtlinien-Aktualisierungen erst dann per Push, wenn alle Änderungen vorgenommen wurden.
Dieser Ansatz gewährleistet atomrelevante Updates und reduziert das Risiko von Konfigurationskonflikten.
In den folgenden Abschnitten wird gezeigt, wie Sie neue DNAT-Regeln hinzufügen und vorhandene Regeln in einer Firewallrichtlinie aktualisieren. Sie sollten die gleichen Prinzipien befolgen, wenn Sie:
- Aktualisieren von Anwendungs- oder Netzwerkregeln
- Aktualisieren einer Firewall, die mit klassischen Regeln verwaltet wird
- Ändern vorhandener Regelkonfigurationen
Von Bedeutung
Testen Sie diese Verfahren immer zuerst in einer Testrichtlinie, um sicherzustellen, dass sie für Ihre spezifischen Anforderungen erwartungsgemäß funktionieren.
Herstellen einer Verbindung mit Azure und Festlegen des Kontexts
Stellen Sie eine Verbindung mit Ihrem Azure-Konto her, und legen Sie den Kontext auf Ihr Zielabonnement fest:
Connect-AzAccount
Set-AzContext -Subscription "<Subscription ID>"
Abrufen von Firewallrichtlinienobjekten
Erstellen Sie lokale Objekte für die Firewallrichtlinie, die Regelsammlungsgruppe und die spezifische Regelsammlung, die Sie ändern möchten:
$policy = Get-AzFirewallPolicy -Name "<Policy Name>" -ResourceGroupName "<Resource Group Name>"
$natrulecollectiongroup = Get-AzFirewallPolicyRuleCollectionGroup -Name "<Rule Collection Group Name>" -ResourceGroupName "<Resource Group Name>" -AzureFirewallPolicyName "<Firewall Policy Name>"
$existingrulecollection = $natrulecollectiongroup.Properties.RuleCollection | Where-Object {$_.Name -eq "<rule collection name>"}
Hinzufügen neuer Regeln
Definieren neuer Regeln
Definieren Sie die neuen DNAT-Regeln, die Sie der Regelsammlung hinzufügen möchten:
$newrule1 = New-AzFirewallPolicyNatRule -Name "dnat-rule1" -Protocol "TCP" -SourceAddress "<Source Address>" -DestinationAddress "<Destination Address>" -DestinationPort "<Destination Port>" -TranslatedAddress "<Translated Address>" -TranslatedPort "<Translated Port>"
$newrule2 = New-AzFirewallPolicyNatRule -Name "dnat-rule2" -Protocol "TCP" -SourceAddress "<Source Address>" -DestinationAddress "<Destination Address>" -DestinationPort "<Destination Port>" -TranslatedAddress "<Translated Address>" -TranslatedPort "<Translated Port>"
Hinzufügen von Regeln zur Regelsammlung
Fügen Sie dem lokalen Regelsammlungsobjekt die neuen Regeln hinzu:
$existingrulecollection.Rules.Add($newrule1)
$existingrulecollection.Rules.Add($newrule2)
Hinweis
Sie können in diesem Schritt beliebig viele Regeln hinzufügen. Alle Änderungen werden am lokalen Objekt vorgenommen, bis Sie Azure im letzten Schritt aktualisieren.
Aktualisieren vorhandener Regeln
So ändern Sie vorhandene Regeln in der Regelsammlung:
Suchen und Ändern vorhandener Regeln
Suchen Sie eine vorhandene Regel anhand des Namens, und ändern Sie deren Eigenschaften:
# Find the existing rule
$existingRule = $existingrulecollection.Rules | Where-Object {$_.Name -eq "existing-rule-name"}
# Modify rule properties
if ($existingRule) {
$existingRule.SourceAddresses = @("10.0.0.0/8", "192.168.0.0/16")
$existingRule.DestinationPorts = @("80", "443")
$existingRule.TranslatedAddress = "10.1.1.100"
$existingRule.TranslatedPort = "8080"
Write-Host "Rule '$($existingRule.Name)' updated successfully."
} else {
Write-Warning "Rule 'existing-rule-name' not found."
}
Entfernen vorhandener Regeln
So entfernen Sie eine Regel aus der Auflistung:
# Find and remove the rule
$ruleToRemove = $existingrulecollection.Rules | Where-Object {$_.Name -eq "rule-to-delete"}
if ($ruleToRemove) {
$existingrulecollection.Rules.Remove($ruleToRemove)
Write-Host "Rule '$($ruleToRemove.Name)' removed successfully."
} else {
Write-Warning "Rule 'rule-to-delete' not found."
}
Auflisten aller Regeln in der Sammlung
So zeigen Sie alle aktuellen Regeln in der Auflistung an:
# Display all rules
$existingrulecollection.Rules | Select-Object Name, Protocol, SourceAddresses, DestinationAddresses, DestinationPorts, TranslatedAddress, TranslatedPort | Format-Table
Anwenden von Änderungen auf Azure
Nachdem Sie alle Änderungen an den lokalen Objekten vorgenommen haben, aktualisieren Sie die Regelsammlungsgruppe in Azure:
try {
Set-AzFirewallPolicyRuleCollectionGroup -Name "<Rule Collection Group Name>" -FirewallPolicyObject $policy -Priority 200 -RuleCollection $natrulecollectiongroup.Properties.RuleCollection
Write-Host "Firewall policy updated successfully."
} catch {
Write-Error "Failed to update firewall policy: $($_.Exception.Message)"
}
Von Bedeutung
In diesem Schritt werden alle Änderungen auf Azure angewendet. Stellen Sie sicher, dass Sie Ihre Konfiguration gründlich getestet haben, bevor Sie diesen Befehl in der Produktion ausführen.
Überprüfen von Änderungen
Überprüfen Sie nach dem Aktualisieren der Richtlinie, ob Ihre Änderungen ordnungsgemäß angewendet wurden:
# Refresh the policy object and verify changes
$updatedPolicy = Get-AzFirewallPolicy -Name "<Policy Name>" -ResourceGroupName "<Resource Group Name>"
$updatedRuleGroup = Get-AzFirewallPolicyRuleCollectionGroup -Name "<Rule Collection Group Name>" -ResourceGroupName "<Resource Group Name>" -AzureFirewallPolicyName "<Firewall Policy Name>"
# Display the updated rules
$updatedRuleCollection = $updatedRuleGroup.Properties.RuleCollection | Where-Object {$_.Name -eq "<rule collection name>"}
$updatedRuleCollection.Rules | Select-Object Name, Protocol, SourceAddresses, DestinationAddresses | Format-Table
Bereinigen von Ressourcen
Wenn Sie Testressourcen für dieses Lernprogramm erstellt haben, können Sie sie entfernen, um Gebühren zu vermeiden. Wenn Sie die Ressourcengruppe löschen, löschen Sie auch die Firewall und alle zugehörigen Ressourcen.
Remove-AzResourceGroup -Name "<Resource Group Name>" -Force
Vorsicht
Führen Sie diesen Befehl nur aus, wenn Sie alle Ressourcen in der Ressourcengruppe löschen möchten. Diese Aktion kann nicht rückgängig gemacht werden.
Nächste Schritte
Weitere Informationen zu Azure Firewall-Richtlinien und -Regelverwaltung finden Sie in den folgenden Artikeln: