Bagikan melalui


Menyebarkan dan mengonfigurasi Azure Firewall dengan 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.

Anda dapat mengontrol akses jaringan keluar dari subnet Azure dengan menggunakan Azure Firewall. Dengan menggunakan 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 dikenakan aturan firewall yang dikonfigurasi saat Anda merutekan lalu lintas jaringan Anda ke firewall sebagai gerbang default untuk subnet.

Dalam artikel ini, Anda membuat jaringan virtual tunggal yang disederhanakan dengan tiga subnet untuk penyebaran yang mudah. Untuk penyebaran produksi, gunakan model hub dan spoke, di mana firewall berada di jaringan virtualnya sendiri. Server beban kerja berada di jaringan virtual yang di-peering di wilayah yang sama dengan satu atau beberapa subnet.

  • 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, tanpa memperhitungkan 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.

Diagram yang memperlihatkan infrastruktur jaringan firewall.

Dalam artikel ini, Anda akan mempelajari cara:

  • Menyiapkan lingkungan jaringan uji
  • Menyebarkan firewall
  • Buat rute default
  • Konfigurasikan 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 dengan 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 jaringan virtual, subnet, dan server pengujian.

Buat grup sumber daya

Gunakan New-AzResourceGroup untuk membuat grup 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. Gunakan New-AzVirtualNetworkSubnetConfig untuk menentukannya:

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

Gunakan New-AzVirtualNetwork untuk membuat 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

Gunakan New-AzPublicIpAddress untuk membuat alamat IP publik statis untuk host Bastion:

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

Buat host Azure Bastion

Gunakan New-AzBastion untuk membuat host Bastion:

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

Membuat mesin virtual

Gunakan New-AzVM untuk membuat komputer virtual beban kerja. Saat diminta, ketik nama pengguna dan kata sandi:

# 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.
  • Sebuah resource Azure NAT Gateway ditugaskan ke subnet VM.

VM yang Anda buat dengan menggunakan set skala mesin virtual dalam mode orkestrasi yang 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.

Mengimplementasikan firewall

Gunakan New-AzPublicIpAddress dan New-AzFirewall untuk menyebarkan 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 menggunakannya nanti saat membuat rute default.

Buat rute default

Gunakan New-AzRouteTable dan Add-AzRouteConfig untuk membuat tabel rute dengan rute default yang menunjuk ke firewall, lalu kaitkan dengan subnet beban kerja:

$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

Gunakan New-AzFirewallApplicationRule dan New-AzFirewallApplicationRuleCollection untuk membuat aturan aplikasi yang memberikan 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

Gunakan New-AzFirewallNetworkRule dan New-AzFirewallNetworkRuleCollection untuk membuat aturan jaringan yang memberikan 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. Konfigurasi ini bukan persyaratan Azure Firewall umum.

$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 dengan menggunakan Bastion, dan masuk.

    Cuplikan layar memperlihatkan koneksi ke komputer virtual Srv-Work menggunakan Azure Bastion.

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

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

    Kedua perintah mengembalikan jawaban, memperlihatkan bahwa kueri DNS Anda melewati firewall.

  3. Jalankan perintah berikut:

    Invoke-WebRequest -Uri https://www.google.com
    
    Invoke-WebRequest -Uri https://www.microsoft.com
    

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

Sekarang Anda memverifikasi bahwa aturan firewall berfungsi:

  • Anda dapat mengatasi nama DNS dengan menggunakan server DNS eksternal yang dikonfigurasi.
  • Anda dapat menjelajahi satu-satunya FQDN yang diizinkan, tetapi tidak ke yang lainnya.

Membersihkan sumber daya

Anda dapat menyimpan sumber daya firewall Anda untuk tutorial berikutnya. Jika Anda tidak lagi membutuhkannya, hapus grup sumber daya Test-FW-RG untuk menghapus semua sumber daya terkait firewall:

Remove-AzResourceGroup -Name Test-FW-RG

Langkah berikutnya