Sdílet prostřednictvím


Nasazení a konfigurace služby Azure Firewall pomocí Azure CLI

Ří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 můžete řídit odchozí síťový přístup z podsítě Azure, je použít Azure 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ě. Plně kvalifikovaný název domény může také obsahovat instance SQL.
  • 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 model hub-and-spoke. Brána firewall je 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 – Azure Bastion je v této podsíti a poskytuje zabezpečený přístup k serveru úloh.

Diagram síťové infrastruktury

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
  • Konfigurace pravidla aplikace pro povolení přístupu k www.microsoft.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 nebo Azure PowerShellu.

Pokud nemáte účet Azure, vytvořte si bezplatný účet před tím, než začnete.

Požadavky

  • Tento článek vyžaduje verzi 2.55.0 nebo novější azure CLI. Pokud používáte Azure Cloud Shell, je už nainstalovaná nejnovější verze.

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í.

az group create --name Test-FW-RG --location eastus

Vytvoření virtuální sítě

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.

az network vnet create \
  --name Test-FW-VN \
  --resource-group Test-FW-RG \
  --location eastus \
  --address-prefix 10.0.0.0/16 \
  --subnet-name AzureFirewallSubnet \
  --subnet-prefix 10.0.1.0/26
az network vnet subnet create \
  --name Workload-SN \
  --resource-group Test-FW-RG \
  --vnet-name Test-FW-VN   \
  --address-prefix 10.0.2.0/24
az network vnet subnet create \
  --name AzureBastionSubnet \
  --resource-group Test-FW-RG \
  --vnet-name Test-FW-VN   \
  --address-prefix 10.0.3.0/26

Vytvoření virtuálního počítače

Vytvořte síťovou kartu pro Srv-Work s konkrétními IP adresami serveru DNS a bez veřejné IP adresy, se kterou chcete testovat.

az network nic create \
    --resource-group Test-FW-RG \
    --name Srv-Work-NIC \
   --vnet-name Test-FW-VN \
   --subnet Workload-SN \
   --dns-servers <replace with External DNS ip #1> <replace with External DNS ip #2>

Teď vytvořte virtuální počítač úlohy. Následující příkaz vytvoří virtuální počítač s Ubuntu Serverem 22.04 LTS s ověřováním pomocí klíče SSH a nainstaluje Nginx. Po zobrazení výzvy uložte vygenerovaný privátní klíč do .pem souboru pro použití při připojování přes Azure Bastion.

az vm create \
    --resource-group Test-FW-RG \
    --name Srv-Work \
    --location eastus \
    --image Ubuntu2204 \
    --nics Srv-Work-NIC \
    --admin-username azureuser \
    --generate-ssh-keys \
    --custom-data cloud-init.txt

Vytvořte cloud-init.txt soubor s následujícím obsahem, který nainstaluje Nginx:

#cloud-config
package_upgrade: true
packages:
  - nginx
runcmd:
  - echo '<h1>'$(hostname)'</h1>' | sudo tee /var/www/html/index.html

Poznámka:

Azure poskytuje výchozí odchozí IP adresu pro virtuální počítače, které nemají přiřazenou veřejnou IP adresu nebo jsou v back-endovém fondu interního základního nástroje pro vyrovnávání zatížení Azure. Výchozí mechanismus odchozích IP adres poskytuje odchozí IP adresu, která není konfigurovatelná.

Výchozí ip adresa odchozího přístupu je zakázaná, když dojde k jedné z následujících událostí:

  • Virtuálnímu počítači se přiřadí veřejná IP adresa.
  • Virtuální počítač se umístí do zázemního fondu standardního vyrovnávače zatížení s odchozími pravidly nebo bez nich.
  • Prostředek Azure NAT Gateway je přiřazen k podsíti virtuálního počítače.

Virtuální počítače, které vytvoříte pomocí škálovacích sad virtuálních počítačů v flexibilním režimu orchestrace, nemají výchozí odchozí přístup.

Další informace o odchozích připojeních v Azure najdete v tématu Výchozí odchozí přístup v Azure a použití překladu zdrojových síťových adres (SNAT) pro odchozí připojení.

Nasazení brány firewall

Teď nasaďte bránu firewall do virtuální sítě.

az network firewall create \
    --name Test-FW01 \
    --resource-group Test-FW-RG \
    --location eastus
az network public-ip create \
    --name fw-pip \
    --resource-group Test-FW-RG \
    --location eastus \
    --allocation-method static \
    --sku standard
