Tutorial: Membuat dan mengelola jaringan virtual Azure untuk mesin virtual Linux dengan Azure CLI

Berlaku untuk: ✔️ VM Linux ✔️ Set skala fleksibel

Mesin virtual Azure menggunakan jaringan Azure untuk komunikasi jaringan internal dan eksternal. Tutorial ini meliputi penyebaran dua mesin virtual dan konfigurasi jaringan Azure untuk VM ini. Contoh dalam tutorial ini mengasumsikan bahwa komputer virtual menghosting aplikasi web dengan database back-end, namun aplikasi tidak digunakan dalam tutorial ini. Dalam tutorial ini, Anda akan mempelajari cara:

  • Membuat jaringan virtual dan subnet
  • Membuat alamat IP publik
  • Membuat VM front-end
  • Mengamankan lalu lintas jaringan
  • Membuat VM back-end

Tutorial ini menggunakan CLI dalam Azure Cloud Shell, yang terus diperbarui ke versi terbaru. Untuk membuka Cloud Shell, pilih Coba dari bagian atas blok kode apa pun.

Jika Anda memilih untuk menginstal dan menggunakan CLI secara lokal, tutorial ini mengharuskan Anda menjalankan Azure CLI versi 2.0.30 atau versi lebih baru. Jalankan az --version untuk menemukan versinya. Jika Anda perlu menginstal atau memutakhirkan, lihat Menginstal Azure CLI.

Ikhtisar jaringan VM

Jaringan virtual Azure memungkinkan koneksi jaringan yang aman antara komputer virtual, internet, dan layanan Azure lainnya seperti Microsoft Azure SQL Database. Jaringan virtual dipecah menjadi segmen logis yang disebut subnet. Subnet digunakan untuk mengontrol aliran jaringan, dan sebagai batas keamanan. Saat menyebarkan VM, umumnya mencakup antarmuka jaringan virtual, yang dipasang ke subnet.

Saat Anda menyelesaikan tutorial ini, sumber daya jaringan virtual berikut dibuat:

Jaringan virtual dengan dua subnet

  • myVNet - Jaringan virtual yang digunakan komputer virtual untuk berkomunikasi dengan satu sama lain dan internet.
  • myFrontendSubnet - Subnet di myVNet yang digunakan oleh sumber daya ujung depan.
  • myPublicIPAddress - Alamat IP publik yang digunakan untuk mengakses myFrontendVM dari internet.
  • myFrontendNic - Antarmuka jaringan yang digunakan oleh myFrontendVM untuk berkomunikasi dengan myBackendVM.
  • myFrontendVM - VM yang digunakan untuk berkomunikasi antara internet dan myBackendVM.
  • myBackendNSG - Grup keamanan jaringan yang mengontrol komunikasi antara myFrontendVM dan myBackendVM.
  • myBackendSubnet - Subnet yang terkait dengan myBackendNSG dan digunakan oleh sumber daya ujung belakang.
  • myBackendNic - Antarmuka jaringan yang digunakan oleh myBackendVM untuk berkomunikasi dengan myFrontendVM.
  • myBackendVM - VM yang menggunakan port 22 dan 3306 untuk berkomunikasi dengan myFrontendVM.

Membuat jaringan virtual dan subnet

Untuk tutorial ini, satu jaringan virtual dibuat dengan dua subnet. Subnet front-end untuk menghosting aplikasi web, dan subnet back-end untuk menghosting server database.

Sebelum Anda dapat membuat jaringan virtual, buat grup sumber daya dengan buat grup az. Contoh berikut ini membuat grup sumber daya bernama myRGNetwork di lokasi eastus.

az group create --name myRGNetwork --location eastus

Membuat jaringan virtual

Gunakan perintah buat vnet jaringan az untuk membuat jaringan virtual. Dalam contoh ini, jaringan diberi nama mvVNet dan diberi awalan alamat 10.0.0.0/16. Suatu subnet juga dibuat dengan nama myFrontendSubnet dan awalan 10.0.1.0/24. Kemudian dalam tutorial ini VM front-end terhubung ke subnet ini.

