Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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.
- AzureBastionSubnet - Azure Bastion berada di subnet ini, menyediakan akses aman ke 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 akun Azure, buat akun gratis sebelum memulai.
Prasyarat
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai menggunakan 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 Mengautentikasi ke Azure menggunakan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan dan mengelola 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 AzureBastionSubnet \
--resource-group Test-FW-RG \
--vnet-name Test-FW-VN \
--address-prefix 10.0.3.0/26
Membuat mesin virtual
Buat NIC untuk Srv-Work dengan alamat IP server DNS tertentu dan tidak ada alamat IP publik untuk diuji.
az network nic create \
--resource-group Test-FW-RG \
--name Srv-Work-NIC \
--vnet-name Test-FW-VN \
--subnet Workload-SN \
--dns-servers <replace with External DNS ip #1> <replace with External DNS ip #2>
Membuat komputer virtual beban kerja. Perintah berikut membuat VM Ubuntu Server 22.04 LTS dengan autentikasi kunci SSH dan menginstal Nginx. Saat diminta, simpan kunci privat yang dihasilkan ke dalam file .pem untuk digunakan ketika terhubung melalui Azure Bastion.
az vm create \
--resource-group Test-FW-RG \
--name Srv-Work \
--location eastus \
--image Ubuntu2204 \
--nics Srv-Work-NIC \
--admin-username azureuser \
--generate-ssh-keys \
--custom-data cloud-init.txt
Buat cloud-init.txt file dengan konten berikut untuk menginstal Nginx:
#cloud-config
package_upgrade: true
packages:
- nginx
runcmd:
- echo '<h1>'$(hostname)'</h1>' | sudo tee /var/www/html/index.html
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 --resource-group Test-FW-RG --firewall-name Test-FW01 --query "[?name=='FW-config'].privateIpAddress" --output tsv)"
Catat alamat IP privat. Anda akan menggunakannya nanti saat membuat rute default.
Sebarkan Azure Bastion
Sebarkan Azure Bastion untuk terhubung dengan aman ke komputer virtual Srv-Work tanpa memerlukan alamat IP publik atau server lompat.
az network public-ip create \
--resource-group Test-FW-RG \
--name bastion-pip \
--sku Standard \
--location eastus
az network bastion create \
--name Test-Bastion \
--public-ip-address bastion-pip \
--resource-group Test-FW-RG \
--vnet-name Test-FW-VN \
--location eastus \
--sku Basic
Catatan
Penyebaran Azure Bastion dapat memakan waktu sekitar 10 menit untuk diselesaikan.
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 \
--name Workload-SN \
--resource-group 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 \ --resource-group Test-FW-RG \ --name Srv-WorkDi portal Microsoft Azure, navigasikan ke komputer virtual Srv-Work dan pilih Sambungkan>Sambungkan melalui Bastion.
Berikan nama pengguna azureuser dan unggah file kunci
.pemprivat yang dihasilkan saat Anda membuat VM. Pilih Sambungkan untuk membuka sesi SSH.Dalam sesi SSH, jalankan perintah berikut untuk menguji resolusi DNS:
nslookup www.google.com nslookup www.microsoft.comKedua perintah harus mengembalikan jawaban, yang menunjukkan bahwa kueri DNS Anda melewati firewall.
Jalankan perintah berikut untuk menguji akses web:
curl https://www.microsoft.com curl https://www.google.comPermintaan
www.microsoft.comharus berhasil dan mengembalikan konten HTML, sementarawww.google.compermintaan harus gagal atau waktu habis. 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 \
--name Test-FW-RG