Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il controllo dell'accesso alla rete in uscita è un componente importante di un piano di sicurezza della rete generale. Ad esempio, è possibile limitare l'accesso ai siti Web. In alternativa, potrebbe essere utile limitare gli indirizzi IP e le porte in uscita a cui è possibile accedere.
È possibile controllare l'accesso alla rete in uscita da una subnet di Azure usando Firewall di Azure e Criteri firewall. Usando Firewall di Azure, è possibile configurare:
- Regole di applicazione che definiscono i nomi di dominio completi (FQDN) accessibili da una subnet.
- Regole di rete che definiscono l'indirizzo di origine, il protocollo, la porta di destinazione e l'indirizzo di destinazione.
Il traffico di rete è sottoposto alle regole del firewall configurate quando si instrada il traffico di rete al firewall come gateway predefinito della subnet.
In questo articolo viene creata una singola rete virtuale semplificata con tre subnet per semplificare la distribuzione. Per le distribuzioni di produzione, usare un modello hub-spoke, in cui il firewall si trova nella propria rete virtuale. I server del carico di lavoro si trovano in reti virtuali connesse tramite peering nella stessa area, con una o più subnet.
- AzureFirewallSubnet: in questa subnet si trova il firewall.
- Workload-SN: in questa subnet si trova il server del carico di lavoro. Il traffico di rete di questa subnet passa attraverso il firewall.
- AzureBastionSubnet : la subnet usata per Azure Bastion, usata per connettersi al server del carico di lavoro.
Per altre informazioni su Azure Bastion, vedere Che cos'è Azure Bastion?
Importante
La tariffa oraria inizia dal momento in cui viene distribuito Bastion, a prescindere dall'utilizzo dei dati in uscita. Per altre informazioni, vedere Prezzi e SKU. Se si distribuisce Bastion nel corso di un'esercitazione o di un test, è consigliabile eliminare questa risorsa dopo averla usata.
In questo articolo vengono illustrate le operazioni seguenti:
- Configurare un ambiente di rete di test
- Distribuire un firewall
- Creare una route predefinita
- Creare una politica firewall
- Configurare una regola dell'applicazione per consentire l'accesso a www.google.com
- Configurare una regola di rete per consentire l'accesso a server DNS esterni
- Testare il firewall
Se si preferisce, è possibile completare questa procedura usando il portale di Azure.
Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Prerequisiti
Questa procedura richiede l'esecuzione locale di PowerShell. È necessario aver installato il modulo di Azure PowerShell. Eseguire Get-Module -ListAvailable Az per trovare la versione. Se è necessario eseguire l'aggiornamento, vedere Installare e configurare Azure PowerShell. Dopo avere verificato la versione di PowerShell, eseguire Connect-AzAccount per creare una connessione ad Azure.
Configurare la rete
In primo luogo, creare un gruppo di risorse per contenere le risorse necessarie per distribuire il firewall. Creare quindi una rete virtuale, subnet e server di test.
Creare un gruppo di risorse
Usare New-AzResourceGroup per creare un gruppo di risorse per la distribuzione:
New-AzResourceGroup -Name Test-FW-RG -Location "East US"
Creare una rete virtuale e un host di Azure Bastion
Questa rete virtuale ha tre subnet. Usare New-AzVirtualNetworkSubnetConfig per definirli:
Nota
La dimensione della subnet AzureFirewallSubnet è /26. Per altre informazioni sulle dimensioni delle subnet, vedere le domande frequenti su Firewall di Azure.
$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
Usare New-AzVirtualNetwork per creare la rete virtuale:
$testVnet = New-AzVirtualNetwork `
-Name Test-FW-VN `
-ResourceGroupName Test-FW-RG `
-Location "East US" `
-AddressPrefix 10.0.0.0/16 `
-Subnet $Bastionsub, $FWsub, $Worksub
Creare un indirizzo IP pubblico per l'host Azure Bastion
Usare New-AzPublicIpAddress per creare un indirizzo IP pubblico statico per l'host Bastion:
$publicip = New-AzPublicIpAddress `
-ResourceGroupName Test-FW-RG `
-Location "East US" `
-Name Bastion-pip `
-AllocationMethod Static `
-Sku Standard
Creare l'host Azure Bastion
Usare New-AzBastion per creare l'host Bastion:
New-AzBastion `
-ResourceGroupName Test-FW-RG `
-Name Bastion-01 `
-PublicIpAddress $publicip `
-VirtualNetwork $testVnet
Creare una macchina virtuale
Usare New-AzVM per creare la macchina virtuale del carico di lavoro. Quando richiesto, immettere un nome utente e una password:
# 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
Creare una politica firewall
Usare New-AzFirewallPolicy per creare i criteri del firewall:
$fwpol = New-AzFirewallPolicy `
-Name fw-pol `
-ResourceGroupName Test-FW-RG `
-Location "East US"
Configurare una regola dell'applicazione dei criteri firewall
Usare New-AzFirewallPolicyApplicationRule e New-AzFirewallPolicyFilterRuleCollection per creare una regola dell'applicazione che concede l'accesso in uscita a 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
Azure Firewall include una raccolta di regole predefinite per i FQDN (nomi di dominio completi) dell'infrastruttura consentiti per impostazione predefinita. Questi FQDN sono specifici della piattaforma e non possono essere usati per altri scopi. Per altre informazioni, vedere Infrastructure FQDNs (FQDN dell'infrastruttura).
Configurare una regola di rete dei criteri firewall
Usare New-AzFirewallPolicyNetworkRule e New-AzFirewallPolicyFilterRuleCollection per creare una regola di rete che concede l'accesso in uscita a due indirizzi IP alla porta 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
Distribuire il firewall
Usare New-AzPublicIpAddress e New-AzFirewall per distribuire il firewall nella rete virtuale:
# 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
Annotare l'indirizzo IP privato. Sarà necessario più avanti per la creazione della route predefinita.
Creare una route predefinita
Usare New-AzRouteTable e Add-AzRouteConfig per creare una tabella di route con una route predefinita che punta al firewall, quindi associarla alla subnet del carico di lavoro:
$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
Modificare l'indirizzo DNS primario e secondario per l'interfaccia di rete Srv-Work
A scopo di test in questa procedura, configurare gli indirizzi DNS primari e secondari del server. Questa configurazione non è un requisito generale di Firewall di Azure.
$NIC01.DnsSettings.DnsServers.Add("209.244.0.3")
$NIC01.DnsSettings.DnsServers.Add("209.244.0.4")
$NIC01 | Set-AzNetworkInterface
Testare il firewall
A questo punto testare il firewall per verificare che funzioni come previsto.
Connettersi alla macchina virtuale Srv-Work usando Bastion e accedere.
In Srv-Work aprire una finestra di PowerShell ed eseguire i comandi seguenti:
nslookup www.google.com nslookup www.microsoft.comEntrambi i comandi restituiscono risposte, mostrando che le query DNS vengono eseguite tramite il firewall.
Eseguire i comandi seguenti:
Invoke-WebRequest -Uri https://www.google.com Invoke-WebRequest -Uri https://www.microsoft.comLe
www.google.comrichieste hanno esito positivo e lewww.microsoft.comrichieste hanno esito negativo. Questo risultato dimostra che le regole del firewall funzionano come previsto.
Ora è stato verificato che le regole dei criteri del firewall funzionano:
- È possibile risolvere i nomi DNS usando il server DNS esterno configurato.
- È possibile passare al nome di dominio completo consentito ma non agli altri.
Pulire le risorse
È possibile mantenere le risorse del firewall per ulteriori test. Se non sono più necessari, eliminare il gruppo di risorse Test-FW-RG per eliminare tutte le risorse correlate al firewall:
Remove-AzResourceGroup -Name Test-FW-RG