az network vnet create \
  --resource-group myRGNetwork \
  --name myVNet \
  --address-prefix 10.0.0.0/16 \
  --subnet-name myFrontendSubnet \
  --subnet-prefix 10.0.1.0/24

Membuat subnet

Subnet baru ditambahkan ke jaringan virtual menggunakan perintah buat subnet vnet jaringan az. Dalam contoh ini, subnet diberi nama myBackendSubnet dan diberi awalan alamat 10.0.2.0/24. Subnet ini digunakan dengan semua layanan back-end.

az network vnet subnet create \
  --resource-group myRGNetwork \
  --vnet-name myVNet \
  --name myBackendSubnet \
  --address-prefix 10.0.2.0/24

Pada titik ini, jaringan telah dibuat dan disegmentasi menjadi dua subnet, satu untuk layanan front-end, dan yang lainnya untuk layanan back-end. Di bagian berikutnya, komputer virtual dibuat dan terhubung ke subnet ini.

Membuat alamat IP publik

Alamat IP publik memungkinkan sumber daya Azure untuk dapat diakses di internet. Metode alokasi alamat IP publik dapat dikonfigurasi sebagai dinamis atau statis. Secara default, alamat IP publik dialokasikan secara dinamis. Alamat IP dinamis dirilis komputer virtual diputus. Perilaku ini menyebabkan alamat IP berubah selama operasi apa pun yang termasuk pembatalan alokasi VM.

Metode alokasi dapat diatur menjadi statis, yang memastikan bahwa alamat IP tetap ditetapkan ke VM, bahkan selama keadaan alokasi yang dibatalkan. Saat menggunakan alamat IP yang dialokasikan secara statis, alamat IP itu sendiri tidak dapat ditentukan. Alamat tersebut justru dialokasikan dari kumpulan alamat yang tersedia.

az network public-ip create --resource-group myRGNetwork --name myPublicIPAddress

Saat membuat VM dengan perintah buat vm az, metode alokasi alamat IP publik default bersifat dinamis. Saat membuat mesin virtual menggunakan perintah buat vm az, sertakan argumen --public-ip-address-allocation static untuk menetapkan alamat IP publik statis. Operasi ini tidak ditunjukkan dalam tutorial ini, namun di bagian selanjutnya, alamat IP yang dialokasikan secara dinamis diubah menjadi alamat yang dialokasikan secara statis.

Ubah metode alokasi

Metode alokasi alamat IP dapat diubah menggunakan perintah pembaruan ip publik jaringan az. Dalam contoh ini, metode alokasi alamat IP dari VM front-end diubah menjadi statis.

Pertama-tama, batalkan alokasi VM.

az vm deallocate --resource-group myRGNetwork --name myFrontendVM

Gunakan perintah pembaruan ip publik jaringan az untuk memperbarui metode alokasi. Dalam hal ini, --allocation-method sedang diatur menjadi statis.

az network public-ip update --resource-group myRGNetwork --name myPublicIPAddress --allocation-method static

Mulai VM.

az vm start --resource-group myRGNetwork --name myFrontendVM --no-wait

Tidak ada alamat IP publik

Seringkali, VM tidak harus dapat diakses melalui internet. Untuk membuat VM tanpa alamat IP publik, gunakan argumen --public-ip-address "" dengan sekumpulan tanda kutip ganda kosong. Konfigurasi ini ditunjukkan kemudian dalam tutorial ini.

Membuat VM front-end

Gunakan perintah buat vm az untuk membuat VM bernama myFrontendVM menggunakan myPublicIPAddress.

az vm create \
  --resource-group myRGNetwork \
  --name myFrontendVM \
  --vnet-name myVNet \
  --subnet myFrontendSubnet \
  --nsg myFrontendNSG \
  --public-ip-address myPublicIPAddress \
  --image Ubuntu2204 \
  --generate-ssh-keys

Mengamankan lalu lintas jaringan

