Menyebarkan dan mengonfigurasi Azure Firewall menggunakan Azure PowerShell

Mengontrol akses jaringan keluar adalah bagian penting dari rencana keamanan jaringan secara keseluruhan. Misalnya, Anda mungkin ingin membatasi akses ke situs web. Atau, Anda mungkin ingin membatasi alamat IP keluar dan port yang dapat diakses.

Salah satu cara Anda dapat mengontrol akses jaringan keluar dari subnet Azure adalah dengan Azure Firewall. Dengan Azure Firewall, Anda dapat mengonfigurasi:

  • Aturan aplikasi yang mendefinisikan nama domain yang sepenuhnya memenuhi syarat (FQDN), yang dapat diakses dari subnet.
  • Aturan jaringan yang menentukan alamat sumber, protokol, port tujuan, dan alamat tujuan.

Lalu lintas jaringan tunduk pada aturan firewall yang dikonfigurasi saat Anda merutekan lalu lintas jaringan Anda ke firewall sebagai gateway default subnet.

Untuk artikel ini, Anda membuat VNet tunggal yang disederhanakan dengan tiga subnet untuk penyebaran yang mudah. Untuk penyebaran produksi, disarankan hub dan model spoke, dengan firewall berada di VNetnya sendiri. Server beban kerja berada di VNet yang direkankan dengan satu atau beberapa subnet di wilayah yang sama.

  • AzureFirewallSubnet - firewall ada di subnet ini.
  • Workload-SN - server beban kerja ada di subnet ini. Lalu lintas jaringan subnet ini melewati firewall.
  • AzureBastionSubnet - subnet yang digunakan untuk Azure Bastion, yang digunakan untuk menyambungkan ke server beban kerja.

Untuk informasi selengkapnya tentang Azure Bastion, lihat Apa itu Azure Bastion?

Penting

Harga per jam dimulai sejak Bastion disebarkan, terlepas dari penggunaan data keluar. Untuk informasi selengkapnya, lihat Harga dan SKU. Jika Anda menyebarkan Bastion sebagai bagian dari tutorial atau pengujian, kami sarankan Anda menghapus sumber daya ini setelah Selesai menggunakannya.

Tutorial infrastruktur jaringan

Dalam artikel ini, Anda akan mempelajari cara:

  • Menyiapkan lingkungan jaringan uji
  • Menyebarkan firewall
  • Buat rute default
  • Mengonfigurasi aturan aplikasi untuk mengizinkan akses ke www.google.com
  • Mengonfigurasi aturan jaringan untuk membuka akses ke server DNS eksternal
  • Menguji firewall

Jika mau, Anda dapat menyelesaikan prosedur ini menggunakan portal Microsoft Azure.

Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

Prasyarat

Prosedur ini mengharuskan Anda menjalankan PowerShell secara lokal. Anda harus menginstal modul Azure PowerShell. Jalankan Get-Module -ListAvailable Az untuk menemukan versinya. Jika Anda perlu peningkatan, lihat Instal modul Azure PowerShell. Setelah versi PowerShell dipastikan, jalankan Connect-AzAccount untuk membuat koneksi dengan Azure.

Siapkan jaringan

Pertama, buat grup sumber daya untuk memuat sumber daya yang diperlukan untuk menyebarkan firewall. Kemudian buat VNet, subnet, dan server pengujian.

Buat grup sumber daya

Grup sumber daya berisi semua sumber daya untuk penyebaran.

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

Buat jaringan virtual dan host Azure Bastion

Jaringan virtual ini memiliki tiga subnet:

Catatan

Ukuran subnet AzureFirewallSubnet adalah /26. Untuk informasi lebih tentang ukuran subnet, lihat Tanya Jawab Umum 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

Sekarang, buat jaringan virtual:

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

Buat alamat IP publik untuk host Azure Bastion

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

Buat host Azure Bastion

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

Membuat mesin virtual

Sekarang buat komputer virtual beban kerja, dan letakkan di subnet yang sesuai. Ketika diminta, ketik nama pengguna dan kata sandi untuk komputer virtual.

Buat komputer virtual beban kerja. Ketika diminta, ketik nama pengguna dan kata sandi untuk komputer virtual.

#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

Catatan

Azure menyediakan IP akses keluar default untuk VM yang tidak diberi alamat IP publik atau berada di kumpulan backend load balancer Azure dasar internal. Mekanisme IP akses keluar default menyediakan alamat IP keluar yang tidak dapat dikonfigurasi.

IP akses keluar default dinonaktifkan saat salah satu peristiwa berikut terjadi:

  • Alamat IP publik ditetapkan ke VM.
  • VM ditempatkan di kumpulan backend load balancer standar, dengan atau tanpa aturan keluar.
  • Sumber daya Azure NAT Gateway ditetapkan ke subnet VM.

VM yang Anda buat dengan menggunakan set skala komputer virtual dalam mode orkestrasi fleksibel tidak memiliki akses keluar default.

Untuk informasi selengkapnya tentang koneksi keluar di Azure, lihat Akses keluar default di Azure dan Menggunakan Terjemahan Alamat Jaringan Sumber (SNAT) untuk koneksi keluar.

Menyebarkan firewall

Sekarang, sebarkan firewall ke jaringan virtual.

# 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

Catat alamat IP privat. Anda akan menggunakannya nanti saat membuat rute default.

Buat rute default

Buat tabel, dengan propagasi rute BGP dinonaktifkan

$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

Mengonfigurasi aturan aplikasi

Aturan aplikasi memungkinkan akses keluar ke 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

Azure Firewall menyertakan kumpulan aturan bawaan untuk FQDN infrastruktur yang diizinkan secara default. FQDN ini khusus untuk platform dan tidak dapat digunakan untuk tujuan lain. Untuk informasi selengkapnya, lihat FQDN Infrastruktur.

Konfigurasi aturan jaringan

Aturan jaringan memungkinkan akses keluar ke dua alamat IP di port 53 (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

Ubah alamat DNS utama dan sekunder untuk antarmuka jaringan Srv-Work

Untuk tujuan pengujian dalam prosedur ini, konfigurasikan alamat DNS utama dan sekunder server. Ini bukan persyaratan umum Azure Firewall.

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

Menguji firewall

Sekarang, uji firewall untuk mengonfirmasi bahwa firewall bekerja seperti yang diharapkan.

  1. Sambungkan ke komputer virtual Srv-Work menggunakan Bastion, dan masuk.

    Sambungkan menggunakan Bastion.

  2. Di Srv-Work, buka jendela PowerShell, dan jalankan perintah berikut:

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

    Kedua perintah harus mengembalikan jawaban, yang menunjukkan bahwa kueri DNS Anda melewati firewall.

  3. Jalankan perintah berikut:

    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
    

    Permintaan www.google.com harus berhasil, dan permintaan www.microsoft.com harus gagal. Ini menunjukkan bahwa aturan firewall Anda beroperasi seperti yang diharapkan.

Jadi sekarang Anda telah memverifikasi bahwa aturan firewall berfungsi:

  • Anda bisa menyelesaikan nama DNS menggunakan server DNS eksternal yang dikonfigurasi.
  • Anda dapat menjelajah ke FQDN yang diizinkan, tetapi tidak ke yang lainnya.

Membersihkan sumber daya

Anda dapat menyimpan sumber daya firewall Anda untuk tutorial berikutnya, atau jika tidak lagi diperlukan, hapus sumber daya Test-FW-RG untuk menghapus semua sumber daya terkait firewall:

Remove-AzResourceGroup -Name Test-FW-RG

Langkah berikutnya