Memfilter lalu lintas jaringan VM masuk dan keluar
Sampel skrip ini membuat jaringan virtual dengan subnet ujung depan dan ujung belakang. Lalu lintas masuk ke subnet ujung depan terbatas pada HTTP dan HTTPS, sementara lalu lintas keluar ke Internet dan subnet ujung belakang tidak diizinkan. Setelah menjalankan skrip, Anda akan memiliki satu komputer virtual dengan dua NIC. Setiap NIC terhubung ke subnet yang berbeda.
Jika diperlukan, pasang Azure PowerShell menggunakan instruksi yang ditemukan di panduan Azure PowerShell, lalu jalankan Connect-AzAccount untuk membuat koneksi dengan Azure.
Jika Anda tidak memiliki langganan Azure, buat akun gratis Azure sebelum memulai.
Skrip sampel
Catatan
Artikel ini menggunakan modul Azure Az PowerShell, yang merupakan modul PowerShell yang direkomendasikan untuk berinteraksi dengan Azure. Untuk mulai menggunakan modul Az PowerShell, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.
# Variables for common values
$rgName='MyResourceGroup'
$location='eastus'
# Create user object
$cred = Get-Credential -Message 'Enter a username and password for the virtual machine.'
# Create a resource group.
New-AzResourceGroup -Name $rgName -Location $location
# Create a virtual network, a front-end subnet, and a back-end subnet.
$fesubnet = New-AzVirtualNetworkSubnetConfig -Name 'MySubnet-FrontEnd' -AddressPrefix '10.0.1.0/24'
$besubnet = New-AzVirtualNetworkSubnetConfig -Name 'MySubnet-BackEnd' -AddressPrefix '10.0.2.0/24'
$vnet = New-AzVirtualNetwork -ResourceGroupName $rgName -Name 'MyVnet' -AddressPrefix '10.0.0.0/16' `
-Location $location -Subnet $fesubnet, $besubnet
# Create NSG rules to allow HTTP & HTTPS traffic inbound.
$rule1 = New-AzNetworkSecurityRuleConfig -Name 'Allow-HTTP-ALL' -Description 'Allow HTTP' `
-Access Allow -Protocol Tcp -Direction Inbound -Priority 100 `
-SourceAddressPrefix Internet -SourcePortRange * `
-DestinationAddressPrefix * -DestinationPortRange 80
$rule2 = New-AzNetworkSecurityRuleConfig -Name 'Allow-HTTPS-All' -Description 'Allow HTTPS' `
-Access Allow -Protocol Tcp -Direction Inbound -Priority 200 `
-SourceAddressPrefix Internet -SourcePortRange * `
-DestinationAddressPrefix * -DestinationPortRange 443
# Create an NSG rule to allow RDP traffic in from the Internet to the front-end subnet.
$rule3 = New-AzNetworkSecurityRuleConfig -Name 'Allow-RDP-All' -Description 'Allow RDP' `
-Access Allow -Protocol Tcp -Direction Inbound -Priority 300 `
-SourceAddressPrefix Internet -SourcePortRange * `
-DestinationAddressPrefix * -DestinationPortRange 3389
# Create a network security group (NSG) for the front-end subnet.
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $RgName -Location $location `
-Name "MyNsg-FrontEnd" -SecurityRules $rule1,$rule2,$rule3
# Associate the front-end NSG to the front-end subnet.
Set-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name 'MySubnet-FrontEnd' `
-AddressPrefix 10.0.1.0/24 -NetworkSecurityGroup $nsg
# Create an NSG rule to block all outbound traffic from the back-end subnet to the Internet (inbound blocked by default).
$rule1 = New-AzNetworkSecurityRuleConfig -Name 'Deny-Internet-All' -Description "Deny all Internet" `
-Access Allow -Protocol Tcp -Direction Outbound -Priority 100 `
-SourceAddressPrefix * -SourcePortRange * `
-DestinationAddressPrefix Internet -DestinationPortRange *
# Create a network security group for the back-end subnet.
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $RgName -Location $location `
-Name "MyNsg-BackEnd" -SecurityRules $rule1
# Associate the back-end NSG to the back-end subnet.
Set-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name 'MySubnet-backEnd' `
-AddressPrefix 10.0.2.0/24 -NetworkSecurityGroup $nsg
# Create a public IP address for the VM front-end network interface.
$publicipvm = New-AzPublicIpAddress -ResourceGroupName $rgName -Name 'MyPublicIp-FrontEnd' `
-location $location -AllocationMethod Dynamic
# Create a network interface for the VM attached to the front-end subnet.
$nicVMfe = New-AzNetworkInterface -ResourceGroupName $rgName -Location $location `
-Name MyNic-FrontEnd -PublicIpAddress $publicipvm -Subnet $vnet.Subnets[0]
# Create a network interface for the VM attached to the back-end subnet.
$nicVMbe = New-AzNetworkInterface -ResourceGroupName $rgName -Location $location `
-Name MyNic-BackEnd -Subnet $vnet.Subnets[1]
# Create the VM with both the FrontEnd and BackEnd NICs.
$vmConfig = New-AzVMConfig -VMName 'myVM' -VMSize Standard_DS2 | `
Set-AzVMOperatingSystem -Windows -ComputerName 'myVM' -Credential $cred | `
Set-AzVMSourceImage -PublisherName 'MicrosoftWindowsServer' -Offer 'WindowsServer' `
-Skus '2016-Datacenter' -Version 'latest'
$vmconfig = Add-AzVMNetworkInterface -VM $vmConfig -id $nicVMfe.Id -Primary
$vmconfig = Add-AzVMNetworkInterface -VM $vmConfig -id $nicVMbe.Id
# Create a virtual machine
$vm = New-AzVM -ResourceGroupName $rgName -Location $location -VM $vmConfig
Menghapus penyebaran
Jalankan perintah berikut untuk menghapus grup sumber daya, VM, dan semua sumber daya terkait.
Remove-AzResourceGroup -Name myResourceGroup
Penjelasan skrip
Skrip ini menggunakan perintah berikut untuk membuat grup sumber daya, jaringan virtual, dan grup keamanan jaringan. Setiap perintah dalam tabel ditautkan ke dokumentasi spesifik perintah.
| Perintah | Catatan |
|---|---|
| Baru-AzResourceGroup | Membuat grup sumber daya tempat semua sumber daya disimpan. |
| New-AzVirtualNetworkSubnetConfig | Membuat objek konfigurasi subnet |
| New-AzVirtualNetwork | Membuat jaringan virtual Azure dan subnet ujung depan. |
| New-AzNetworkSecurityRuleConfig | Membuat aturan keamanan yang akan ditetapkan ke grup keamanan jaringan. |
| New-AzNetworkSecurityGroup | Membuat aturan NSG yang memperbolehkan atau memblokir port tertentu ke subnet tertentu. |
| Set-AzVirtualNetworkSubnetConfig | Mengaitkan NSG ke subnet. |
| New-AzPublicIpAddress | Membuat alamat IP publik untuk mengakses VM dari internet. |
| New-AzNetworkInterface | Membuat antarmuka jaringan virtual dan melampirkannya ke subnet ujung depan dan ujung belakang jaringan virtual. |
| New-AzVMConfig | Membuat konfigurasi komputer virtual. Konfigurasi ini mencakup informasi seperti nama komputer virtual, sistem operasi, dan kredensial administratif. Konfigurasi digunakan selama pembuatan komputer virtual. |
| New-AzVM | Membuat komputer virtual. |
| Remove-AzResourceGroup | Menghapus grup sumber daya dan semua sumber daya yang ada di dalamnya. |
Langkah berikutnya
Untuk informasi selengkapnya tentang Azure PowerShell, lihat dokumentasi Azure PowerShell.
Contoh skrip PowerShell jaringan tambahan dapat ditemukan di dokumentasi Gambaran Umum Jaringan Azure.