Grup keamanan jaringan (NSG) berisi daftar aturan keamanan yang mengizinkan atau menolak lalu lintas ke sumber daya yang terhubung ke Azure Virtual Networks (VNet). NSG dapat dikaitkan dengan subnet atau antarmuka jaringan individual. NSG yang dikaitkan dengan antarmuka jaringan hanya berlaku untuk komputer virtual terkait. Saat NSG dikaitkan dengan subnet, aturan berlaku untuk semua sumber daya yang terhubung ke subnet.

Aturan jaringan kelompok keamanan

Aturan NSG mendefinisikan port jaringan di mana lalu lintas diizinkan atau ditolak. Aturan dapat mencakup rentang alamat IP sumber dan tujuan sehingga lalu lintas dikendalikan antara sistem atau subnet tertentu. Aturan NSG juga mencakup prioritas (antara 1—dan 4096). Aturan dievaluasi dalam urutan prioritas. Aturan dengan prioritas 100 dievaluasi sebelum aturan dengan prioritas 200.

Semua NSG berisi sekumpulan aturan default. Aturan default tidak dapat dihapus, tetapi karena diberi prioritas terendah, aturan tersebut dapat ditimpa oleh aturan yang Anda buat.

Aturan default untuk NSG adalah:

  • Jaringan virtual - Lalu lintas yang bermula dan berakhir di jaringan virtual diperbolehkan untuk masuk dan keluar.
  • Internet - Lalu lintas keluar diperbolehkan, tetapi lalu lintas masuk diblokir.
  • Saldo muatan - mengizinkan saldo muatan Azure untuk menyelidiki kesehatan komputer virtual dan instans peran Anda. Jika Anda tidak menggunakan kumpulan saldo muatan, Anda bisa mengambil alih aturan ini.

Membuat grup keamanan jaringan

Grup keamanan jaringan dapat dibuat pada saat yang sama dengan VM menggunakan perintah buat vm az. Saat melakukannya, NSG dikaitkan dengan antarmuka jaringan VM dan aturan NSG dibuat secara otomatis untuk memperbolehkan lalu lintas pada port 22 dari sumber mana pun. Sebelumnya dalam tutorial ini, NSG front-end dibuat secara otomatis dengan VM front-end. Aturan NSG juga dibuat secara otomatis untuk port 22.

Dalam beberapa kasus, NSG yang dibuat sejak awal akan berguna, misalnya waktu ketika aturan SSH default tidak boleh dibuat, atau ketika NSG harus dilampirkan ke subnet.

Gunakan perintah buat nsg jaringan az untuk membuat grup keamanan jaringan.

az network nsg create --resource-group myRGNetwork --name myBackendNSG

NSG tidak dikaitkan dengan antarmuka jaringan, melainkan dengan subnet. Dalam konfigurasi ini, setiap VM yang dipasang ke subnet mewarisi aturan NSG.

Perbarui subnet yang ada bernama myBackendSubnet dengan NSG baru.

az network vnet subnet update \
  --resource-group myRGNetwork \
  --vnet-name myVNet \
  --name myBackendSubnet \
  --network-security-group myBackendNSG

Amankan lalu lintas masuk

Ketika VM front-end dibuat, aturan NSG dibuat untuk memperbolehkan lalu lintas masuk pada port 22. Aturan ini memungkinkan koneksi SSH ke VM. Untuk contoh ini, lalu lintas juga harus diperbolehkan di port 80. Konfigurasi ini memungkinkan aplikasi web untuk dapat diakses pada VM.

Gunakan perintah buat aturan nsg jaringan az dalam membuat aturan untuk port 80.

az network nsg rule create \
  --resource-group myRGNetwork \
  --nsg-name myFrontendNSG \
  --name http \
  --access allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 200 \
  --source-address-prefix "*" \
  --source-port-range "*" \
  --destination-address-prefix "*" \
  --destination-port-range 80

VM front-end hanya dapat diakses pada port 22 dan port 80. Semua lalu lintas masuk lainnya diblokir di grup keamanan jaringan. Visualisasi konfigurasi aturan NSG akan bermanfaat. Kembalikan konfigurasi aturan NSG dengan perintah daftar aturan jaringan az.

az network nsg rule list --resource-group myRGNetwork --nsg-name myFrontendNSG --output table

