Anda dapat menggunakan grup keamanan jaringan untuk memfilter lalu lintas jaringan masuk dan keluar ke dan dari sumber daya Azure di jaringan virtual Azure.
Grup keamanan jaringan berisi aturan keamanan yang memfilter lalu lintas jaringan menurut alamat IP, port, dan protokol. Saat grup keamanan jaringan dikaitkan dengan subnet, aturan keamanan diterapkan ke sumber daya yang disebarkan di subnet tersebut.
Dalam tutorial ini, Anda akan belajar cara:
- Membuat grup keamanan jaringan dan aturan keamanan
- Membuat grup keamanan aplikasi
- Membuat jaringan virtual dan mengaitkan grup keamanan jaringan ke subnet
- Menyebarkan komputer virtual dan mengaitkan antarmuka jaringan mereka ke grup keamanan aplikasi
Prasyarat
Azure Cloud Shell
Azure menghosting Azure Cloud Shell, lingkungan shell interaktif yang dapat Anda gunakan melalui browser Anda. Anda dapat menggunakan Bash atau PowerShell dengan Cloud Shell untuk bekerja dengan layanan Azure. Anda dapat menggunakan perintah Cloud Shell yang telah diinstal sebelumnya untuk menjalankan kode dalam artikel ini, tanpa harus menginstal apa pun di lingkungan lokal Anda.
Untuk memulai Azure Cloud Shell:
| Opsi |
Contoh/Tautan |
| Pilih Coba di pojok kanan atas blok kode atau perintah. Memilih Coba tidak otomatis menyalin kode atau perintah ke Cloud Shell. |
|
| Pergi ke https://shell.azure.com, atau pilih tombol Luncurkan Cloud Shell untuk membuka Cloud Shell di browser Anda. |
|
| Pilih tombol Cloud Shell pada bilah menu di kanan atas di portal Microsoft Azure. |
|
Untuk menggunakan Azure Cloud Shell:
Mulai Cloud Shell.
Pilih tombol Salin pada blok kode (atau blok perintah) untuk menyalin kode atau perintah.
Tempelkan kode atau perintah ke sesi Cloud Shell dengan memilih Ctrl+Shift+V di Windows dan Linux, atau dengan memilih Cmd+Shift+V di macOS.
Pilih Masukkan untuk menjalankan kode atau perintah.
Jika Anda memilih untuk memasang dan menggunakan PowerShell secara lokal, artikel ini memerlukan modul Azure PowerShell versi 1.0.0 atau yang lebih baru. Jalankan Get-Module -ListAvailable Az untuk menemukan versi terinstal. Jika Anda perlu meningkatkan, lihat Pasang modul Azure PowerShell. Jika Anda menjalankan PowerShell secara lokal, Anda juga perlu menjalankan Connect-AzAccount untuk membuat koneksi dengan Azure.
Jika Anda tidak memiliki akun Azure, buat akun gratis sebelum memulai.
- Artikel ini memerlukan Azure CLI versi 2.0.28 atau yang lebih baru. Jika menggunakan Azure Cloud Shell, versi terbaru sudah terpasang.
Prosedur berikut membuat jaringan virtual dengan subnet sumber daya.
Di portal, cari dan pilih Jaringan virtual.
Pada halaman Jaringan virtual, pilih + Buat.
Pada tab Dasar dari Buat jaringan virtual, masukkan atau pilih informasi berikut:
| Pengaturan |
Nilai |
|
Detail proyek |
|
| Langganan |
Pilih langganan Anda. |
| Grup sumber daya |
Pilih Buat baru.
Masukkan test-rg di Nama.
Pilih OK. |
|
Rincian contoh |
|
| Nama |
Masukkan vnet-1. |
| Wilayah |
Pilih East US 2. |
Pilih Berikutnya untuk melanjutkan ke tab Keamanan.
Pilih Berikutnya untuk melanjutkan ke tab alamat IP.
Dalam kotak ruang alamat di bawah Subnet, pilih subnet default .
Pada panel Edit subnet , masukkan atau pilih informasi berikut ini:
| Pengaturan |
Nilai |
|
Rincian Subnet |
|
| Templat Subnet |
Biarkan default sebagai Default. |
| Nama |
Masukkan subnet-1. |
| Alamat pengiriman awal |
Biarkan nilai default tetap 10.0.0.0. |
| Ukuran subnet |
Pertahankan pengaturan default /24(256 alamat). |
Pilih Simpan.
Pilih Tinjau + buat di bagian bawah layar. Setelah melalui validasi, pilih Buat.
Pertama-tama buat grup sumber daya untuk semua sumber daya yang dibuat dalam artikel ini dengan New-AzResourceGroup. Contoh berikut membuat grup sumber daya di lokasi westus2 :
$rg = @{
ResourceGroupName = "test-rg"
Location = "westus2"
}
New-AzResourceGroup @rg
Buat jaringan virtual dengan New-AzVirtualNetwork. Contoh berikut membuat virtual bernama vnet-1:
$vnet = @{
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "vnet-1"
AddressPrefix = "10.0.0.0/16"
}
$virtualNetwork = New-AzVirtualNetwork @vnet
Membuat konfigurasi subnet dengan New-AzVirtualNetworkSubnetConfig, lalu menulis konfigurasi subnet ke jaringan virtual dengan Set-AzVirtualNetwork. Contoh berikut menambahkan subnet bernama subnet-1 ke jaringan virtual dan mengaitkan grup keamanan jaringan nsg-1 ke dalamnya:
$subnet = @{
Name = "subnet-1"
VirtualNetwork = $virtualNetwork
AddressPrefix = "10.0.0.0/24"
}
Add-AzVirtualNetworkSubnetConfig @subnet
$virtualNetwork | Set-AzVirtualNetwork
Pertama-tama buat grup sumber daya untuk semua sumber daya yang dibuat dalam artikel ini dengan az group create. Contoh berikut membuat grup sumber daya di lokasi westus2 :
az group create \
--name test-rg \
--location westus2
Buat Virtual Network dengan az network vnet create. Contoh berikut membuat virtual bernama vnet-1:
az network vnet create \
--name vnet-1 \
--resource-group test-rg \
--address-prefixes 10.0.0.0/16
Tambahkan subnet ke jaringan virtual dengan az network vnet subnet create. Contoh berikut menambahkan subnet bernama subnet-1 ke jaringan virtual dan mengaitkan grup keamanan jaringan nsg-1 ke dalamnya:
az network vnet subnet create \
--vnet-name vnet-1 \
--resource-group test-rg \
--name subnet-1 \
--address-prefix 10.0.0.0/24
Membuat grup keamanan aplikasi
Grup keamanan aplikasi (ASG) memungkinkan Anda mengelompokkan server bersama dengan fungsi serupa, seperti server web.
Di kotak pencarian di bagian atas portal, masukkan Grup keamanan aplikasi. Pilih Grup keamanan aplikasi di hasil pencarian.
Pilih + Buat.
Pada tab Dasar dari Buat grup keamanan aplikasi, masukkan, atau pilih informasi ini:
| Pengaturan |
Nilai |
|
Detail proyek |
|
| Langganan |
Pilih langganan Anda. |
| Grup sumber daya |
Pilih test-rg. |
|
Rincian contoh |
|
| Nama |
Masukkan asg-web. |
| Wilayah |
Pilih East US 2. |
Pilih Tinjau + kreasikan.
Pilih + Buat.
Ulangi langkah-langkah sebelumnya, menentukan nilai berikut:
| Pengaturan |
Nilai |
|
Detail proyek |
|
| Langganan |
Pilih langganan Anda. |
| Grup sumber daya |
Pilih test-rg. |
|
Rincian contoh |
|
| Nama |
Masukkan asg-mgmt. |
| Wilayah |
Pilih East US 2. |
Pilih Tinjau + kreasikan.
Pilih Buat.
Buat grup keamanan aplikasi dengan New-AzApplicationSecurityGroup. Grup keamanan aplikasi memungkinkan Anda mengelompokkan server dengan persyaratan pemfilteran port serupa. Contoh berikut membuat dua grup keamanan aplikasi.
$web = @{
ResourceGroupName = "test-rg"
Name = "asg-web"
Location = "westus2"
}
$webAsg = New-AzApplicationSecurityGroup @web
$mgmt = @{
ResourceGroupName = "test-rg"
Name = "asg-mgmt"
Location = "westus2"
}
$mgmtAsg = New-AzApplicationSecurityGroup @mgmt
Buat grup keamanan aplikasi dengan az network asg create. Grup keamanan aplikasi memungkinkan Anda mengelompokkan server dengan persyaratan pemfilteran port serupa. Contoh berikut membuat dua grup keamanan aplikasi.
az network asg create \
--resource-group test-rg \
--name asg-web \
--location westus2
az network asg create \
--resource-group test-rg \
--name asg-mgmt \
--location westus2
Membuat grup keamanan jaringan
Kelompok keamanan jaringan (NSG) mengamankan lalu lintas jaringan di jaringan virtual Anda.
Di kotak pencarian di bagian atas portal, masukkan Grup keamanan jaringan. Pilih Grup keamanan jaringan di hasil penelusuran.
Nota
Dalam hasil pencarian untuk grup keamanan Jaringan, Anda mungkin melihat Grup keamanan jaringan (klasik). Pilih Kelompok keamanan jaringan.
Pilih + Buat.
Pada tab Dasar dari Buat grup keamanan jaringan, masukkan, atau pilih informasi ini:
| Pengaturan |
Nilai |
|
Detail proyek |
|
| Langganan |
Pilih langganan Anda. |
| Grup sumber daya |
Pilih test-rg. |
|
Rincian contoh |
|
| Nama |
Masukkan nsg-1. |
| Lokasi |
Pilih East US 2. |
Pilih Tinjau + kreasikan.
Pilih Buat.
Buat grup keamanan jaringan dengan New-AzNetworkSecurityGroup. Contoh berikut membuat grup keamanan jaringan bernama nsg-1:
$nsgParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "nsg-1"
}
$nsg = New-AzNetworkSecurityGroup @nsgParams
Buat sebuah grup keamanan jaringan dengan az network nsg create. Contoh berikut membuat grup keamanan jaringan bernama nsg-1:
# Create a network security group
az network nsg create \
--resource-group test-rg \
--name nsg-1
Mengaitkan grup keamanan jaringan ke subnet
Di bagian ini, Anda mengaitkan grup keamanan jaringan dengan subnet jaringan virtual yang Anda buat sebelumnya.
Di kotak pencarian di bagian atas portal, masukkan Grup keamanan jaringan. Pilih Grup keamanan jaringan di hasil penelusuran.
Pilih nsg-1.
Pilih Subnet dari bagian Pengaturannsg-1.
Di halaman Subnet , pilih + Kaitkan:
Di bawah Kaitkan subnet, pilih vnet-1 (test-rg) untuk Jaringan virtual.
Pilih subnet-1 untuk Subnet, lalu pilih OK.
Gunakan Get-AzVirtualNetwork untuk mengambil objek jaringan virtual, lalu gunakan Set-AzVirtualNetworkSubnetConfig untuk mengaitkan grup keamanan jaringan dengan subnet. Contoh berikut mengambil objek jaringan virtual dan memperbarui konfigurasi subnet untuk mengaitkan grup keamanan jaringan:
# Retrieve the virtual network
$vnet = Get-AzVirtualNetwork -Name "vnet-1" -ResourceGroupName "test-rg"
# Update the subnet configuration to associate the network security group
$subnetConfigParams = @{
VirtualNetwork = $vnet
Name = "subnet-1"
AddressPrefix = $vnet.Subnets[0].AddressPrefix
NetworkSecurityGroup = Get-AzNetworkSecurityGroup -Name "nsg-1" -ResourceGroupName "test-rg"
}
Set-AzVirtualNetworkSubnetConfig @subnetConfigParams
# Update the virtual network with the new subnet configuration
$vnet | Set-AzVirtualNetwork
Gunakan pembaruan subnet vnet jaringan az untuk mengaitkan grup keamanan jaringan dengan subnet. Contoh berikut mengaitkan grup keamanan jaringan nsg-1 dengan subnet subnet-1 :
az network vnet subnet update \
--resource-group test-rg \
--vnet-name vnet-1 \
--name subnet-1 \
--network-security-group nsg-1
Membuat aturan keamanan
Pilih Aturan keamanan masuk dari bagian Pengaturannsg-1.
Di halaman Aturan keamanan masuk , pilih + Tambahkan.
Buat aturan keamanan yang memungkinkan port 80 dan 443 ke grup keamanan aplikasi asg-web . Di halaman Tambahkan aturan keamanan masuk , masukkan atau pilih informasi berikut:
| Pengaturan |
Nilai |
| Sumber |
Biarkan default Apa pun. |
| Rentang port sumber |
Biarkan default (*). |
| Tujuan |
Pilih Kelompok keamanan aplikasi. |
| Grup keamanan aplikasi tujuan |
Pilih asg-web. |
| Pelayanan |
Biarkan nilai default Kustom. |
| Rentang port tujuan |
Masukkan 80.443. |
| Protokol |
Pilih TCP. |
| Tindakan |
Biarkan default Izinkan. |
| Prioritas |
Biarkan nilai default 100. |
| Nama |
Masukkan allow-web-all. |
Pilih Tambahkan.
Selesaikan langkah-langkah sebelumnya dengan informasi berikut:
| Pengaturan |
Nilai |
| Sumber |
Biarkan default Apa pun. |
| Rentang port sumber |
Biarkan default (*). |
| Tujuan |
Pilih Kelompok keamanan aplikasi. |
| Grup keamanan aplikasi tujuan |
Pilih asg-mgmt. |
| Pelayanan |
Pilih RDP. |
| Tindakan |
Biarkan default Izinkan. |
| Prioritas |
Biarkan default 110. |
| Nama |
Masukkan allow-rdp-all. |
Pilih Tambahkan.
Perhatian
Dalam artikel ini, RDP (port 3389) diekspos ke internet untuk VM yang ditetapkan ke kelompok keamanan aplikasi asg-mgmt .
Untuk lingkungan produksi, alih-alih mengekspos port 3389 ke internet, disarankan agar Anda terhubung ke sumber daya Azure yang ingin Anda kelola menggunakan VPN, koneksi jaringan privat, atau Azure Bastion.
Untuk informasi selengkapnya tentang Azure Bastion, lihat Apa itu Azure Bastion?.
Buat aturan keamanan dengan New-AzNetworkSecurityRuleConfig. Contoh berikut membuat aturan yang memungkinkan lalu lintas masuk dari internet ke grup keamanan aplikasi asg-web melalui port 80 dan 443:
$webAsgParams = @{
Name = "asg-web"
ResourceGroupName = "test-rg"
}
$webAsg = Get-AzApplicationSecurityGroup @webAsgParams
$webRuleParams = @{
Name = "Allow-Web-All"
Access = "Allow"
Protocol = "Tcp"
Direction = "Inbound"
Priority = 100
SourceAddressPrefix = "Internet"
SourcePortRange = "*"
DestinationApplicationSecurityGroupId = $webAsg.id
DestinationPortRange = 80,443
}
$webRule = New-AzNetworkSecurityRuleConfig @webRuleParams
Contoh berikut membuat aturan yang memungkinkan lalu lintas masuk dari internet ke grup keamanan aplikasi asg-mgmt melalui port 3389:
$mgmtAsgParams = @{
Name = "asg-mgmt"
ResourceGroupName = "test-rg"
}
$mgmtAsg = Get-AzApplicationSecurityGroup @mgmtAsgParams
$mgmtRuleParams = @{
Name = "Allow-RDP-All"
Access = "Allow"
Protocol = "Tcp"
Direction = "Inbound"
Priority = 110
SourceAddressPrefix = "Internet"
SourcePortRange = "*"
DestinationApplicationSecurityGroupId = $mgmtAsg.id
DestinationPortRange = 3389
}
$mgmtRule = New-AzNetworkSecurityRuleConfig @mgmtRuleParams
Gunakan Get-AzNetworkSecurityGroup untuk mengambil grup keamanan jaringan yang ada, lalu tambahkan aturan baru dengan += operator. Terakhir, perbarui grup keamanan jaringan dengan Set-AzNetworkSecurityGroup:
# Retrieve the existing network security group
$nsg = Get-AzNetworkSecurityGroup -Name "nsg-1" -ResourceGroupName "test-rg"
# Add the new rules to the security group
$nsg.SecurityRules += $webRule
$nsg.SecurityRules += $mgmtRule
# Update the network security group with the new rules
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $nsg
Perhatian
Dalam artikel ini, RDP (port 3389) diekspos ke internet untuk VM yang ditetapkan ke kelompok keamanan aplikasi asg-mgmt .
Untuk lingkungan produksi, alih-alih mengekspos port 3389 ke internet, disarankan agar Anda terhubung ke sumber daya Azure yang ingin Anda kelola menggunakan VPN, koneksi jaringan privat, atau Azure Bastion.
Untuk informasi selengkapnya tentang Azure Bastion, lihat Apa itu Azure Bastion?.
Buat aturan keamanan dengan buat aturan nsg jaringan az. Contoh berikut membuat aturan yang memungkinkan lalu lintas masuk dari internet ke grup keamanan aplikasi asg-web melalui port 80 dan 443:
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-1 \
--name Allow-Web-All \
--access Allow \
--protocol Tcp \
--direction Inbound \
--priority 100 \
--source-address-prefix Internet \
--source-port-range "*" \
--destination-asgs "asg-web" \
--destination-port-range 80 443
Contoh berikut membuat aturan yang memungkinkan lalu lintas masuk dari Internet ke grup keamanan aplikasi asg-mgmt melalui port 22:
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-1 \
--name Allow-SSH-All \
--access Allow \
--protocol Tcp \
--direction Inbound \
--priority 110 \
--source-address-prefix Internet \
--source-port-range "*" \
--destination-asgs "asg-mgmt" \
--destination-port-range 22
Perhatian
Dalam artikel ini, SSH (port 22) diekspos ke internet untuk VM yang ditetapkan ke kelompok keamanan aplikasi asg-mgmt .
Untuk lingkungan produksi, alih-alih mengekspos port 22 ke internet, disarankan agar Anda terhubung ke sumber daya Azure yang ingin Anda kelola menggunakan VPN, koneksi jaringan privat, atau Azure Bastion.
Untuk informasi selengkapnya tentang Azure Bastion, lihat Apa itu Azure Bastion?.
Membuat komputer virtual
Buat dua komputer virtual (VM) di jaringan virtual.
Di portal, cari dan pilih Mesin virtual.
Di Mesin virtual, pilih + Buat, lalu Mesin virtual Azure.
Di Buat komputer virtual, masukkan atau pilih informasi ini di tab Dasar :
| Pengaturan |
Nilai |
|
Detail proyek |
|
| Langganan |
Pilih langganan Anda. |
| Grup sumber daya |
Pilih test-rg. |
|
Rincian contoh |
|
| Nama komputer virtual |
Masukkan vm-web. |
| Wilayah |
Pilih (AS) East US 2. |
| Opsi ketersediaan |
Biarkan default Tidak diperlukan redundansi infrastruktur. |
| Jenis keamanan |
Pilih Standar. |
| Gambar |
Pilih Windows Server 2022 Datacenter - x64 Gen2. |
| Instans Azure Spot |
Biarkan pengaturan default dalam keadaan tidak dicentang. |
| Ukuran |
Pilih ukuran. |
|
Akun administrator |
|
| Nama pengguna |
Masukkan nama pengguna. |
| Kata sandi |
Masukkan kata sandi. |
| Mengonfirmasikan kata sandi |
Masukkan ulang kata sandi. |
|
Aturan port masuk |
|
| Pilih port masuk |
Pilih Tidak ada. |
Pilih Berikutnya: Disk lalu Berikutnya: Jaringan.
Di tab Jaringan, masukkan atau pilih informasi berikut ini:
| Pengaturan |
Nilai |
|
Antarmuka jaringan |
|
| Jaringan virtual |
Pilih vnet-1. |
| Subnet |
Pilih subnet-1 (10.0.0.0/24). |
| IP Publik |
Biarkan default IP publik baru. |
| kelompok keamanan jaringan NIC |
Pilih Tidak ada. |
Pilih tab Tinjau + buat, atau pilih tombol Tinjau + buat biru di bagian bawah halaman.
Pilih Buat. VM mungkin membutuhkan waktu beberapa menit untuk disebarkan.
Ulangi langkah-langkah sebelumnya untuk membuat komputer virtual kedua bernama vm-mgmt.
Sebelum membuat VM, ambil objek jaringan virtual dengan subnet dengan Get-AzVirtualNetwork:
$virtualNetworkParams = @{
Name = "vnet-1"
ResourceGroupName = "test-rg"
}
$virtualNetwork = Get-AzVirtualNetwork @virtualNetworkParams
Buat alamat IP publik untuk setiap VM dengan New-AzPublicIpAddress:
$publicIpWebParams = @{
AllocationMethod = "Static"
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "public-ip-vm-web"
}
$publicIpWeb = New-AzPublicIpAddress @publicIpWebParams
$publicIpMgmtParams = @{
AllocationMethod = "Static"
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "public-ip-vm-mgmt"
}
$publicIpMgmt = New-AzPublicIpAddress @publicIpMgmtParams
Buat dua antarmuka jaringan dengan New-AzNetworkInterface, dan tetapkan alamat IP publik ke antarmuka jaringan. Contoh berikut membuat antarmuka jaringan, mengaitkan alamat IP publik-ip-vm-web publik ke antarmuka tersebut.
$webNicParams = @{
Location = "westus2"
Name = "vm-web-nic"
ResourceGroupName = "test-rg"
SubnetId = $virtualNetwork.Subnets[0].Id
PublicIpAddressId = $publicIpWeb.Id
}
$webNic = New-AzNetworkInterface @webNicParams
Contoh berikut membuat antarmuka jaringan, mengaitkan alamat IP publik -ip-vm-mgmt publik ke dalamnya.
$mgmtNicParams = @{
Location = "westus2"
Name = "vm-mgmt-nic"
ResourceGroupName = "test-rg"
SubnetId = $virtualNetwork.Subnets[0].Id
PublicIpAddressId = $publicIpMgmt.Id
}
$mgmtNic = New-AzNetworkInterface @mgmtNicParams
Buat dua VM di jaringan virtual sehingga Anda dapat memvalidasi pemfilteran lalu lintas di langkah selanjutnya.
Buat konfigurasi VM dengan New-AzVMConfig, lalu buat VM dengan New-AzVM. Contoh berikut membuat VM yang berfungsi sebagai server web. Opsi -AsJob membuat VM di latar belakang, sehingga Anda dapat melanjutkan ke langkah berikutnya:
# Create user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
$webVmConfigParams = @{
VMName = "vm-web"
VMSize = "Standard_DS1_V2"
}
$vmOSParams = @{
ComputerName = "vm-web"
Credential = $cred
}
$vmImageParams = @{
PublisherName = "MicrosoftWindowsServer"
Offer = "WindowsServer"
Skus = "2022-Datacenter"
Version = "latest"
}
$webVmConfig = New-AzVMConfig @webVmConfigParams | Set-AzVMOperatingSystem -Windows @vmOSParams | Set-AzVMSourceImage @vmImageParams | Add-AzVMNetworkInterface -Id $webNic.Id
$webVmParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VM = $webVmConfig
}
New-AzVM @webVmParams -AsJob
Buat VM untuk berfungsi sebagai server manajemen:
# Create user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
$webVmConfigParams = @{
VMName = "vm-mgmt"
VMSize = "Standard_DS1_V2"
}
$vmOSParams = @{
ComputerName = "vm-mgmt"
Credential = $cred
}
$vmImageParams = @{
PublisherName = "MicrosoftWindowsServer"
Offer = "WindowsServer"
Skus = "2022-Datacenter"
Version = "latest"
}
$mgmtVmConfig = New-AzVMConfig @webVmConfigParams | Set-AzVMOperatingSystem -Windows @vmOSParams | Set-AzVMSourceImage @vmImageParams | Add-AzVMNetworkInterface -Id $mgmtNic.Id
$mgmtVmParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VM = $mgmtVmConfig
}
New-AzVM @mgmtVmParams
Komputer virtual membutuhkan waktu beberapa menit untuk dibuat. Jangan lanjutkan dengan langkah berikutnya hingga Azure selesai membuat VM.
Buat dua VM di jaringan virtual sehingga Anda dapat memvalidasi pemfilteran lalu lintas di langkah selanjutnya.
Buat VM dengan az vm create. Contoh berikut membuat VM yang berfungsi sebagai server web. Opsi --nsg "" ini ditentukan untuk mencegah Azure membuat grup keamanan jaringan default untuk antarmuka jaringan yang dibuat Azure saat membuat VM. Perintah meminta Anda untuk membuat kata sandi untuk VM. Kunci SSH tidak digunakan dalam contoh ini untuk memfasilitasi langkah-langkah selanjutnya dalam artikel ini. Di lingkungan produksi, gunakan kunci SSH untuk keamanan.
az vm create \
--resource-group test-rg \
--name vm-web \
--image Ubuntu2204 \
--vnet-name vnet-1 \
--subnet subnet-1 \
--nsg "" \
--admin-username azureuser \
--authentication-type password \
--assign-identity
VM membutuhkan waktu beberapa menit untuk dibuat. Setelah VM dibuat, output yang mirip dengan contoh berikut dikembalikan:
{
"fqdns": "",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachines/vm-web",
"location": "westus2",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "203.0.113.24",
"resourceGroup": "test-rg"
}
Buat VM dengan az vm create. Contoh berikut membuat VM yang berfungsi sebagai server manajemen.
Contoh berikut membuat VM dan menambahkan akun pengguna. Parameter --generate-ssh-keys menyebabkan CLI mencari kunci ssh yang tersedia di ~/.ssh. Jika ditemukan, kunci tersebut akan digunakan. Jika tidak, satu dibuat dan disimpan di ~/.ssh. Terakhir, kami memasang gambar terbaru Ubuntu 22.04.
az vm create \
--resource-group test-rg \
--name vm-mgmt \
--image Ubuntu2204 \
--vnet-name vnet-1 \
--subnet subnet-1 \
--nsg "" \
--admin-username azureuser \
--generate-ssh-keys \
--assign-identity
VM membutuhkan waktu beberapa menit untuk dibuat. Jangan lanjutkan dengan langkah berikutnya hingga Azure selesai membuat VM.
Mengaitkan antarmuka jaringan ke ASG
Saat Anda membuat VM, Azure membuat antarmuka jaringan untuk setiap VM, dan melampirkannya ke VM.
Tambahkan antarmuka jaringan setiap VM ke salah satu grup keamanan aplikasi yang Anda buat sebelumnya:
Di kotak pencarian di bagian atas portal, masukkan Jaringan virtual. Pilih Komputer virtual di hasil pencarian, lalu pilih vm-web.
Pilih Grup keamanan aplikasi dari bagian Jaringanvm-web.
Pilih Tambahkan grup keamanan aplikasi, lalu di tab Tambahkan grup keamanan aplikasi , pilih asg-web. Terakhir, pilih Tambahkan.
Ulangi langkah-langkah sebelumnya untuk vm-mgmt, memilih asg-mgmt di tab Tambahkan grup keamanan aplikasi .
Gunakan Get-AzNetworkInterface untuk mengambil antarmuka jaringan komputer virtual, lalu gunakan Get-AzApplicationSecurityGroup untuk mengambil grup keamanan aplikasi. Terakhir, gunakan Set-AzNetworkInterface untuk mengaitkan kelompok keamanan aplikasi dengan antarmuka jaringan. Contoh berikut mengaitkan grup keamanan aplikasi asg-web dengan antarmuka jaringan vm-web-nic :
$params1 = @{
Name = "vm-web-nic"
ResourceGroupName = "test-rg"
}
$nic = Get-AzNetworkInterface @params1
$params2 = @{
Name = "asg-web"
ResourceGroupName = "test-rg"
}
$asg = Get-AzApplicationSecurityGroup @params2
$nic.IpConfigurations[0].ApplicationSecurityGroups = @($asg)
$params3 = @{
NetworkInterface = $nic
}
Set-AzNetworkInterface @params3
Ulangi perintah untuk mengaitkan grup keamanan aplikasi asg-mgmt dengan antarmuka jaringan vm-mgmt-nic .
$params1 = @{
Name = "vm-mgmt-nic"
ResourceGroupName = "test-rg"
}
$nic = Get-AzNetworkInterface @params1
$params2 = @{
Name = "asg-mgmt"
ResourceGroupName = "test-rg"
}
$asg = Get-AzApplicationSecurityGroup @params2
$nic.IpConfigurations[0].ApplicationSecurityGroups = @($asg)
$params3 = @{
NetworkInterface = $nic
}
Set-AzNetworkInterface @params3
Gunakan az network nic update untuk mengaitkan antarmuka jaringan dengan kelompok keamanan aplikasi. Contoh berikut mengaitkan grup keamanan aplikasi asg-web dengan antarmuka jaringan vm-web-nic :
# Retrieve the network interface name associated with the virtual machine
nic_name=$(az vm show --resource-group test-rg --name vm-web --query 'networkProfile.networkInterfaces[0].id' -o tsv | xargs basename)
# Associate the application security group with the network interface
az network nic ip-config update \
--name ipconfigvm-web \
--nic-name $nic_name \
--resource-group test-rg \
--application-security-groups asg-web
Ulangi perintah untuk mengaitkan grup keamanan aplikasi asg-mgmt dengan antarmuka jaringan vm-mgmt-nic .
# Retrieve the network interface name associated with the virtual machine
nic_name=$(az vm show --resource-group test-rg --name vm-mgmt --query 'networkProfile.networkInterfaces[0].id' -o tsv | xargs basename)
# Associate the application security group with the network interface
az network nic ip-config update \
--name ipconfigvm-mgmt \
--nic-name $nic_name \
--resource-group test-rg \
--application-security-groups asg-mgmt
Menguji filter lalu lintas
Di kotak pencarian di bagian atas portal, masukkan Jaringan virtual. Pilih Jaringan Virtual dalam hasil pencarian.
Pilih vm-mgmt.
Pada halaman Gambaran Umum , pilih tombol Sambungkan lalu pilih RDP Asli.
Pilih Unduh file RDP.
Buka file rdp yang diunduh dan pilih Sambungkan. Masukkan nama pengguna dan kata sandi yang Anda tentukan saat membuat VM.
Pilih OK.
Anda mungkin menerima peringatan sertifikat selama proses koneksi. Jika Anda menerima peringatan, pilih Ya atau Lanjutkan, untuk melanjutkan koneksi.
Koneksi berhasil, karena lalu lintas masuk dari internet ke kelompok keamanan aplikasi asg-mgmt diizinkan melalui port 3389.
Antarmuka jaringan untuk vm-mgmt dikaitkan dengan kelompok keamanan aplikasi asg-mgmt dan memungkinkan koneksi.
Buka sesi PowerShell di vm-mgmt. Sambungkan ke vm-web menggunakan yang berikut ini:
mstsc /v:vm-web
Koneksi RDP dari vm-mgmt ke vm-web berhasil karena komputer virtual dalam jaringan yang sama dapat berkomunikasi satu sama lain melalui port apa pun secara default.
Anda tidak dapat membuat koneksi RDP ke komputer virtual vm-web dari internet. Aturan keamanan untuk asg-web mencegah koneksi ke port 3389 masuk dari internet. Lalu lintas masuk dari Internet ditolak ke semua sumber daya secara default.
Untuk menginstal Microsoft IIS pada komputer virtual vm-web , masukkan perintah berikut dari sesi PowerShell di komputer virtual vm-web :
Install-WindowsFeature -name Web-Server -IncludeManagementTools
Setelah penginstalan IIS selesai, putuskan sambungan dari komputer virtual vm-web , yang membuat Anda berada di koneksi desktop jarak jauh komputer virtual vm-mgmt .
Putuskan sambungan dari VM vm-mgmt .
Cari vm-web di kotak pencarian portal.
Pada halaman Gambaran Umumvm-web, perhatikan alamat IP Publik untuk VM Anda. Alamat yang ditunjukkan dalam contoh berikut adalah 203.0.113.103. Alamat Anda berbeda:
Untuk mengonfirmasi bahwa Anda dapat mengakses server web vm-web dari internet, buka browser internet di komputer Anda dan telusuri ke http://<public-ip-address-from-previous-step>.
Anda melihat halaman default IIS, karena lalu lintas masuk dari internet ke grup keamanan aplikasi asg-web diizinkan melalui port 80.
Antarmuka jaringan yang dilampirkan untuk vm-web dikaitkan dengan kelompok keamanan aplikasi asg-web dan memungkinkan koneksi.
Gunakan Get-AzPublicIpAddress untuk mengembalikan alamat IP publik VM. Contoh berikut mengembalikan alamat IP publik VM vm-mgmt :
$params = @{
Name = "public-ip-vm-mgmt"
ResourceGroupName = "test-rg"
}
$publicIP = Get-AzPublicIpAddress @params | Select IpAddress
Gunakan perintah berikut untuk membuat sesi desktop jarak jauh dengan VM vm-mgmt dari komputer lokal Anda.
mstsc /v:$publicIP
Masukkan nama pengguna dan kata sandi yang Anda tentukan saat membuat VM (Anda mungkin perlu memilih Pilihan lainnya, lalu Gunakan akun lain, untuk menentukan kredensial yang Anda masukkan saat membuat VM), lalu pilih OK. Anda mungkin menerima peringatan sertifikat selama proses masuk. Pilih Ya untuk melanjutkan koneksi.
Koneksi berhasil. Port 3389 diizinkan masuk dari internet ke kelompok keamanan aplikasi asg-mgmt . Antarmuka jaringan yang terpasang pada VM vm-mgmt berada dalam grup ini.
Gunakan perintah berikut untuk membuat koneksi desktop jarak jauh ke VM vm-web , dari VM vm-mgmt , dengan perintah berikut, dari PowerShell:
mstsc /v:vm-web
Koneksi berhasil karena aturan keamanan default dalam setiap grup keamanan jaringan memungkinkan lalu lintas melalui semua port di antara semua alamat IP dalam jaringan virtual. Anda tidak dapat membuat koneksi desktop jarak jauh ke VM vm-web dari internet karena aturan keamanan untuk asg-web tidak mengizinkan port 3389 masuk dari internet.
Gunakan perintah berikut untuk menginstal Microsoft IIS di VM vm-web dari PowerShell:
Install-WindowsFeature -name Web-Server -IncludeManagementTools
Setelah penginstalan IIS selesai, putuskan sambungan dari VM vm-web , yang membuat Anda berada di koneksi desktop jarak jauh VM-mgmt . Untuk melihat layar selamat datang IIS, buka browser internet dan telusuri http://vm-web.
Putuskan sambungan dari VM vm-mgmt .
Di komputer Anda, masukkan perintah berikut dari PowerShell untuk mengambil alamat IP publik server vm-web :
$params = @{
Name = "public-ip-vm-web"
ResourceGroupName = "test-rg"
}
Get-AzPublicIpAddress @params | Select IpAddress
Untuk mengonfirmasi bahwa Anda dapat mengakses server web vm-web dari luar Azure, buka browser internet di komputer Anda dan telusuri ke http://<public-ip-address-from-previous-step>. Koneksi berhasil. Port 80 diizinkan masuk dari internet ke grup keamanan aplikasi asg-web . Antarmuka jaringan yang terpasang pada VM vm-web ada di grup ini.
Menggunakan klien SSH pilihan Anda, sambungkan ke VM yang dibuat sebelumnya. Misalnya, perintah berikut dapat digunakan dari antarmuka baris perintah seperti Subsistem Windows untuk Linux untuk membuat sesi SSH dengan VM vm-mgmt . Anda dapat masuk ke komputer virtual menggunakan kredensial ID Microsoft Entra Anda atau Anda dapat menggunakan kunci SSH yang Anda gunakan untuk membuat VM. Dalam contoh berikut, kami menggunakan kunci SSH untuk masuk ke VM manajemen lalu masuk ke VM web dari VM manajemen dengan kata sandi.
Untuk informasi selengkapnya tentang cara SSH ke VM Linux dan masuk dengan ID Microsoft Entra, lihat Masuk ke komputer virtual Linux di Azure dengan menggunakan ID Microsoft Entra dan OpenSSH.
Menyimpan alamat IP VM untuk SSH
Jalankan perintah berikut untuk menyimpan alamat IP VM sebagai variabel lingkungan:
export IP_ADDRESS=$(az vm show --show-details --resource-group test-rg --name vm-mgmt --query publicIps --output tsv)
ssh -o StrictHostKeyChecking=no azureuser@$IP_ADDRESS
Koneksi berhasil karena antarmuka jaringan yang terpasang pada VM vm-mgmt berada di grup keamanan aplikasi asg-mgmt , yang memungkinkan port 22 masuk dari Internet.
Gunakan perintah berikut untuk SSH ke VM vm-web dari VM vm-mgmt :
ssh -o StrictHostKeyChecking=no azureuser@vm-web
Koneksi berhasil karena aturan keamanan default dalam setiap grup keamanan jaringan memungkinkan lalu lintas melalui semua port di antara semua alamat IP dalam jaringan virtual. Anda tidak dapat melakukan SSH ke VM vm-web dari Internet karena aturan keamanan untuk asg-web tidak mengizinkan port 22 masuk dari Internet.
Gunakan perintah berikut untuk menginstal server web nginx di VM vm-web :
# Update package source
sudo apt-get -y update
# Install NGINX
sudo apt-get -y install nginx
VM vm-web diizinkan keluar ke Internet untuk mengambil nginx karena aturan keamanan default memungkinkan semua lalu lintas keluar ke Internet. Keluar dari sesi SSH vm-web , yang membuat Anda berada di username@vm-mgmt:~$ prompt VM vm-mgmt . Untuk mengambil layar selamat datang nginx dari VM vm-web , masukkan perintah berikut:
curl vm-web
Keluar dari VM vm-mgmt . Untuk mengonfirmasi bahwa Anda dapat mengakses server web vm-web dari luar Azure, masukkan curl <publicIpAddress> dari komputer Anda sendiri. Koneksi berhasil karena kelompok keamanan aplikasi asg-web , yang dilampirkan antarmuka jaringan ke VM vm-web , memungkinkan port 80 masuk dari Internet.
Setelah selesai menggunakan sumber daya yang Anda buat, Anda dapat menghapus grup sumber daya dan semua sumber dayanya.
Di portal Azure, cari dan pilih Grup sumber daya.
Pada halaman Resource groups, pilih kelompok sumber daya test-rg.
Pada halaman test-rg, pilih Hapus grup sumber daya.
Masukkan test-rg di Masukkan nama grup sumber daya untuk mengonfirmasi penghapusan, lalu pilih Hapus.
Jika tidak lagi dibutuhkan, Anda dapat menggunakan Remove-AzResourceGroup untuk menghapus grup sumber daya dan semua sumber daya yang terkandung di dalamnya:
$params = @{
Name = "test-rg"
Force = $true
}
Remove-AzResourceGroup @params
Jika tidak lagi diperlukan, gunakan az group delete untuk menghapus grup sumber daya dan semua sumber daya yang ada di dalamnya.
az group delete \
--name test-rg \
--yes \
--no-wait
Langkah selanjutnya
Di tutorial ini, Anda akan:
- Membuat grup keamanan jaringan dan mengaitkannya ke subnet jaringan virtual.
- Membuat grup keamanan aplikasi untuk web dan manajemen.
- Membuat dua komputer virtual dan mengaitkan antarmuka jaringan mereka dengan kelompok keamanan aplikasi.
- Menguji pemfilteran jaringan kelompok keamanan aplikasi.
Untuk mempelajari selengkapnya tentang grup keamanan jaringan, lihat Gambaran umum grup keamanan jaringan dan Mengelola grup keamanan jaringan.
Azure merutekan lalu lintas antar subnet secara default. Sebagai gantinya, Anda dapat memilih untuk merutekan lalu lintas antar subnet melalui VM, yang berfungsi sebagai firewall, misalnya.
Untuk mempelajari cara membuat tabel rute, lanjutkan ke tutorial berikutnya.