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.
Dalam artikel ini, Anda akan mempelajari cara:
- Menyiapkan lingkungan jaringan uji
- Menyebarkan firewall
- Buat rute default
- Mengonfigurasi aturan aplikasi untuk mengizinkan akses ke www.microsoft.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
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai Cepat untuk Bash di Azure Cloud Shell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Masuk dengan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan peningkatan az.
- 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 <replace with External DNS ip #1> <replace with External DNS ip #2>
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.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
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 DNS publik yang Anda pilih di port 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
Menguji firewall
Sekarang, uji firewall untuk mengonfirmasi bahwa firewall bekerja seperti yang diharapkan.
Perhatikan alamat IP pribadi untuk komputer virtual Srv-Work:
az vm list-ip-addresses \ -g Test-FW-RG \ -n Srv-Work
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.
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.
Jalankan perintah berikut:
Invoke-WebRequest -Uri https://www.microsoft.com Invoke-WebRequest -Uri https://www.microsoft.com Invoke-WebRequest -Uri <Replace with external website> Invoke-WebRequest -Uri <Replace with external website>
Permintaan
www.microsoft.com
harus berhasil, dan permintaan lainnyaExternal Website
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