Powershell ile Azure Yonetimi – IaaS – Part 5 – Network Security Group Olusturmak

Network Security Group objeleri Azure icinde oldukca yuksek oneme sahiptirler. Nedeni ise iceriden disariya ve disaridan iceriye tum ag kontrolunu saglamalaridir. Buna basit bir Firewall gibi de dusunebilirsiniz.
Hangi portlarin hangi noktadan hangi noktaya erisilebilir olmasi gerektigini belirledigimiz yer de tam burasi iste.
Tabi NSG konfigurasyonu yapilirken dikkat edilmesi gereken bir cok unsur bulunur. Bunlardan bazilari sunlardir:

  • Azure servislerinin erisimi
  • Hangi servisin hangi portu kullandigi bilgisi
  • Kurallarin onceliklendirilmesidir.

Bu ornekte Powershell ile Azure uzerinde basit bir NSG olusturup kurallari nasil yonetebilecegimize bakacagiz. Farkli senaryolar icin sorunuz olursa bana ulasabilirsiniz.
[crayon]
New-AzureRmNetworkSecurityGroup `
-Name TestNSG01 `
-ResourceGroupName ResourceGroup001 `
-Location “East US”
[/crayon]
Goruldugu gibi bos bor NSG olustu bile. Aslinda buna bo demek cok da dogru olmaz. Zira, otomatik olarak default kurallar NSG icine yerlestirildi.

Dikkat edilirse en alt seviye Priority bilgisiyle default kurallar otomatik olarak yerlestirildi. Yani bu varsayilan kural siralamasinda en alt sirada yer aliyorlar. Bu sebeple ust siralara yerlestirecegimiz kurallarin ozenle secilmesi ve yerlestirilmesi gerekiyor. Ornegin sadece ihtiyacimiz olan portlari acip hemen akabinde diger butun trafigi engellemek yaygin orneklerden sadece bir tanesi. O halde ben de bu bos NSG icine 3389 numarali portu ekleyeyim ve diger butun portlari engelleyeyim.
[crayon]
$nsg = Get-AzureRmNetworkSecurityGroup -Name TestNSG01 -ResourceGroupName ResourceGroup001
$nsg | Add-AzureRmNetworkSecurityRuleConfig -Name rule01 -Description “Allow RDP port” -Access Allow `
-Protocol * -Direction Inbound -Priority 3389 -SourceAddressPrefix “*” -SourcePortRange * `
-DestinationAddressPrefix * -DestinationPortRange 3389
$nsg | Set-AzureRmNetworkSecurityGroup
[/crayon]

Son olarak olusturdugumuz bu NSG’yi var olan bir Subnet’e atayacagim. Boylece o Subnet’i kullanan VM ya da VM’ler bu NSG uzerinden kurallardan dogrudan etkilenecekler.
[crayon]
$vnet=Get-AzureRmVirtualNetwork -Name VirtualNetwork001 -ResourceGroupName ResourceGroup001
Set-AzureRmVirtualNetworkSubnetConfig -name default -NetworkSecurityGroup $nsg -VirtualNetwork $vnet -AddressPrefix 192.168.1.0/24
$vnet | Set-AzureRmVirtualNetwork
[/crayon]
NSG’leri isterseniz dogrudan NIC (network interface card) uzerine de atayabilirsiniz. Boylece butun Subnet yerine sadece o NIC’I kullanan VM etkilenecektir.