az network firewall ip-config create \
    --firewall-name Test-FW01 \
    --name FW-config \
    --public-ip-address fw-pip \
    --resource-group Test-FW-RG \
    --vnet-name Test-FW-VN
az network firewall update \
    --name Test-FW01 \
    --resource-group Test-FW-RG 
az network public-ip show \
    --name fw-pip \
    --resource-group Test-FW-RG
fwprivaddr="$(az network firewall ip-config list --resource-group Test-FW-RG --firewall-name Test-FW01 --query "[?name=='FW-config'].privateIpAddress" --output tsv)"

Poznamenejte si privátní IP adresu. Budete ji potřebovat později při vytváření výchozí trasy.

Nasazení služby Azure Bastion

Nasaďte Azure Bastion pro bezpečné připojení k virtuálnímu počítači Srv-Work bez nutnosti veřejných IP adres nebo jump serveru.

az network public-ip create \
    --resource-group Test-FW-RG \
    --name bastion-pip \
    --sku Standard \
    --location eastus
az network bastion create \
    --name Test-Bastion \
    --public-ip-address bastion-pip \
    --resource-group Test-FW-RG \
    --vnet-name Test-FW-VN \
    --location eastus \
    --sku Basic

Poznámka:

Dokončení nasazení služby Azure Bastion může trvat přibližně 10 minut.

Vytvořit výchozí trasu

Vytvoření směrovací tabulky se zakázaným šířením tras protokolu BGP

az network route-table create \
    --name Firewall-rt-table \
    --resource-group Test-FW-RG \
    --location eastus \
    --disable-bgp-route-propagation true

Vytvořte trasu.

az network route-table route create \
  --resource-group Test-FW-RG \
  --name DG-Route \
  --route-table-name Firewall-rt-table \
  --address-prefix 0.0.0.0/0 \
  --next-hop-type VirtualAppliance \
  --next-hop-ip-address $fwprivaddr

Přidružení směrovací tabulky k podsíti

az network vnet subnet update \
    --name Workload-SN \
    --resource-group Test-FW-RG \
    --vnet-name Test-FW-VN \
    --address-prefixes 10.0.2.0/24 \
    --route-table Firewall-rt-table

Konfigurace pravidla aplikace

Pravidlo aplikace umožňuje odchozí přístup k www.microsoft.com.

az network firewall application-rule create \
   --collection-name App-Coll01 \
   --firewall-name Test-FW01 \
   --name Allow-Microsoft \
   --protocols Http=80 Https=443 \
   --resource-group Test-FW-RG \
   --target-fqdns www.microsoft.com \
   --source-addresses 10.0.2.0/24 \
   --priority 200 \
   --action Allow

Brána Azure Firewall obsahuje vestavěnou kolekci pravidel pro FQDN infrastruktur, 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ě

Pravidlo sítě umožňuje odchozí přístup ke dvěma veřejným IP adresám DNS podle vašeho uvážení na portu 53 (DNS).

az network firewall network-rule create \
   --collection-name Net-Coll01 \
   --destination-addresses <replace with DNS ip #1> <replace with DNS ip #2> \
   --destination-ports 53 \
   --firewall-name Test-FW01 \
   --name Allow-DNS \
   --protocols UDP \
   --resource-group Test-FW-RG \
   --priority 200 \
   --source-addresses 10.0.2.0/24 \
   --action Allow

Testovat bránu firewall

Teď otestujte bránu firewall a ověřte, že funguje podle očekávání.

  1. Poznamenejte si privátní IP adresu virtuálního počítače Srv-Work :

    az vm list-ip-addresses \
    --resource-group Test-FW-RG \
    --name Srv-Work
    
  2. V portálu Azure přejděte na virtuální počítač Srv-Work a vyberte Připojit>Připojit přes Bastion.

  3. Zadejte uživatelské jméno azureuser a nahrajte soubor privátního klíče .pem , který se vygeneroval při vytváření virtuálního počítače. Vyberte Připojit pro otevření relace SSH.

  4. V relaci SSH spusťte následující příkazy pro otestování resoluce DNS:

    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.

  5. Spuštěním následujících příkazů otestujte webový přístup:

    curl https://www.microsoft.com
    curl https://www.google.com
    

    Požadavek www.microsoft.com by měl být úspěšný a vrátit obsah HTML, zatímco www.google.com požadavek by měl selhat nebo vypršet časový limit. To ukazuje, že vaše pravidla brány firewall fungují podle očekávání.

Teď jste ověřili, že pravidla 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 zachovat pro další kurz 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:

az group delete \
  --name Test-FW-RG

Další kroky