Memfilter lalu lintas jaringan dengan kelompok keamanan jaringan menggunakan Azure CLI

Anda dapat menggunakan kelompok keamanan jaringan untuk memfilter lalu lintas jaringan yang masuk dan keluar dari subnet jaringan virtual. Kelompok keamanan jaringan berisi aturan keamanan yang memfilter lalu lintas jaringan menurut alamat IP, port, dan protokol. Aturan keamanan diterapkan pada sumber daya yang diterapkan dalam subnet. Dalam artikel ini, Anda akan mempelajari cara:

  • Membuat kelompok keamanan jaringan dan aturan keamanan
  • Membuat jaringan virtual dan mengaitkan kelompok keamanan jaringan ke subnet
  • Menyebarkan komputer virtual (VM) ke dalam subnet
  • Filter uji lalu lintas

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

Prasyarat

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

Membuat grup keamanan jaringan

Kelompok keamanan jaringan memuat aturan keamanan. Aturan keamanan menentukan sumber dan tujuan. Sumber dan tujuan dapat menjadi kelompok keamanan aplikasi.

Buat kelompok keamanan aplikasi

Pertama-tama buat grup sumber daya untuk semua sumber daya yang dibuat dalam artikel ini dengan membuat grup az. Contoh berikut ini membuat grup sumber daya di lokasi eastus:

az group create \
  --name myResourceGroup \
  --location eastus

Membuat kelompok keamanan aplikasi dengan membuat asg jaringan az. Kelompok keamanan aplikasi memungkinkan Anda mengelompokkan server dengan persyaratan pemfilteran port yang serupa. Contoh berikut membuat dua kelompok keamanan aplikasi.

az network asg create \
  --resource-group myResourceGroup \
  --name myAsgWebServers \
  --location eastus

az network asg create \
  --resource-group myResourceGroup \
  --name myAsgMgmtServers \
  --location eastus

Membuat grup keamanan jaringan

Membuat kelompok keamanan jaringan dengan membuat nsg jaringan az. Contoh berikut membuat kelompok keamanan jaringan bernama myNsgPrivate:

# Create a network security group
az network nsg create \
  --resource-group myResourceGroup \
  --name myNsg

Membuat aturan keamanan

Membuat aturan keamanan dengan membuat aturan nsg jaringan az. Contoh berikut membuat aturan yang memungkinkan lalu lintas masuk dari internet ke kelompok keamanan aplikasi myWebServers melalui port 80 dan 443:

az network nsg rule create \
  --resource-group myResourceGroup \
  --nsg-name myNsg \
  --name Allow-Web-All \
  --access Allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 100 \
  --source-address-prefix Internet \
  --source-port-range "*" \
  --destination-asgs "myAsgWebServers" \
  --destination-port-range 80 443

Contoh berikut membuat aturan yang memungkinkan lalu lintas masuk dari internet ke kelompok keamanan aplikasi myWebServers melalui port 22 dan 443:

az network nsg rule create \
  --resource-group myResourceGroup \
  --nsg-name myNsg \
  --name Allow-SSH-All \
  --access Allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 110 \
  --source-address-prefix Internet \
  --source-port-range "*" \
  --destination-asgs "myAsgMgmtServers" \
  --destination-port-range 22

Dalam artikel ini, SSH (port 22) diekspos ke internet untuk komputer virtual myAsgMgmtServers. Untuk lingkungan produksi, daripada mengekspos port 22 ke internet, sebaiknya Anda menghubungkan ke sumber daya Azure yang ingin Anda kelola menggunakan VPN atau koneksi jaringan privat.

Membuat jaringan virtual

Buat Virtual Network dengan az network vnet create. Contoh berikut membuat jaringan virtual bernama myAzureVNet:

az network vnet create \
  --name myVirtualNetwork \
  --resource-group myResourceGroup \
  --address-prefixes 10.0.0.0/16

Menambahkan subnet ke jaringan virtual dengan membuat subnet vnet jaringan az. Contoh berikut menambahkan subnet bernama mySubnet ke jaringan virtual dan mengaitkan kelompok keamanan jaringan myNsg ke dalamnya:

az network vnet subnet create \
  --vnet-name myVirtualNetwork \
  --resource-group myResourceGroup \
  --name mySubnet \
  --address-prefix 10.0.0.0/24 \
  --network-security-group myNsg

Membuat komputer virtual

Membuat dua VM di jaringan virtual agar Anda dapat memvalidasi pemfilteran lalu lintas di langkah selanjutnya.

Buat VM dengan az vm create. Contoh berikut membuat VM yang akan berfungsi sebagai server web. Opsi --asgs myAsgWebServers ini menyebabkan Azure membuat antarmuka jaringan yang dibuatnya untuk VM sebagai anggota kelompok keamanan aplikasi myAsgWebServers.

