Menyebarkan dan mengonfigurasi Azure Firewall menggunakan Azure CLI

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. FQDN juga dapat mencakup instans SQL.
  • 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, model hub dan spoke disarankan. Firewall berada di VNet 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.
  • Jump-SN - Server "jump" ada di subnet ini. Server jump memiliki alamat IP publik yang bisa Anda sambungkan menggunakan Desktop Jarak Jauh. Dari sana, Anda kemudian dapat menyambungkan ke (menggunakan Desktop Jarak Jauh lain) server beban kerja.

Diagram 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

Anda juga dapat menyelesaikan prosedur ini menggunakan portal Microsoft Azure atau Azure PowerShell.

Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.

Prasyarat

  • Artikel ini memerlukan Azure CLI versi 2.55.0 atau yang lebih baru. Jika menggunakan Azure Cloud Shell, versi terbaru sudah terinstal.

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.

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

Membuat VNet

Jaringan virtual ini memiliki tiga subnet.

Catatan

Ukuran subnet AzureFirewallSubnet adalah /26. Untuk informasi lebih tentang ukuran subnet, lihat Tanya Jawab Umum 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 Jump-SN \
  --resource-group Test-FW-RG \
  --vnet-name Test-FW-VN   \
  --address-prefix 10.0.3.0/24

Membuat komputer virtual

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

Buat komputer virtual Srv-Jump.

az vm create \
    --resource-group Test-FW-RG \
    --name Srv-Jump \
    --location eastus \
    --image win2016datacenter \
    --vnet-name Test-FW-VN \
    --subnet Jump-SN \
    --admin-username azureadmin
az vm open-port --port 3389 --resource-group Test-FW-RG --name Srv-Jump

Buat NIC untuk Srv-Work dengan alamat IP server DNS tertentu dan tidak ada alamat IP publik untuk diuji.

az network nic create \
    -g Test-FW-RG \
    -n Srv-Work-NIC \
   --vnet-name Test-FW-VN \
   --subnet Workload-SN \
   --public-ip-address "" \
   --dns-servers 209.244.0.3 209.244.0.4

Membuat komputer virtual beban kerja. Ketika diminta, ketik kata sandi untuk komputer virtual.

az vm create \
    --resource-group Test-FW-RG \
    --name Srv-Work \
    --location eastus \
    --image win2016datacenter \
    --nics Srv-Work-NIC \
    --admin-username azureadmin

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.

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 -g Test-FW-RG -f Test-FW01 --query "[?name=='FW-config'].privateIpAddress" --output tsv)"

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

Buat rute default

Membuat tabel rute, dengan penyebaran rute BGP dinonaktifkan

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

Buat rute.

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

Kaitkan tabel rute ke subnet

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

Mengonfigurasi aturan aplikasi

Aturan aplikasi memungkinkan akses keluar ke www.google.com.

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

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

az network firewall network-rule create \
   --collection-name Net-Coll01 \
   --destination-addresses 209.244.0.3 209.244.0.4 \
   --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

Menguji firewall

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

  1. Perhatikan alamat IP pribadi untuk komputer virtual Srv-Work:

    az vm list-ip-addresses \
    -g Test-FW-RG \
    -n Srv-Work
    
  2. Sambungkan desktop jarak jauh ke komputer virtual Jump-Srv, dan masuk. Dari sana, buka koneksi desktop jarak jauh ke alamat IP privat Srv-Work dan masuk.

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

  4. 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:

az group delete \
  -n Test-FW-RG

Langkah berikutnya