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.
Wenn Sie Ihr lokales Netzwerk mit einem virtuellen Azure-Netzwerk verbinden, um ein Hybridnetzwerk zu erstellen, ist das Steuern des Zugriffs auf Ihre Azure-Netzwerkressourcen ein wichtiger Bestandteil des globalen Sicherheitsplans.
Mit Azure Firewall können Sie den Netzwerkzugriff in einem Hybridnetzwerk mithilfe von Regeln steuern, die den zulässigen und verweigerten Netzwerkdatenverkehr definieren.
Für diesen Artikel erstellen Sie drei virtuelle Netzwerke:
- VNet-Hub: In diesem virtuellen Netzwerk befindet sich die Firewall.
- VNet-Spoke: Das virtuelle Spoke-Netzwerk stellt die Workload in Azure dar.
- VNet-Onprem: Das lokale virtuelle Netzwerk stellt ein lokales Netzwerk dar. In einer tatsächlichen Bereitstellung können Sie eine Verbindung mit ihm herstellen, indem Sie entweder eine VPN-Verbindung (virtuelles privates Netzwerk) oder eine Azure ExpressRoute-Verbindung verwenden. Der Einfachheit halber wird in diesem Artikel eine VPN-Gatewayverbindung verwendet, und ein in Azure eingerichtetes virtuelles Netzwerk stellt ein lokales Netzwerk dar.
Wenn Sie für die Vorgehensweise in diesem Artikel stattdessen das Azure-Portal verwenden möchten, finden Sie weitere Informationen unter Bereitstellen und Konfigurieren von Azure Firewall in einem Hybridnetzwerk über das Azure-Portal.
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.
Voraussetzungen
Für diesen Artikel müssen Sie PowerShell lokal ausführen. Das Azure PowerShell-Modul muss installiert sein. Führen Sie Get-Module -ListAvailable Az aus, um die Version zu ermitteln. Sollte ein Upgrade erforderlich sein, lesen Sie Installieren des Azure PowerShell-Moduls. Führen Sie nach dem Überprüfen der PowerShell-Version Connect-AzAccount aus, um eine Verbindung mit Azure zu erstellen.
Drei wichtige Anforderungen stellen sicher, dass dieses Szenario ordnungsgemäß funktioniert:
Eine benutzerdefinierte Route (UDR) im Speichensubnetz verweist als Standardgateway auf die Azure Firewall-IP-Adresse. Sie müssen die Gateway-Routenverteilung für den virtuellen Netzwerk für diese Routingtabelle deaktivieren.
Eine UDR im Hub-Gatewaysubnetz zeigt auf die Firewall-IP-Adresse als nächsten Hop zu den Spoke-Netzwerken.
Für das Azure Firewall-Subnetz ist keine UDR erforderlich, da es die Routen über BGP (Border Gateway Protocol) erlernt.
Konfigurieren Sie
AllowGatewayTransit, wenn Sie VNet-Hub mit VNet-Spoke peeren. Legen SieUseRemoteGatewaysfest, wenn Sie VNet-Spoke mit VNet-Hub verbinden.
Im Abschnitt Erstellen der Routen weiter unten in diesem Artikel wird gezeigt, wie Sie diese Routen erstellen.
Hinweis
Azure Firewall muss über eine direkte Internetverbindung verfügen. Wenn das Subnetz AzureFirewallSubnet eine Standardroute zu Ihrem lokalen Netzwerk über BGP lernt, müssen Sie Azure Firewall im Modus „Tunnelerzwingung“ konfigurieren. Wenn es sich um eine vorhandene Azure Firewall-Instanz handelt, die im Erzwungenen Tunnelmodus nicht neu konfiguriert werden kann, fügen Sie eine UDR 0.0.0.0/0 im AzureFirewallSubnet-Subnetz hinzu, wobei der NextHopType Wert so festgelegt ist, dass Internet die direkte Internetverbindung beibehalten wird.
Weitere Informationen finden Sie unter Azure Firewall-Tunnelerzwingung.
Der Datenverkehr zwischen per direktem Peering verbundenen virtuellen Netzwerken wird direkt weitergeleitet, auch wenn eine UDR auf Azure Firewall als Standardgateway verweist. Um in diesem Szenario Subnetz-zu-Subnetz-Datenverkehr an die Firewall zu senden, muss eine UDR explizit das Zielsubnetzwerk-Präfix in beiden Subnetzen enthalten.
Verwenden Sie New-AzFirewall als primäres Cmdlet, um die Firewall in diesem Artikel bereitzustellen und zu konfigurieren.
Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Deklarieren der Variablen
Im folgenden Beispiel werden die Variablen mit den Werten für diesen Artikel deklariert. In einigen Fällen müssen Sie möglicherweise einige Werte durch Ihre eigenen Werte ersetzen, um in Ihrem Abonnement zu arbeiten. Ändern Sie die Variablen ggf., kopieren Sie sie, und fügen Sie sie in die PowerShell-Konsole ein.
$RG1 = "FW-Hybrid-Test"
$Location1 = "East US"
# Variables for the firewall hub virtual network
$VNetnameHub = "VNet-Hub"
$SNnameHub = "AzureFirewallSubnet"
$VNetHubPrefix = "10.5.0.0/16"
$SNHubPrefix = "10.5.0.0/24"
$SNGWHubPrefix = "10.5.1.0/24"
$GWHubName = "GW-hub"
$GWHubpipName = "VNet-Hub-GW-pip"
$GWIPconfNameHub = "GW-ipconf-hub"
$ConnectionNameHub = "hub-to-Onprem"
# Variables for the spoke virtual network
$VnetNameSpoke = "VNet-Spoke"
$SNnameSpoke = "SN-Workload"
$VNetSpokePrefix = "10.6.0.0/16"
$SNSpokePrefix = "10.6.0.0/24"
$SNSpokeGWPrefix = "10.6.1.0/24"
# Variables for the on-premises virtual network
$VNetnameOnprem = "Vnet-Onprem"
$SNNameOnprem = "SN-Corp"
$VNetOnpremPrefix = "192.168.0.0/16"
$SNOnpremPrefix = "192.168.1.0/24"
$SNGWOnpremPrefix = "192.168.2.0/24"
$GWOnpremName = "GW-Onprem"
$GWIPconfNameOnprem = "GW-ipconf-Onprem"
$ConnectionNameOnprem = "Onprem-to-hub"
$GWOnprempipName = "VNet-Onprem-GW-pip"
$SNnameGW = "GatewaySubnet"
Erstellen der virtuellen Netzwerke
Erstellen des virtuellen Hub-Netzwerks
Verwenden Sie New-AzResourceGroup , um die Ressourcengruppe für diesen Artikel zu erstellen:
New-AzResourceGroup `
-Name $RG1 `
-Location $Location1
Verwenden Sie New-AzVirtualNetworkSubnetConfig und New-AzVirtualNetwork , um die Subnetze zu definieren und das virtuelle Hubnetzwerk zu erstellen:
$FWsub = New-AzVirtualNetworkSubnetConfig `
-Name $SNnameHub `
-AddressPrefix $SNHubPrefix
$GWsub = New-AzVirtualNetworkSubnetConfig `
-Name $SNnameGW `
-AddressPrefix $SNGWHubPrefix
$VNetHub = New-AzVirtualNetwork `
-Name $VNetnameHub `
-ResourceGroupName $RG1 `
-Location $Location1 `
-AddressPrefix $VNetHubPrefix `
-Subnet $FWsub,$GWsub
Verwenden Sie New-AzPublicIpAddress , um eine öffentliche IP-Adresse für das VPN-Gateway anzufordern. Legen Sie den AllocationMethod Wert auf Dynamic, was bedeutet, dass Azure die Adresse dynamisch zuweist.
$gwpip1 = New-AzPublicIpAddress `
-Name $GWHubpipName `
-ResourceGroupName $RG1 `
-Location $Location1 `
-AllocationMethod Dynamic
Erstellen Sie das virtuelle Spoke-Netzwerk
Verwenden Sie New-AzVirtualNetworkSubnetConfig und New-AzVirtualNetwork , um die Subnetze zu definieren und das virtuelle Speichennetzwerk zu erstellen:
$Spokesub = New-AzVirtualNetworkSubnetConfig `
-Name $SNnameSpoke `
-AddressPrefix $SNSpokePrefix
$GWsubSpoke = New-AzVirtualNetworkSubnetConfig `
-Name $SNnameGW `
-AddressPrefix $SNSpokeGWPrefix
$VNetSpoke = New-AzVirtualNetwork `
-Name $VnetNameSpoke `
-ResourceGroupName $RG1 `
-Location $Location1 `
-AddressPrefix $VNetSpokePrefix `
-Subnet $Spokesub,$GWsubSpoke
Erstellen des lokalen virtuellen Netzwerks
Verwenden Sie New-AzVirtualNetworkSubnetConfig und New-AzVirtualNetwork , um die Subnetze zu definieren und das lokale virtuelle Netzwerk zu erstellen:
$Onpremsub = New-AzVirtualNetworkSubnetConfig `
-Name $SNNameOnprem `
-AddressPrefix $SNOnpremPrefix
$GWOnpremsub = New-AzVirtualNetworkSubnetConfig `
-Name $SNnameGW `
-AddressPrefix $SNGWOnpremPrefix
$VNetOnprem = New-AzVirtualNetwork `
-Name $VNetnameOnprem `
-ResourceGroupName $RG1 `
-Location $Location1 `
-AddressPrefix $VNetOnpremPrefix `
-Subnet $Onpremsub,$GWOnpremsub
Verwenden Sie New-AzPublicIpAddress , um eine öffentliche IP-Adresse für das lokale virtuelle Netzwerkgateway anzufordern:
$gwOnprempip = New-AzPublicIpAddress `
-Name $GWOnprempipName `
-ResourceGroupName $RG1 `
-Location $Location1 `
-AllocationMethod Dynamic
Konfigurieren und Bereitstellen der Firewall
Verwenden Sie New-AzPublicIpAddress und New-AzFirewall , um die Firewall im virtuellen Hubnetzwerk bereitzustellen:
# Get a public IP for the firewall
$FWpip = New-AzPublicIpAddress `
-Name "fw-pip" `
-ResourceGroupName $RG1 `
-Location $Location1 `
-AllocationMethod Static `
-Sku Standard
# Create the firewall
$Azfw = New-AzFirewall `
-Name AzFW01 `
-ResourceGroupName $RG1 `
-Location $Location1 `
-VirtualNetworkName $VNetnameHub `
-PublicIpName fw-pip
# Save the firewall private IP address for future use
$AzfwPrivateIP = $Azfw.IpConfigurations.privateipaddress
$AzfwPrivateIP
Verwenden Sie New-AzFirewallNetworkRule und New-AzFirewallNetworkRuleCollection , um Netzwerkregeln zu konfigurieren. Verwenden Sie dann Set-AzFirewall , um sie anzuwenden:
$Rule1 = New-AzFirewallNetworkRule `
-Name "AllowWeb" `
-Protocol TCP `
-SourceAddress $SNOnpremPrefix `
-DestinationAddress $VNetSpokePrefix `
-DestinationPort 80
$Rule2 = New-AzFirewallNetworkRule `
-Name "AllowRDP" `
-Protocol TCP `
-SourceAddress $SNOnpremPrefix `
-DestinationAddress $VNetSpokePrefix `
-DestinationPort 3389
$Rule3 = New-AzFirewallNetworkRule `
-Name "AllowPing" `
-Protocol ICMP `
-SourceAddress $SNOnpremPrefix `
-DestinationAddress $VNetSpokePrefix `
-DestinationPort *
$NetRuleCollection = New-AzFirewallNetworkRuleCollection `
-Name RCNet01 `
-Priority 100 `
-Rule $Rule1,$Rule2,$Rule3 `
-ActionType "Allow"
$Azfw.NetworkRuleCollections = $NetRuleCollection
Set-AzFirewall -AzureFirewall $Azfw
Erstellen und Verbinden der VPN-Gateways
Sie verbinden den Hub und lokale virtuelle Netzwerke über VPN-Gateways.
Erstellen eines VPN-Gateways für das virtuelle Hub-Netzwerk
Verwenden Sie New-AzVirtualNetworkGatewayIpConfig , um die VPN-Gatewaykonfiguration für das virtuelle Hubnetzwerk zu erstellen. Die Konfiguration definiert das Subnetz und die zu verwendende öffentliche IP-Adresse.
$vnet1 = Get-AzVirtualNetwork `
-Name $VNetnameHub `
-ResourceGroupName $RG1
$subnet1 = Get-AzVirtualNetworkSubnetConfig `
-Name "GatewaySubnet" `
-VirtualNetwork $vnet1
$gwipconf1 = New-AzVirtualNetworkGatewayIpConfig `
-Name $GWIPconfNameHub `
-Subnet $subnet1 `
-PublicIpAddress $gwpip1
Verwenden Sie New-AzVirtualNetworkGateway , um das VPN-Gateway für das virtuelle Hubnetzwerk zu erstellen. Netzwerk-zu-Netzwerk-Konfigurationen erfordern den Wert VpnType für RouteBased. Das Erstellen eines VPN-Gateways kann je nach ausgewählter SKU häufig mindestens 45 Minuten dauern.
New-AzVirtualNetworkGateway `
-Name $GWHubName `
-ResourceGroupName $RG1 `
-Location $Location1 `
-IpConfigurations $gwipconf1 `
-GatewayType Vpn `
-VpnType RouteBased `
-GatewaySku basic
Erstellen eines VPN-Gateways für das lokale virtuelle Netzwerk
Verwenden Sie New-AzVirtualNetworkGatewayIpConfig , um die VPN-Gatewaykonfiguration für das lokale virtuelle Netzwerk zu erstellen. Die Konfiguration definiert das Subnetz und die zu verwendende öffentliche IP-Adresse.
$vnet2 = Get-AzVirtualNetwork `
-Name $VNetnameOnprem `
-ResourceGroupName $RG1
$subnet2 = Get-AzVirtualNetworkSubnetConfig `
-Name "GatewaySubnet" `
-VirtualNetwork $vnet2
$gwipconf2 = New-AzVirtualNetworkGatewayIpConfig `
-Name $GWIPconfNameOnprem `
-Subnet $subnet2 `
-PublicIpAddress $gwOnprempip
Verwenden Sie New-AzVirtualNetworkGateway , um das VPN-Gateway für das lokale virtuelle Netzwerk zu erstellen:
New-AzVirtualNetworkGateway `
-Name $GWOnpremName `
-ResourceGroupName $RG1 `
-Location $Location1 `
-IpConfigurations $gwipconf2 `
-GatewayType Vpn `
-VpnType RouteBased `
-GatewaySku basic
Erstellen der VPN-Verbindungen
Erstellen Sie die VPN-Verbindungen zwischen dem Hub-Gateway und dem lokalen Gateway.
Erstellen der Verbindungen
Verwenden Sie Get-AzVirtualNetworkGateway , um die Gatewayobjekte abzurufen, und verwenden Sie dann New-AzVirtualNetworkGatewayConnection , um die Verbindungen zu erstellen. Die Beispiele zeigen einen freigegebenen Schlüssel, aber Sie können eigene Werte verwenden. Wichtig ist, dass der freigegebene Schlüssel für beide Verbindungen übereinstimmt. Das Erstellen einer Verbindung kann etwas dauern.
$vnetHubgw = Get-AzVirtualNetworkGateway `
-Name $GWHubName `
-ResourceGroupName $RG1
$vnetOnpremgw = Get-AzVirtualNetworkGateway `
-Name $GWOnpremName `
-ResourceGroupName $RG1
New-AzVirtualNetworkGatewayConnection `
-Name $ConnectionNameHub `
-ResourceGroupName $RG1 `
-VirtualNetworkGateway1 $vnetHubgw `
-VirtualNetworkGateway2 $vnetOnpremgw `
-Location $Location1 `
-ConnectionType Vnet2Vnet `
-SharedKey 'AzureA1b2C3'
Erstellen Sie die Verbindung vom lokalen virtuellen Netzwerk zum virtuellen Hub-Netzwerk. Dieser Schritt ähnelt dem vorherigen Schritt, hier erstellen Sie jedoch die Verbindung vom lokalen virtuellen Netzwerk (VNet-Onprem) zum virtuellen Hub-Netzwerk (VNet-Hub). Stellen Sie sicher, dass die freigegebenen Schlüssel übereinstimmen. Nach ein paar Minuten wurde die Verbindung hergestellt.
New-AzVirtualNetworkGatewayConnection `
-Name $ConnectionNameOnprem `
-ResourceGroupName $RG1 `
-VirtualNetworkGateway1 $vnetOnpremgw `
-VirtualNetworkGateway2 $vnetHubgw `
-Location $Location1 `
-ConnectionType Vnet2Vnet `
-SharedKey 'AzureA1b2C3'
Überprüfen der Verbindung
Mit dem Get-AzVirtualNetworkGatewayConnection-Cmdlet (mit oder ohne -Debug) können Sie überprüfen, ob die Verbindung erfolgreich hergestellt wurde.
Verwenden Sie das folgende Cmdlet-Beispiel, und konfigurieren Sie die Werte aber so, dass sie Ihren eigenen Werten entsprechen. Wählen Sie A zum Ausführen von All aus, wenn eine entsprechende Aufforderung angezeigt wird. In dem Beispiel verweist -Name auf den Namen der Verbindung, die Sie testen möchten.
Get-AzVirtualNetworkGatewayConnection `
-Name $ConnectionNameHub `
-ResourceGroupName $RG1
Zeigen Sie die Werte an, nachdem der Cmdlet-Vorgang beendet wurde. Das folgende Beispiel zeigt den Verbindungsstatus Connected zusammen mit Eingangs- und Ausgangsbytes:
"connectionStatus": "Connected",
"ingressBytesTransferred": 33509044,
"egressBytesTransferred": 4142431
Durchführen des Peerings für die virtuellen Hub- und Spoke-Netzwerke
Verwenden Sie Add-AzVirtualNetworkPeering, um das Peering für die virtuellen Hub- und Spoke-Netzwerke auszuführen:
# Peer hub to spoke
Add-AzVirtualNetworkPeering `
-Name HubtoSpoke `
-VirtualNetwork $VNetHub `
-RemoteVirtualNetworkId $VNetSpoke.Id `
-AllowGatewayTransit
# Peer spoke to hub
Add-AzVirtualNetworkPeering `
-Name SpoketoHub `
-VirtualNetwork $VNetSpoke `
-RemoteVirtualNetworkId $VNetHub.Id `
-AllowForwardedTraffic `
-UseRemoteGateways
Erstellen der Routen
Verwenden Sie die folgenden Befehle, um diese Routen zu erstellen:
- Eine Route vom Hub-Gatewaysubnetz zum Spoke-Subnetz über die Firewall-IP-Adresse
- Eine Standardroute vom Spoke-Subnetz über die Firewall-IP-Adresse
Verwenden Sie New-AzRouteTable und Add-AzRouteConfig , um die Routentabelle und route für das Hubgateway-Subnetz zu erstellen. Verwenden Sie dann Set-AzVirtualNetworkSubnetConfig und Set-AzVirtualNetwork , um es dem Subnetz zuzuordnen:
$routeTableHubSpoke = New-AzRouteTable `
-Name 'UDR-Hub-Spoke' `
-ResourceGroupName $RG1 `
-Location $Location1
Get-AzRouteTable `
-ResourceGroupName $RG1 `
-Name UDR-Hub-Spoke `
| Add-AzRouteConfig `
-Name "ToSpoke" `
-AddressPrefix $VNetSpokePrefix `
-NextHopType "VirtualAppliance" `
-NextHopIpAddress $AzfwPrivateIP `
| Set-AzRouteTable
Set-AzVirtualNetworkSubnetConfig `
-VirtualNetwork $VNetHub `
-Name $SNnameGW `
-AddressPrefix $SNGWHubPrefix `
-RouteTable $routeTableHubSpoke `
| Set-AzVirtualNetwork
Verwenden Sie New-AzRouteTable und Add-AzRouteConfig , um die Standardroutentabelle für das Speichensubnetz zu erstellen. Der -DisableBgpRoutePropagation Parameter deaktiviert die Routenverbreitung des virtuellen Netzwerk-Gateways in dieser Routentabelle. Verwenden Sie dann Set-AzVirtualNetworkSubnetConfig und Set-AzVirtualNetwork , um es dem Subnetz zuzuordnen:
$routeTableSpokeDG = New-AzRouteTable `
-Name 'UDR-DG' `
-ResourceGroupName $RG1 `
-Location $Location1 `
-DisableBgpRoutePropagation
Get-AzRouteTable `
-ResourceGroupName $RG1 `
-Name UDR-DG `
| Add-AzRouteConfig `
-Name "ToFirewall" `
-AddressPrefix 0.0.0.0/0 `
-NextHopType "VirtualAppliance" `
-NextHopIpAddress $AzfwPrivateIP `
| Set-AzRouteTable
Set-AzVirtualNetworkSubnetConfig `
-VirtualNetwork $VNetSpoke `
-Name $SNnameSpoke `
-AddressPrefix $SNSpokePrefix `
-RouteTable $routeTableSpokeDG `
| Set-AzVirtualNetwork
Erstellen von virtuellen Computern
Erstellen Sie die VM für die Spoke-Workload und die lokale VM, und platzieren Sie sie in den entsprechenden Subnetzen.
Erstellen der virtuellen Workload-Maschine
Erstellen Sie im virtuellen Spoke-Netzwerk eine VM, die IIS (Internet Information Services, Internetinformationsdienste) ausführt, keine öffentliche IP-Adresse besitzt und eingehende Pings zulässt. Geben Sie bei Aufforderung einen Benutzernamen und ein Kennwort für die VM ein.
Verwenden Sie New-AzNetworkSecurityRuleConfig und New-AzNetworkSecurityGroup , um die eingehenden Regeln und Sicherheitsgruppen zu erstellen:
# Create inbound network security group rules for ports 3389 and 80
$nsgRuleRDP = New-AzNetworkSecurityRuleConfig `
-Name Allow-RDP `
-Protocol Tcp `
-Direction Inbound `
-Priority 200 `
-SourceAddressPrefix * `
-SourcePortRange * `
-DestinationAddressPrefix $SNSpokePrefix `
-DestinationPortRange 3389 `
-Access Allow
$nsgRuleWeb = New-AzNetworkSecurityRuleConfig `
-Name Allow-web `
-Protocol Tcp `
-Direction Inbound `
-Priority 202 `
-SourceAddressPrefix * `
-SourcePortRange * `
-DestinationAddressPrefix $SNSpokePrefix `
-DestinationPortRange 80 `
-Access Allow
# Create the network security group
$nsg = New-AzNetworkSecurityGroup `
-ResourceGroupName $RG1 `
-Location $Location1 `
-Name NSG-Spoke02 `
-SecurityRules $nsgRuleRDP,$nsgRuleWeb
Verwenden Sie New-AzNetworkInterface , um die NIC zu erstellen und an die Sicherheitsgruppe anzufügen:
$NIC = New-AzNetworkInterface `
-Name spoke-01 `
-ResourceGroupName $RG1 `
-Location $Location1 `
-SubnetId $VnetSpoke.Subnets[0].Id `
-NetworkSecurityGroupId $nsg.Id
Verwenden Sie New-AzVMConfig, Set-AzVMOperatingSystem und Add-AzVMNetworkInterface , um die Konfiguration des virtuellen Computers zu definieren, und verwenden Sie dann New-AzVM , um den virtuellen Computer zu erstellen:
$VirtualMachine = New-AzVMConfig `
-VMName VM-Spoke-01 `
-VMSize "Standard_DS2"
$VirtualMachine = Set-AzVMOperatingSystem `
-VM $VirtualMachine `
-Windows `
-ComputerName Spoke-01 `
-ProvisionVMAgent `
-EnableAutoUpdate
$VirtualMachine = Add-AzVMNetworkInterface `
-VM $VirtualMachine `
-Id $NIC.Id
$VirtualMachine = Set-AzVMSourceImage `
-VM $VirtualMachine `
-PublisherName 'MicrosoftWindowsServer' `
-Offer 'WindowsServer' `
-Skus '2016-Datacenter' `
-Version latest
New-AzVM `
-ResourceGroupName $RG1 `
-Location $Location1 `
-VM $VirtualMachine `
-Verbose
Verwenden Sie Set-AzVMExtension , um IIS zu installieren und eine Windows-Firewallregel zu erstellen, um Pings zu ermöglichen:
# Install IIS
Set-AzVMExtension `
-ResourceGroupName $RG1 `
-ExtensionName IIS `
-VMName VM-Spoke-01 `
-Publisher Microsoft.Compute `
-ExtensionType CustomScriptExtension `
-TypeHandlerVersion 1.4 `
-SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server"}' `
-Location $Location1
# Create a Windows Firewall rule to allow pings
Set-AzVMExtension `
-ResourceGroupName $RG1 `
-ExtensionName AllowPing `
-VMName VM-Spoke-01 `
-Publisher Microsoft.Compute `
-ExtensionType CustomScriptExtension `
-TypeHandlerVersion 1.4 `
-SettingString '{"commandToExecute":"powershell New-NetFirewallRule -DisplayName \"Allow ICMPv4-In\" -Protocol ICMPv4"}' `
-Location $Location1
Erstellen der lokalen VM
Verwenden Sie New-AzVm , um einen einfachen virtuellen Computer zu erstellen, mit dem Sie über Remotezugriff auf die öffentliche IP-Adresse eine Verbindung herstellen können. Von dort aus können Sie dann über die Firewall eine Verbindung mit dem lokalen Server herstellen. Wenn Sie dazu aufgefordert werden, geben Sie einen Benutzernamen und ein Kennwort für den virtuellen Computer ein.
New-AzVm `
-ResourceGroupName $RG1 `
-Name "VM-Onprem" `
-Location $Location1 `
-VirtualNetworkName $VNetnameOnprem `
-SubnetName $SNNameOnprem `
-OpenPorts 3389 `
-Size "Standard_DS2"
Hinweis
Azure stellt eine ausgehende Standardzugriffs-IP für VMs bereit, denen keine öffentliche IP-Adresse zugewiesen ist oder die sich im Backendpool eines internen grundlegenden Azure-Lastenausgleichs befinden. Der Mechanismus für Standard-IP-Adressen für den ausgehenden Zugriff stellt eine ausgehende IP-Adresse bereit, die nicht konfigurierbar ist.
Die Standard-IP-Adresse für ausgehenden Zugriff ist deaktiviert, wenn eines der folgenden Ereignisse auftritt:
- Dem virtuellen Computer wird eine öffentliche IP-Adresse zugewiesen.
- Die VM wird im Backend-Pool eines Standard-Lastenausgleichs platziert (mit oder ohne Ausgangsregeln).
- Dem Subnetz der VM wird eine Azure NAT Gateway-Ressource zugewiesen.
VMs, die Sie mithilfe von VM-Skalierungsgruppen im Orchestrierungsmodus „Flexibel“ erstellen, haben keinen ausgehenden Standardzugriff.
Weitere Informationen zu ausgehenden Verbindungen in Azure finden Sie unter Standardzugriff in ausgehender Richtung in Azure und Verwenden von SNAT (Source Network Address Translation) für ausgehende Verbindungen.
Testen Sie die Firewall
Rufen Sie die private IP-Adresse für den virtuellen Computer vm-spoke-01 ab, und notieren Sie sie:
$NIC.IpConfigurations.privateipaddressStellen Sie über das Azure-Portal eine Verbindung mit dem virtuellen Computer VM-Onprem her.
Öffnen Sie eine Windows PowerShell-Eingabeaufforderung auf VM-Onprem, und senden Sie einen Ping an die private IP-Adresse für VM-spoke-01. Sie erhalten eine Antwort.
Öffnen Sie auf VM-Onprem einen Webbrowser, und navigieren Sie zu
http://<VM-spoke-01 private IP>. Die IIS-Standardseite sollte geöffnet werden.Öffnen Sie auf VM-Onprem eine Remotezugriffsverbindung für VM-spoke-01 unter der privaten IP-Adresse. Die Verbindungsherstellung sollte erfolgreich sein, und Sie sollten sich mit Ihrem gewähltem Benutzernamen und dem Kennwort anmelden können.
Nachdem Sie überprüft haben, ob die Firewallregeln funktionieren, haben Sie folgende Möglichkeiten:
- Sie können einen Ping an den Server im virtuellen Spoke-Netzwerk senden.
- Navigieren Sie zum Webserver im virtuellen Spoke-Netzwerk.
- Stellen Sie mittels RDP eine Verbindung mit dem Server im virtuellen Spoke-Netzwerk her.
Führen Sie als Nächstes das folgende Skript aus, um die Aktion für die Sammlung von Firewallnetzwerkregeln in Deny zu ändern:
$rcNet = $Azfw.GetNetworkRuleCollectionByName("RCNet01")
$rcNet.action.type = "Deny"
Set-AzFirewall -AzureFirewall $Azfw
Schließen Sie alle vorhandenen Remotezugriffsverbindungen. Führen Sie die Tests erneut aus, um die geänderten Regeln zu testen. Dieses Mal sollten sie alle fehlschlagen.
Bereinigen von Ressourcen
Sie können Ihre Firewallressourcen für das nächste Tutorial beibehalten. Löschen Sie die Ressourcengruppe FW-Hybrid-Test, wenn Sie sie nicht mehr benötigen. Dadurch werden alle firewallbezogenen Ressourcen gelöscht.