--nsg ""Opsi ini ditentukan untuk mencegah Azure membuat kelompok keamanan jaringan default untuk antarmuka jaringan yang dibuat Azure saat membuat komputer virtual. Untuk merampingkan artikel ini, digunakanlah kata sandi. Kunci biasanya digunakan dalam penyebaran produksi. Jika menggunakan kunci, Anda juga harus mengonfigurasi penerusan agen SSH untuk langkah-langkah yang tersisa. Untuk informasi selengkapnya, lihat dokumentasi untuk klien SSH Anda. Ganti <replace-with-your-password> perintah berikut dengan kata sandi yang Anda pilih.

adminPassword="<replace-with-your-password>"

az vm create \
  --resource-group myResourceGroup \
  --name myVmWeb \
  --image Ubuntu2204 \
  --vnet-name myVirtualNetwork \
  --subnet mySubnet \
  --nsg "" \
  --asgs myAsgWebServers \
  --admin-username azureuser \
  --admin-password $adminPassword

VM membutuhkan waktu beberapa menit untuk dibuat. Setelah komputer virtual dibuat, output yang mirip dengan contoh output berikut ditampilkan:

{
  "fqdns": "",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVmWeb",
  "location": "eastus",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "13.90.242.231",
  "resourceGroup": "myResourceGroup"
}

Catat publicIpAddress. Alamat ini digunakan untuk mengakses komputer virtual dari internet di langkah selanjutnya. Membuat komputer virtual yang berfungsi sebagai server manajemen:

az vm create \
  --resource-group myResourceGroup \
  --name myVmMgmt \
  --image Ubuntu2204 \
  --vnet-name myVirtualNetwork \
  --subnet mySubnet \
  --nsg "" \
  --asgs myAsgMgmtServers \
  --admin-username azureuser \
  --admin-password $adminPassword

VM membutuhkan waktu beberapa menit untuk dibuat. Setelah VM dibuat, perhatikan publicIpAddress dalam output yang dikembalikan. Alamat ini digunakan untuk mengakses komputer virtual pada tahap-tahap berikutnya. Jangan lanjutkan dengan langkah berikutnya hingga Azure selesai membuat komputer virtual.

Filter uji lalu lintas

Gunakan perintah yang mengikuti untuk membuat sesi SSH dengan komputer virtualmyVmMgmt. Ganti <publicIpAddress> dengan alamat IP publik VM Anda. Dalam contoh di atas, alamat IP adalah 13.90.242.231.

ssh azureuser@<publicIpAddress>

Saat dimintai kata sandi, masukkan kata sandi yang Anda masukkan di Buat VM.

Koneksi berhasil, karena port 22 diizinkan masuk dari internet ke kelompok keamanan aplikasi myAsgMgmtServers tempat antarmuka jaringan yang terpasang pada komputer virtualmyVmMgmt masuk.

Menggunakan perintah berikut ke SSH ke komputer virtualmyVmWeb dari komputer virtualmyVmMgmt:

ssh azureuser@myVmWeb

Sambungan berhasil karena aturan keamanan default dalam setiap kelompok keamanan jaringan memungkinkan lalu lintas di semua port di antara semua alamat IP dalam jaringan virtual. Anda tidak dapat SSH ke komputer virtualmyVmWeb dari Internet karena aturan keamanan untuk myAsgWebServers tidak mengizinkan port 22 masuk dari internet.

Menggunakan perintah berikut untuk menginstal server web nginx di komputer virtual myVmWeb:

# Update package source
sudo apt-get -y update

# Install NGINX
sudo apt-get -y install nginx

Komputer virtualMyVmWeb diperbolehkan keluar ke Internet untuk mengambil nginx karena aturan keamanan default memungkinkan semua lalu lintas keluar ke Internet. Keluar dari sesi SSH myVmWeb, yang membuat Anda username@myVmMgmt:~$ berada di prompt komputer virtualmyVmMgmt. Untuk mengambil layar selamat datang nginx dari komputer virtualmyVmWeb, masukkan perintah berikut:

curl myVmWeb

Logout dari komputer virtualmyVmMgmt. Untuk mengonfirmasi bahwa Anda dapat mengakses server web myVmWeb dari luar Azure, masukkan curl <publicIpAddress> dari komputer Anda sendiri. Koneksi berhasil, karena port 80 diizinkan masuk dari internet ke kelompok keamanan aplikasi myAsgWebServers tempat antarmuka jaringan yang terpasang pada komputer virtual myVmWeb masuk.

Membersihkan sumber daya

Jika tidak lagi dibutuhkan, gunakan hapus grup az untuk menghapus grup sumber daya dan semua sumber daya di dalamnya.

az group delete --name myResourceGroup --yes

Langkah berikutnya

Dalam artikel ini, Anda membuat kelompok keamanan jaringan dan mengaitkannya ke subnet jaringan virtual. Untuk mempelajari selengkapnya tentang grup keamanan jaringan, lihat Gambaran umum kelompok keamanan jaringan dan Mengelola kelompok keamanan jaringan.

Azure merutekan lalu lintas antara subnet secara default. Sebagai gantinya, Anda dapat memilih untuk merutekan lalu lintas antar subnet melalui VM, berfungsi sebagai firewall, misalnya. Untuk mempelajari caranya, lihatMembuat tabel rute.