Az Azure Firewall üzembe helyezése és konfigurálása az Azure PowerShell használatával

A kimenő hálózati hozzáférés ellenőrzése az általános hálózati biztonsági terv fontos részét képezi. Előfordulhat például, hogy korlátozni szeretné a webhelyekhez való hozzáférést. Vagy korlátozhatja a kimenő IP-címeket és portokat, amelyek elérhetők.

Az Azure Firewall használatával szabályozhatja a kimenő hálózati hozzáférést egy Azure-alhálózatról. Az Azure Firewall használatával konfigurálhatja a következőt:

  • Alkalmazásszabályokat, amelyek egy alhálózatról elérhető teljes tartományneveket (FQDN) határoznak meg.
  • Hálózatszabályokat, amelyek forráscímet, protokollt, valamint célportot és célcímet határoznak meg.

A hálózati forgalmat a konfigurált tűzfalszabályok irányítják, ha alapértelmezett alhálózati átjáróként irányítja a tűzfalhoz a forgalmat.

Ebben a cikkben egy egyszerűsített, három alhálózattal rendelkező virtuális hálózatot hoz létre az egyszerű üzembe helyezés érdekében. Üzembe helyezéskor használjon egy hub és küllős modellt, ahol a tűzfal a saját virtuális hálózatában van. A számítási feladatok kiszolgálói ugyanabban a régióban egy vagy több alhálózattal rendelkező társhálózatok virtuális hálózataiban találhatók.

  • AzureFirewallSubnet – ezen az alhálózaton található a tűzfal.
  • Workload-SN – ezen az alhálózaton található a számítási feladat kiszolgálója. Ennek az alhálózatnak a hálózati forgalma a tűzfalon halad át.
  • AzureBastionSubnet – az Azure Bastionhoz használt alhálózat, amely a számítási feladat kiszolgálóhoz való csatlakozásra szolgál.

További információ az Azure Bastionról: Mi az Az Azure Bastion?

Fontos

Az óránkénti díjszabás a Bastion üzembe helyezésének pillanatától kezdődik, a kimenő adathasználattól függetlenül. További információ: Díjszabás és termékváltozatok. Ha a Bastiont egy oktatóanyag vagy teszt részeként helyezi üzembe, javasoljuk, hogy a használat befejezése után törölje ezt az erőforrást.

Tűzfalhálózati infrastruktúrát bemutató ábra.

Ebben a cikkben az alábbiakkal ismerkedhet meg:

  • Tesztelési hálózati környezet beállítása
  • Tűzfal telepítése
  • Alapértelmezett útvonal létrehozása
  • Alkalmazásszabály konfigurálása a hozzáférés engedélyezéséhez www.google.com
  • Hálózatszabály konfigurálása külső DNS-kiszolgálókhoz való hozzáférés engedélyezéséhez
  • A tűzfal tesztelése

Ha szeretné, az Azure Portalon végezheti el ezt az eljárást.

Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.

Előfeltételek

Ehhez az eljáráshoz helyileg kell futtatnia a PowerShellt. Telepítve kell lennie az Azure PowerShell-modulnak. A verzió azonosításához futtassa a következőt: Get-Module -ListAvailable Az. Ha frissíteni szeretne, olvassa el az Azure PowerShell-modul telepítését ismertető cikket. A PowerShell-verzió ellenőrzése után futtassa az Connect-AzAccount parancsot az Azure-hoz való kapcsolódáshoz.

A hálózat beállítása

Először is hozzon létre egy erőforráscsoportot, amely a tűzfal üzembe helyezéséhez szükséges erőforrásokat tartalmazza. Ezután hozzon létre egy virtuális hálózatot, alhálózatokat és tesztkiszolgálókat.

Erőforráscsoport létrehozása

A New-AzResourceGroup használatával hozzon létre egy erőforráscsoportot az üzembe helyezéshez:

New-AzResourceGroup -Name Test-FW-RG -Location "East US"

Virtuális hálózat és Azure Bastion-gazdagép létrehozása

Ennek a virtuális hálózatnak három alhálózata van. A New-AzVirtualNetworkSubnetConfig használatával definiálja őket:

Feljegyzés

Az AzureFirewallSubnet alhálózat mérete /26. Az alhálózat méretével kapcsolatos további információkért tekintse meg az Azure Firewall gyakori kérdéseit.

$Bastionsub = New-AzVirtualNetworkSubnetConfig `
    -Name AzureBastionSubnet `
    -AddressPrefix 10.0.0.0/27
$FWsub = New-AzVirtualNetworkSubnetConfig `
    -Name AzureFirewallSubnet `
    -AddressPrefix 10.0.1.0/26
$Worksub = New-AzVirtualNetworkSubnetConfig `
    -Name Workload-SN `
    -AddressPrefix 10.0.2.0/24

A New-AzVirtualNetwork használatával hozza létre a virtuális hálózatot:

$testVnet = New-AzVirtualNetwork `
    -Name Test-FW-VN `
    -ResourceGroupName Test-FW-RG `
    -Location "East US" `
    -AddressPrefix 10.0.0.0/16 `
    -Subnet $Bastionsub, $FWsub, $Worksub

Nyilvános IP-cím létrehozása az Azure Bastion-gazdagéphez

A New-AzPublicIpAddress használatával statikus nyilvános IP-címet hozhat létre a Bastion-gazdagép számára:

$publicip = New-AzPublicIpAddress `
    -ResourceGroupName Test-FW-RG `
    -Location "East US" `
    -Name Bastion-pip `
    -AllocationMethod static `
    -Sku standard

Azure Bastion-gazdagép létrehozása

A Bastion-gazdagép létrehozásához használja a New-AzBastiont :

New-AzBastion `
    -ResourceGroupName Test-FW-RG `
    -Name Bastion-01 `
    -PublicIpAddress $publicip `
    -VirtualNetwork $testVnet

Virtuális gép létrehozása

A New-AzVM használatával hozza létre a számítási feladat virtuális gépét. Amikor a rendszer kéri, írja be a felhasználónevet és a jelszót:

# Create the NIC
$wsn = Get-AzVirtualNetworkSubnetConfig `
    -Name Workload-SN `
    -VirtualNetwork $testVnet
$NIC01 = New-AzNetworkInterface `
    -Name Srv-Work `
    -ResourceGroupName Test-FW-RG `
    -Location "East US" `
    -Subnet $wsn

# Define the virtual machine
$SecurePassword = ConvertTo-SecureString "<choose a password>" -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ("<choose a user name>", $SecurePassword);
$VirtualMachine = New-AzVMConfig `
    -VMName Srv-Work `
    -VMSize "Standard_DS2"
$VirtualMachine = Set-AzVMOperatingSystem `
    -VM $VirtualMachine `
    -Windows `
    -ComputerName Srv-Work `
    -ProvisionVMAgent `
    -EnableAutoUpdate `
    -Credential $Credential
$VirtualMachine = Add-AzVMNetworkInterface `
    -VM $VirtualMachine `
    -Id $NIC01.Id
$VirtualMachine = Set-AzVMSourceImage `
    -VM $VirtualMachine `
    -PublisherName 'MicrosoftWindowsServer' `
    -Offer 'WindowsServer' `
    -Skus '2019-Datacenter' `
    -Version latest

# Create the virtual machine
New-AzVM `
    -ResourceGroupName Test-FW-RG `
    -Location "East US" `
    -VM $VirtualMachine `
    -Verbose

Feljegyzés

Az Azure alapértelmezett kimenő hozzáférési IP-címet biztosít azokhoz a virtuális gépekhez, amelyek vagy nincsenek hozzárendelve nyilvános IP-címhez, vagy egy belső alapszintű Azure-terheléselosztó háttérkészletében találhatók. Az alapértelmezett kimenő hozzáférési IP-mechanizmus olyan kimenő IP-címet biztosít, amely nem konfigurálható.

Az alapértelmezett kimenő hozzáférési IP-cím le van tiltva az alábbi események egyike esetén:

  • A virtuális géphez nyilvános IP-cím van hozzárendelve.
  • A virtuális gép egy standard terheléselosztó háttérkészletébe kerül kimenő szabályokkal vagy anélkül.
  • Egy Azure NAT Gateway-erőforrás van hozzárendelve a virtuális gép alhálózatához.

A virtuálisgép-méretezési csoportok rugalmas vezénylési módban történő használatával létrehozott virtuális gépek nem rendelkeznek alapértelmezett kimenő hozzáféréssel.

Az Azure-beli kimenő kapcsolatokról további információt az Alapértelmezett kimenő hozzáférés az Azure-ban és a Kimenő kapcsolatok forráshálózati címfordításának (SNAT) használata című témakörben talál.

A tűzfal üzembe helyezése

A New-AzPublicIpAddress és a New-AzFirewall használatával telepítse a tűzfalat a virtuális hálózaton:

# Get a Public IP for the firewall
$FWpip = New-AzPublicIpAddress `
    -Name "fw-pip" `
    -ResourceGroupName Test-FW-RG `
    -Location "East US" `
    -AllocationMethod Static `
    -Sku Standard
# Create the firewall
$Azfw = New-AzFirewall `
    -Name Test-FW01 `
    -ResourceGroupName Test-FW-RG `
    -Location "East US" `
    -VirtualNetwork $testVnet `
    -PublicIpAddress $FWpip

# Save the firewall private IP address for future use

$AzfwPrivateIP = $Azfw.IpConfigurations.privateipaddress
$AzfwPrivateIP

Jegyezze fel a magánhálózati IP-címet. Ezt később használhatja az alapértelmezett útvonal létrehozásakor.

Alapértelmezett útvonal létrehozása

A New-AzRouteTable és az Add-AzRouteConfig használatával hozzon létre egy útvonaltáblát egy alapértelmezett útvonallal, amely a tűzfalra mutat, majd társítsa a számítási feladat alhálózatához:

$routeTableDG = New-AzRouteTable `
  -Name Firewall-rt-table `
  -ResourceGroupName Test-FW-RG `
  -location "East US" `
  -DisableBgpRoutePropagation

# Create a route
Add-AzRouteConfig `
  -Name "DG-Route" `
  -RouteTable $routeTableDG `
  -AddressPrefix 0.0.0.0/0 `
  -NextHopType "VirtualAppliance" `
  -NextHopIpAddress $AzfwPrivateIP
