Memfilter lalu lintas jaringan dengan kelompok keamanan jaringan menggunakan PowerShell

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 sebelum Anda memulai.

Azure Cloud Shell

Azure meng-hosting Azure Cloud Shell, lingkungan shell interaktif yang dapat Anda gunakan melalui browser. 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-apa 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. Screenshot that shows an example of Try It for Azure Cloud Shell.
Buka https://shell.azure.com, atau pilih tombol Luncurkan Cloud Shell untuk membuka Cloud Shell di browser Anda. Button to launch Azure Cloud Shell.
Pilih tombol Cloud Shell pada bilah menu di kanan atas di portal Microsoft Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Untuk menggunakan Azure Cloud Shell:

  1. Mulai Cloud Shell.

  2. Pilih tombol Salin pada blok kode (atau blok perintah) untuk menyalin kode atau perintah.

  3. Tempel kode atau perintah ke dalam sesi Cloud Shell dengan memilih Ctrl+Shift+V di Windows dan Linux, atau dengan memilih Cmd+Shift+V di macOS.

  4. 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 peningkatan, lihat Instal modul Azure PowerShell. Jika Anda menjalankan PowerShell secara lokal, Anda juga perlu menjalankan Connect-AzAccount untuk membuat koneksi dengan Azure.

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 New-AzResourceGroup. Contoh berikut ini membuat grup sumber daya di lokasi eastus:

New-AzResourceGroup -ResourceGroupName myResourceGroup -Location EastUS

Membuat kelompok keamanan aplikasi dengan New-AzApplicationSecurityGroup. Kelompok keamanan aplikasi memungkinkan Anda mengelompokkan server dengan persyaratan pemfilteran port yang serupa. Contoh berikut membuat dua kelompok keamanan aplikasi.

$webAsg = New-AzApplicationSecurityGroup `
  -ResourceGroupName myResourceGroup `
  -Name myAsgWebServers `
  -Location eastus

$mgmtAsg = New-AzApplicationSecurityGroup `
  -ResourceGroupName myResourceGroup `
  -Name myAsgMgmtServers `
  -Location eastus

Membuat aturan keamanan

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

$webRule = New-AzNetworkSecurityRuleConfig `
  -Name "Allow-Web-All" `
  -Access Allow `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 100 `
  -SourceAddressPrefix Internet `
  -SourcePortRange * `
  -DestinationApplicationSecurityGroupId $webAsg.id `
  -DestinationPortRange 80,443

The following example creates a rule that allows traffic inbound from the internet to the *myMgmtServers* application security group over port 3389:

$mgmtRule = New-AzNetworkSecurityRuleConfig `
  -Name "Allow-RDP-All" `
  -Access Allow `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 110 `
  -SourceAddressPrefix Internet `
  -SourcePortRange * `
  -DestinationApplicationSecurityGroupId $mgmtAsg.id `
  -DestinationPortRange 3389

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

Membuat grup keamanan jaringan

Buat grup keamanan jaringan dengan New-AzNetworkSecurityGroup. Contoh berikut membuat kelompok keamanan jaringan bernama myNsgPrivate:

$nsg = New-AzNetworkSecurityGroup `
  -ResourceGroupName myResourceGroup `
  -Location eastus `
  -Name myNsg `
  -SecurityRules $webRule,$mgmtRule

Membuat jaringan virtual

Buat jaringan virtual dengan New-AzVirtualNetwork. Contoh berikut membuat jaringan virtual bernama myAzureVNet:

$virtualNetwork = New-AzVirtualNetwork `
  -ResourceGroupName myResourceGroup `
  -Location EastUS `
  -Name myVirtualNetwork `
  -AddressPrefix 10.0.0.0/16

Membuat konfigurasi subnet dengan New-AzVirtualNetworkSubnetConfig, lalu menulis konfigurasi subnet ke jaringan virtual dengan Set-AzVirtualNetwork. Contoh berikut menambahkan subnet bernama mySubnet ke jaringan virtual dan mengaitkan kelompok keamanan jaringan myNsg ke dalamnya:

Add-AzVirtualNetworkSubnetConfig `
  -Name mySubnet `
  -VirtualNetwork $virtualNetwork `
  -AddressPrefix "10.0.2.0/24" `
  -NetworkSecurityGroup $nsg
$virtualNetwork | Set-AzVirtualNetwork

Membuat komputer virtual

Sebelum membuat VM, ambil objek jaringan virtual dengan subnet dengan Get-AzVirtualNetwork:

$virtualNetwork = Get-AzVirtualNetwork `
 -Name myVirtualNetwork `
 -Resourcegroupname myResourceGroup

Membuat alamat IP publik dengan New-AzPublicIpAddress:

$publicIpWeb = New-AzPublicIpAddress `
  -AllocationMethod Dynamic `
  -ResourceGroupName myResourceGroup `
  -Location eastus `
  -Name myVmWeb

$publicIpMgmt = New-AzPublicIpAddress `
  -AllocationMethod Dynamic `
  -ResourceGroupName myResourceGroup `
  -Location eastus `
  -Name myVmMgmt

Membuat dua antarmuka jaringan dengan New-AzNetworkInterface, dan menetapkan alamat IP publik ke antarmuka jaringan. Contoh berikut membuat antarmuka jaringan, mengaitkan alamat IP publik myVmWeb ke dalamnya, dan menjadikannya anggota kelompok keamanan aplikasi myAsgWebServers:

$webNic = New-AzNetworkInterface `
  -Location eastus `
  -Name myVmWeb `
  -ResourceGroupName myResourceGroup `
  -SubnetId $virtualNetwork.Subnets[0].Id `
  -ApplicationSecurityGroupId $webAsg.Id `
  -PublicIpAddressId $publicIpWeb.Id

Contoh berikut membuat antarmuka jaringan, mengaitkan alamat IP publik myVmWeb ke dalamnya, dan menjadikannya anggota kelompok keamanan aplikasi myAsgWebServers:

$mgmtNic = New-AzNetworkInterface `
  -Location eastus `
  -Name myVmMgmt `
  -ResourceGroupName myResourceGroup `
  -SubnetId $virtualNetwork.Subnets[0].Id `
  -ApplicationSecurityGroupId $mgmtAsg.Id `
  -PublicIpAddressId $publicIpMgmt.Id

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

Membuat konfigurasi komputer virtual dengan New-AzVMConfig, lalu buat VM dengan New-AzVM. Contoh berikut membuat VM yang akan berfungsi sebagai server web. Opsi -AsJob ini membuat VM di latar belakang, sehingga Anda bisa melanjutkan ke langkah berikutnya:

# Create user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."

$webVmConfig = New-AzVMConfig `
  -VMName myVmWeb `
  -VMSize Standard_DS1_V2 | `
Set-AzVMOperatingSystem -Windows `
  -ComputerName myVmWeb `
  -Credential $cred | `
Set-AzVMSourceImage `
  -PublisherName MicrosoftWindowsServer `
  -Offer WindowsServer `
  -Skus 2016-Datacenter `
  -Version latest | `
Add-AzVMNetworkInterface `
  -Id $webNic.Id
New-AzVM `
  -ResourceGroupName myResourceGroup `
  -Location eastus `
  -VM $webVmConfig `
  -AsJob

Membuat komputer virtual yang berfungsi sebagai server manajemen:

# Create user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."

# Create the web server virtual machine configuration and virtual machine.
$mgmtVmConfig = New-AzVMConfig `
  -VMName myVmMgmt `
  -VMSize Standard_DS1_V2 | `
Set-AzVMOperatingSystem -Windows `
  -ComputerName myVmMgmt `
  -Credential $cred | `