Amankan lalu lintas VM ke VM

Aturan grup keamanan jaringan juga dapat berlaku di antara VM. Untuk contoh ini, VM front-end perlu berkomunikasi dengan VM back-end pada port 22 dan 3306. Konfigurasi ini memungkinkan koneksi SSH dari VM front-end, dan juga memungkinkan aplikasi pada VM front-end untuk berkomunikasi dengan database MySQL back-end. Semua lalu lintas lainnya harus diblokir antara mesin virtual front-end dan back-end.

Gunakan perintah buat aturan nsg jaringan az dalam membuat aturan untuk port 22. Perhatikan bahwa argumen --source-address-prefix menentukan nilai 10.0.1.0/24. Konfigurasi ini memastikan bahwa hanya lalu lintas dari subnet front-end yang diperbolehkan melalui NSG.

az network nsg rule create \
  --resource-group myRGNetwork \
  --nsg-name myBackendNSG \
  --name SSH \
  --access Allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 100 \
  --source-address-prefix 10.0.1.0/24 \
  --source-port-range "*" \
  --destination-address-prefix "*" \
  --destination-port-range "22"

Sekarang tambahkan aturan untuk lalu lintas MySQL pada port 3306.

az network nsg rule create \
  --resource-group myRGNetwork \
  --nsg-name myBackendNSG \
  --name MySQL \
  --access Allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 200 \
  --source-address-prefix 10.0.1.0/24 \
  --source-port-range "*" \
  --destination-address-prefix "*" \
  --destination-port-range "3306"

Terakhir, karena NSG memiliki aturan default yang memungkinkan semua lalu lintas antara VM di VNet yang sama, aturan dapat dibuat untuk NSG back-end untuk memblokir semua lalu lintas. Perhatikan di sini bahwa --priority diberikan nilai 300, yang lebih rendah dari aturan NSG dan MySQL. Konfigurasi ini memastikan bahwa lalu lintas SSH dan MySQL masih diperbolehkan melalui NSG.

az network nsg rule create \
  --resource-group myRGNetwork \
  --nsg-name myBackendNSG \
  --name denyAll \
  --access Deny \
  --protocol Tcp \
  --direction Inbound \
  --priority 300 \
  --source-address-prefix "*" \
  --source-port-range "*" \
  --destination-address-prefix "*" \
  --destination-port-range "*"

Membuat VM back-end

Sekarang buatlah mesin virtual, yang dipasang pada myBackendSubnet. Perhatikan bahwa argumen --nsg memiliki nilai tanda kutip ganda kosong. NSG tidak perlu dibuat dengan VM. VM dipasang pada subnet back-end, yang dilindungi dengan NSG back-end yang telah dibuat sebelumnya. NSG ini berlaku untuk VM. Perhatikan juga bahwa argumen --public-ip-address memiliki nilai tanda kutip ganda kosong. Konfigurasi ini membuat VM tanpa alamat IP publik.

az vm create \
  --resource-group myRGNetwork \
  --name myBackendVM \
  --vnet-name myVNet \
  --subnet myBackendSubnet \
  --public-ip-address "" \
  --nsg "" \
  --image Ubuntu2204 \
  --generate-ssh-keys

VM back-end hanya dapat diakses pada port 22 dan port 3306 dari subnet front-end. Semua lalu lintas masuk lainnya diblokir di grup keamanan jaringan. Visualisasi konfigurasi aturan NSG akan bermanfaat. Kembalikan konfigurasi aturan NSG dengan perintah daftar aturan jaringan az.

az network nsg rule list --resource-group myRGNetwork --nsg-name myBackendNSG --output table

Langkah berikutnya

Dalam tutorial ini, Anda membuat dan mengamankan jaringan Azure yang terkait dengan mesin virtual. Anda mempelajari cara untuk:

  • Membuat jaringan virtual dan subnet
  • Membuat alamat IP publik
  • Membuat VM front-end
  • Mengamankan lalu lintas jaringan
  • Membuat VM back-end

Untuk mempelajari tentang melindungi disk VM Anda, lihat Cadangan dan pemulihan bencana untuk disk.