Azure Firewall-szabályzat ü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-alhálózatok kimenő hálózati hozzáférésének szabályozására az Azure Firewall és a Tűzfalszabályzat használható. Az Azure Firewall segítségével a következőket konfigurálhatja:
- 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. Éles üzemelő példányok esetén a központi és küllős modell használata ajánlott, ahol a tűzfal a saját virtuális hálózatában található. 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ózatokban 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.
Ebben a cikkben az alábbiakkal ismerkedhet meg:
- Tesztelési hálózati környezet beállítása
- Tűzfal üzembe helyezése
- Alapértelmezett útvonal létrehozása
- Tűzfalszabályzat létrehozása
- Alkalmazásszabály konfigurálása a www.google.com való hozzáférés engedélyezéséhez
- 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
Tetszés szerint 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
Az erőforráscsoport az üzembe helyezéshez szükséges összes erőforrást tartalmazza.
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:
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
Most 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
$publicip = New-AzPublicIpAddress -ResourceGroupName Test-FW-RG -Location "East US" `
-Name Bastion-pip -AllocationMethod static -Sku standard
Azure Bastion-gazdagép létrehozása
New-AzBastion -ResourceGroupName Test-FW-RG -Name Bastion-01 -PublicIpAddress $publicip -VirtualNetwork $testVnet
Virtuális gép létrehozása
Most hozza létre a számítási feladat virtuális gépét, és helyezze el a megfelelő alhálózaton. Amikor a rendszer kéri, adjon meg egy felhasználónevet és jelszót a virtuális gép számára.
Számítási feladat virtuális gépének létrehozása. Amikor a rendszer kéri, adjon meg egy felhasználónevet és jelszót a virtuális gép számára.
#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
$VirtualMachine = New-AzVMConfig -VMName Srv-Work -VMSize "Standard_DS2"
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName Srv-Work -ProvisionVMAgent -EnableAutoUpdate
$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
Tűzfalszabályzat létrehozása
$fwpol = New-AzFirewallPolicy -Name fw-pol -ResourceGroupName Test-FW-RG -Location eastus
Tűzfalszabályzat alkalmazásszabályának konfigurálása
Az alkalmazásszabály engedélyezi a kimenő hozzáférést.www.google.com
$RCGroup = New-AzFirewallPolicyRuleCollectionGroup -Name AppRCGroup -Priority 100 -FirewallPolicyObject $fwpol
$apprule1 = New-AzFirewallPolicyApplicationRule -Name Allow-google -SourceAddress "10.0.2.0/24" -Protocol "http:80","https:443" -TargetFqdn www.google.com
$appcoll1 = New-AzFirewallPolicyFilterRuleCollection -Name App-coll01 -Priority 100 -Rule $appRule1 -ActionType "Allow"
Set-AzFirewallPolicyRuleCollectionGroup -Name $RCGroup.Name -Priority 100 -RuleCollection $appcoll1 -FirewallPolicyObject $fwPol
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 csak az adott platformra vonatkoznak, egyéb célra nem használhatók. További információ: Infrastruktúra FQDN-jei.
Tűzfalszabályzat hálózati szabályának konfigurálása
A hálózati szabály lehetővé teszi a kimenő hozzáférést két IP-címhez az 53-es porton (DNS).
$RCGroup = New-AzFirewallPolicyRuleCollectionGroup -Name NetRCGroup -Priority 200 -FirewallPolicyObject $fwpol
$netrule1 = New-AzFirewallPolicyNetworkRule -name Allow-DNS -protocol UDP -sourceaddress 10.0.2.0/24 -destinationaddress 209.244.0.3,209.244.0.4 -destinationport 53
$netcoll1 = New-AzFirewallPolicyFilterRuleCollection -Name Net-coll01 -Priority 200 -Rule $netrule1 -ActionType "Allow"
Set-AzFirewallPolicyRuleCollectionGroup -Name $RCGroup.Name -Priority 200 -RuleCollection $netcoll1 -FirewallPolicyObject $fwPol
A tűzfal üzembe helyezése
Most helyezze üzembe 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 -FirewallPolicyId $fwpol.Id
#Save the firewall private IP address for future use
$AzfwPrivateIP = $Azfw.IpConfigurations.privateipaddress
$AzfwPrivateIP
Jegyezze fel a magánhálózati IP-címet. Később, az alapértelmezett útvonal létrehozásakor szükség lesz rá.
Alapértelmezett útvonal létrehozása
Tábla létrehozása, a BGP-útvonal propagálásának letiltása
$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
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 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.
Csatlakozzon a Srv-Work virtuális géphez a Bastion használatával, és jelentkezzen be.
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 parancsnak válaszokat kell visszaadnia, jelezve, hogy a DNS-lekérdezések átjutnak a tűzfalon.
Futtassa az alábbi parancsot:
Invoke-WebRequest -Uri https://www.google.com Invoke-WebRequest -Uri https://www.google.com Invoke-WebRequest -Uri https://www.microsoft.com Invoke-WebRequest -Uri https://www.microsoft.com
A
www.google.com
kéréseknek sikeresnek kell lennie, és awww.microsoft.com
kéréseknek sikertelennek kell lennie. Ez azt mutatja, hogy a tűzfalszabályok a várt módon működnek.
Így most már ellenőrizte, hogy a tűzfalszabályzat szabályai működnek-e:
- Fel tudja oldani a DNS-neveket a konfigurált külső DNS-kiszolgálóval.
- Az egyetlen engedélyezett FQDN-t el tudja érni, de másokat nem.
Az erőforrások eltávolítása
Megtarthatja a tűzfal erőforrásait a további teszteléshez, vagy ha már nincs rá szükség, törölje a Test-FW-RG erőforráscsoportot az összes tűzfalhoz kapcsolódó erőforrás törléséhez:
Remove-AzResourceGroup -Name Test-FW-RG