Set-AzRouteTable

# Associate the route table to the subnet

Set-AzVirtualNetworkSubnetConfig `
  -VirtualNetwork $testVnet `
  -Name Workload-SN `
  -AddressPrefix 10.0.2.0/24 `
  -RouteTable $routeTableDG | Set-AzVirtualNetwork

Alkalmazásszabály konfigurálása

A New-AzFirewallApplicationRule és a New-AzFirewallApplicationRuleCollection használatával hozzon létre egy olyan alkalmazásszabályt, amely kimenő hozzáférést biztosít a következőhöz www.google.com:

$AppRule1 = New-AzFirewallApplicationRule `
    -Name Allow-Google `
    -SourceAddress 10.0.2.0/24 `
    -Protocol http, https `
    -TargetFqdn www.google.com
$AppRuleCollection = New-AzFirewallApplicationRuleCollection `
    -Name App-Coll01 `
    -Priority 200 `
    -ActionType Allow `
    -Rule $AppRule1
$Azfw.ApplicationRuleCollections.Add($AppRuleCollection)
Set-AzFirewall -AzureFirewall $Azfw

Az Azure Firewall tartalmaz egy beépített szabálygyűjteményt az infrastruktúra alapértelmezés szerint engedélyezett teljes tartományneveiről. Ezek a teljes tartománynevek a platformra vonatkoznak, és más célokra nem használhatók. További információ: Infrastruktúra FQDN-jei.

Hálózatszabály konfigurálása

A New-AzFirewallNetworkRule és a New-AzFirewallNetworkRuleCollection használatával hozzon létre egy hálózati szabályt, amely kimenő hozzáférést biztosít két IP-címhez az 53-es porton (DNS):

$NetRule1 = New-AzFirewallNetworkRule `
    -Name "Allow-DNS" `
    -Protocol UDP `
    -SourceAddress 10.0.2.0/24 `
    -DestinationAddress 209.244.0.3,209.244.0.4 `
    -DestinationPort 53
$NetRuleCollection = New-AzFirewallNetworkRuleCollection `
    -Name RCNet01 `
    -Priority 200 `
    -Rule $NetRule1 `
    -ActionType "Allow"
$Azfw.NetworkRuleCollections.Add($NetRuleCollection)
Set-AzFirewall -AzureFirewall $Azfw

Módosítsa az Srv-Work hálózati adapter elsődleges és másodlagos DNS-címét.

Ebben az eljárásban tesztelési célokra konfigurálja a kiszolgáló elsődleges és másodlagos DNS-címét. Ez a konfiguráció nem általános Azure Firewall-követelmény.

$NIC01.DnsSettings.DnsServers.Add("209.244.0.3")
$NIC01.DnsSettings.DnsServers.Add("209.244.0.4")
$NIC01 | Set-AzNetworkInterface

A tűzfal tesztelése

Most tesztelje a tűzfalat, hogy ellenőrizze, hogy a várt módon működik-e.

  1. Csatlakozzon a Srv-Work virtuális géphez a Bastion használatával, és jelentkezzen be.

    Képernyőkép Srv-Work azure bastion-beli virtuális géppel való kapcsolatról.

  2. A Srv-Work-on nyisson meg egy PowerShell-ablakot, és futtassa a következő parancsokat:

    nslookup www.google.com
    nslookup www.microsoft.com
    

    Mindkét parancs választ ad vissza, amely azt mutatja, hogy a DNS-lekérdezések átjutnak a tűzfalon.

  3. Futtassa az alábbi parancsot:

    Invoke-WebRequest -Uri https://www.google.com
    
    Invoke-WebRequest -Uri https://www.microsoft.com
    

    A www.google.com kérések sikeresek, és a www.microsoft.com kérések sikertelenek. Ez az eredmény azt mutatja, hogy a tűzfalszabályok a várt módon működnek.

Most ellenőrizte, hogy a tűzfalszabályok működnek-e:

  • A DNS-neveket a konfigurált külső DNS-kiszolgálóval oldhatja fel.
  • Az egyetlen engedélyezett FQDN-t el tudja érni, de másokat nem.

Az erőforrások rendbetétele

A következő oktatóanyagban megtarthatja a tűzfal erőforrásait. Ha már nincs rájuk szüksége, törölje a Test-FW-RG erőforráscsoportot az összes tűzfallal kapcsolatos erőforrás törléséhez:

Remove-AzResourceGroup -Name Test-FW-RG

Következő lépések