Set-AzVMSourceImage `
  -PublisherName MicrosoftWindowsServer `
  -Offer WindowsServer `
  -Skus 2016-Datacenter `
  -Version latest | `
Add-AzVMNetworkInterface `
  -Id $mgmtNic.Id
New-AzVM `
  -ResourceGroupName myResourceGroup `
  -Location eastus `
  -VM $mgmtVmConfig

Mesin virtual membutuhkan waktu beberapa menit untuk disebarkan. Jangan lanjutkan dengan langkah berikutnya hingga Azure selesai membuat komputer virtual.

Filter uji lalu lintas

Gunakan Get-AzPublicIpAddress untuk mengembalikan alamat IP publik komputer virtual. Contoh berikut mengembalikan alamat IP publik komputer virtualmyVmPrivate:

Get-AzPublicIpAddress `
  -Name myVmMgmt `
  -ResourceGroupName myResourceGroup `
  | Select IpAddress

Menggunakan perintah berikut untuk membuat sesi desktop jarak jauh dengan komputer virtual myVmPrivate dari komputer lokal Anda. Mengganti <publicIpAddress> dengan alamat IP yang dikembalikan dari perintah sebelumnya.

mstsc /v:<publicIpAddress>

Membuka file RDP yang diunduh. Ketika diminta, pilih Sambungkan.

Masukkan nama pengguna dan kata sandi yang Anda tentukan saat membuat komputer virtual (Anda mungkin perlu memilih Pilihan lainnya, lalu Gunakan akun lain, untuk menentukan kredensial yang Anda masukkan saat membuat komputer virtual), lalu pilih OK. Anda mungkin menerima peringatan sertifikat selama proses masuk. Pilih Ya untuk melanjutkan ke koneksi.

Koneksi berhasil, karena port 3389 diizinkan masuk dari internet ke kelompok keamanan aplikasi myAsgMgmtServers tempat antarmuka jaringan yang terpasang pada myVmMgmt VM masuk.

Menggunakan perintah berikut untuk membuat koneksi desktop jarak jauh ke komputer virtualmyVmWeb dari komputer virtualmyVmMgmt, dengan perintah berikut, dari PowerShell:

mstsc /v: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 membuat koneksi desktop jarak jauh ke komputer virtualmyVmWeb dari internet karena aturan keamanan untuk myAsgWebServers tidak mengizinkan port 3389 masuk dari internet.

Menggunakan perintah berikut untuk menginstal Microsoft IIS pada myVmWeb VM dari PowerShell:

Install-WindowsFeature -name Web-Server -IncludeManagementTools

Setelah pemasangan IIS selesai, nonaktifkan sambungan dari komputer virtual myVMWeb, yang membuat Anda berada di koneksi desktop jarak jauh komputer virtual myVMMgmt. Untuk menampilkan layar selamat datang IIS, buka browser internet dan telusuri ke http://myVmWeb.

Putuskan sambungan dari komputer virtual myVMMgmt.

Di komputer Anda, masukkan perintah berikut dari PowerShell untuk mengambil alamat IP publik server myVmWeb:

Get-AzPublicIpAddress `
  -Name myVmWeb `
  -ResourceGroupName myResourceGroup `
  | Select IpAddress

Untuk mengonfirmasi bahwa Anda dapat mengakses server web myVMWeb dari luar Azure, buka browser internet di komputer Anda dan telusuri ke http://<public-ip-address-from-previous-step>. Koneksi berhasil, karena port 80 diizinkan masuk dari internet ke kelompok keamanan aplikasi myAsgWebServers tempat antarmuka jaringan yang terpasang pada myVmWeb VM masuk.

Membersihkan sumber daya

Jika tidak lagi dibutuhkan, Anda dapat menggunakan Remove-AzResourceGroup untuk menghapus grup sumber daya dan semua sumber daya yang terkandung di dalamnya:

Remove-AzResourceGroup -Name myResourceGroup -Force

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.