Nasazení a konfigurace zásad služby Azure Firewall pomocí Azure PowerShellu
Řízení odchozího síťového přístupu je důležitou součástí celkového plánu zabezpečení sítě. Můžete například chtít omezit přístup k webům. Nebo můžete chtít omezit odchozí IP adresy a porty, ke kterým je možné přistupovat.
Jedním ze způsobů, jak řídit odchozí síťový přístup z podsítě Azure, je služba Azure Firewall a zásady brány firewall. Azure Firewall umožňuje nakonfigurovat:
- Pravidla aplikace, která definují plně kvalifikované názvy domén, ke kterým je možné získat přístup z podsítě.
- Pravidla sítě, která definují zdrojovou adresu, protokol, cílový port a cílovou adresu.
Síťový provoz podléhá nakonfigurovaným pravidlům brány firewall, když ho směrujete na bránu firewall jako na výchozí bránu podsítě.
Pro účely tohoto článku vytvoříte zjednodušenou jednu virtuální síť se třemi podsítěmi pro snadné nasazení. Pro produkční nasazení se doporučuje hvězdicový model , kde je brána firewall ve vlastní virtuální síti. Servery úloh jsou v partnerských virtuálních sítích ve stejné oblasti s jednou nebo více podsítěmi.
- AzureFirewallSubnet – v této podsíti bude brána firewall.
- Workload-SN – v této podsíti bude server úloh. Provoz této podsítě bude procházet bránou firewall.
- AzureBastionSubnet – podsíť používaná pro Azure Bastion, která se používá pro připojení k serveru úloh.
Další informace o službě Azure Bastion najdete v tématu Co je Azure Bastion?
Důležité
Hodinová cena začíná od okamžiku nasazení Bastionu bez ohledu na využití odchozích dat. Další informace najdete v tématu Ceny a skladové položky. Pokud bastion nasazujete jako součást kurzu nebo testu, doporučujeme tento prostředek po dokončení jeho použití odstranit.
V tomto článku získáte informace o těchto tématech:
- Nastavit testovací síťové prostředí
- Nasadit bránu firewall
- Vytvořit výchozí trasu
- Vytvoření zásad brány firewall
- Konfigurace pravidla aplikace pro povolení přístupu k www.google.com
- Nakonfigurovat pravidlo sítě pro povolení přístupu k externím serverům DNS
- Testovat bránu firewall
Pokud chcete, můžete tento postup provést pomocí webu Azure Portal.
Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Požadavky
Tento postup vyžaduje místní spuštění PowerShellu. Musíte mít nainstalovaný modul Azure PowerShellu. Verzi zjistíte spuštěním příkazu Get-Module -ListAvailable Az
. Pokud potřebujete upgrade, přečtěte si téma Instalace modulu Azure PowerShell. Po ověření verze PowerShellu spusťte příkaz Connect-AzAccount
, abyste vytvořili připojení k Azure.
Nastavit síť
Nejprve vytvořte skupinu prostředků obsahující prostředky potřebné k nasazení brány firewall. Potom vytvořte virtuální síť, podsítě a testovací servery.
Vytvoření skupiny zdrojů
Skupina prostředků obsahuje všechny prostředky pro nasazení.
New-AzResourceGroup -Name Test-FW-RG -Location "East US"
Vytvoření virtuální sítě a hostitele služby Azure Bastion
Tato virtuální síť má tři podsítě:
Poznámka:
Velikost podsítě AzureFirewallSubnet je /26. Další informace o velikosti podsítě najdete v nejčastějších dotazech ke službě Azure Firewall.
$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
Teď vytvořte virtuální síť:
$testVnet = New-AzVirtualNetwork -Name Test-FW-VN -ResourceGroupName Test-FW-RG `
-Location "East US" -AddressPrefix 10.0.0.0/16 -Subnet $Bastionsub, $FWsub, $Worksub
Vytvoření veřejné IP adresy pro hostitele služby Azure Bastion
$publicip = New-AzPublicIpAddress -ResourceGroupName Test-FW-RG -Location "East US" `
-Name Bastion-pip -AllocationMethod static -Sku standard
Vytvoření hostitele Služby Azure Bastion
New-AzBastion -ResourceGroupName Test-FW-RG -Name Bastion-01 -PublicIpAddress $publicip -VirtualNetwork $testVnet
Vytvoření virtuálního počítače
Teď vytvořte virtuální počítač úlohy a umístěte ho do příslušné podsítě. Po zobrazení výzvy zadejte pro virtuální počítač uživatelské jméno a heslo.
Vytvořte virtuální počítač úlohy. Po zobrazení výzvy zadejte pro virtuální počítač uživatelské jméno a heslo.
#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
Vytvoření zásad brány firewall
$fwpol = New-AzFirewallPolicy -Name fw-pol -ResourceGroupName Test-FW-RG -Location eastus
Konfigurace pravidla aplikace zásad brány firewall
Pravidlo aplikace umožňuje odchozí přístup k 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
Brána Azure Firewall obsahuje předdefinovanou kolekci pravidel pro infrastrukturu plně kvalifikovaných názvů domén, které jsou ve výchozím nastavení povolené. Tyto plně kvalifikované názvy domén jsou specifické pro tuto platformu a pro jiné účely je nelze použít. Další informace najdete v tématu Plně kvalifikované názvy domén infrastruktury.
Konfigurace pravidla sítě zásad brány firewall
Pravidlo sítě umožňuje odchozí přístup ke dvěma IP adresům na portu 53 (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
Nasazení brány firewall
Teď nasaďte bránu firewall do virtuální sítě.
# 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
Poznamenejte si privátní IP adresu. Budete ji potřebovat později při vytváření výchozí trasy.
Vytvořit výchozí trasu
Vytvoření tabulky se zakázaným šířením tras protokolu BGP
$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
Změna primární a sekundární adresy DNS u síťového rozhraní Srv-Work
Pro účely testování v tomto postupu nakonfigurujte primární a sekundární adresy DNS serveru. Nejedná se o obecný požadavek služby Azure Firewall.
$NIC01.DnsSettings.DnsServers.Add("209.244.0.3")
$NIC01.DnsSettings.DnsServers.Add("209.244.0.4")
$NIC01 | Set-AzNetworkInterface
Testovat bránu firewall
Teď otestujte bránu firewall a ověřte, že funguje podle očekávání.
Připojte se k virtuálnímu počítači Srv-Work pomocí Bastionu a přihlaste se.
V aplikaci Srv-Work otevřete okno PowerShellu a spusťte následující příkazy:
nslookup www.google.com nslookup www.microsoft.com
Oba příkazy by měly vrátit odpovědi, které ukazují, že vaše dotazy DNS procházejí bránou firewall.
Spusťte následující příkazy:
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
Požadavky
www.google.com
by měly být úspěšné awww.microsoft.com
požadavky by měly selhat. To ukazuje, že vaše pravidla brány firewall fungují podle očekávání.
Teď jste ověřili, že pravidla zásad brány firewall fungují:
- Názvy DNS můžete přeložit pomocí nakonfigurovaného externího serveru DNS.
- Můžete přejít na jediný povolený plně kvalifikovaný název domény, ale jinam už ne.
Vyčištění prostředků
Prostředky brány firewall můžete ponechat pro další testování nebo pokud už je nepotřebujete, odstraňte skupinu prostředků Test-FW-RG a odstraňte všechny prostředky související s bránou firewall:
Remove-AzResourceGroup -Name Test-FW-RG