Azure PowerShell kullanarak Azure Güvenlik Duvarı ilkesini dağıtma ve yapılandırma

Giden ağ erişimini denetleme, genel ağ güvenlik planının önemli bir parçasıdır. Örneğin, web sitelerine erişimi sınırlamak isteyebilirsiniz. Alternatif olarak, erişilebilen giden IP adreslerini ve bağlantı noktalarını sınırlamak da isteyebilirsiniz.

Azure Güvenlik Duvarı ve Güvenlik Duvarı İlkesi'ni kullanarak bir Azure alt ağından giden ağ erişimini denetleyebilirsiniz. Azure Güvenlik Duvarı'nı kullanarak şunları yapılandırabilirsiniz:

  • Bir alt ağdan erişilebilen tam etki alanı adlarını (FQDN) tanımlayan uygulama kuralları.
  • Kaynak adres, protokol, hedef bağlantı noktası ve hedef adresini tanımlayan ağ kuralları.

Ağ trafiğinizi güvenlik duvarından alt ağın varsayılan ağ geçidi olarak yönlendirdiğinizde ağ trafiği yapılandırılan güvenlik duvarı kurallarına tabi tutulur.

Bu makalede, kolay dağıtım için üç alt ağa sahip basitleştirilmiş bir tek sanal ağ oluşturacaksınız. Üretim dağıtımları için güvenlik duvarının kendi sanal ağında yer aldığı merkez-uç modelini kullanın. İş yükü sunucuları, bir veya daha fazla alt ağa sahip aynı bölgedeki eşlenmiş sanal ağlarda yer alır.

  • AzureFirewallSubnet - güvenlik duvarı bu alt ağdadır.
  • Workload-SN: İş yükü sunucusu bu alt ağda yer alır. Bu alt ağın ağ trafiği güvenlik duvarından geçer.
  • AzureBastionSubnet - İş yükü sunucusuna bağlanmak için kullanılan Azure Bastion için kullanılan alt ağdır.

Azure Bastion hakkında daha fazla bilgi için bkz. Azure Bastion nedir?

Önemli

Saatlik fiyatlandırma, giden veri kullanımına bakılmaksızın Bastion dağıtıldığından itibaren başlar. Daha fazla bilgi için bkz . Fiyatlandırma ve SKU'lar. Bastion'ı bir öğretici veya test kapsamında dağıtıyorsanız, kullanmayı bitirdikten sonra bu kaynağı silmenizi öneririz.

Güvenlik duvarı ağ altyapısını gösteren diyagram.

Bu makalede şunları öğreneceksiniz:

  • Test amaçlı ağ ortamı oluşturma
  • Güvenlik duvarı kurma
  • Varsayılan rota oluşturma
  • Güvenlik duvarı ilkesi oluşturma
  • Uygulama kuralını www.google.com erişime izin verecek şekilde yapılandırma
  • Dış DNS sunucularına erişime izin vermek için ağ kuralı yapılandırma
  • Güvenlik duvarını test etme

İsterseniz Azure portalını kullanarak bu yordamı tamamlayabilirsiniz.

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Önkoşullar

Bu yordam, PowerShell'i yerel olarak çalıştırmanızı gerektirir. Azure PowerShell modülünün yüklü olması gerekir. Sürümü bulmak için Get-Module -ListAvailable Az komutunu çalıştırın. Yükseltmeniz gerekirse, bkz. Azure PowerShell modülünü yükleme. PowerShell sürümünü doğruladıktan sonra, Azure ile bağlantı oluşturmak için Connect-AzAccount komutunu çalıştırın.

Ağı ayarlama

İlk olarak güvenlik duvarını dağıtmak için gerekli olan kaynakları içerecek bir kaynak grubu oluşturun. Ardından bir sanal ağ, alt ağlar ve test sunucuları oluşturun.

Kaynak grubu oluşturma

Dağıtım için bir kaynak grubu oluşturmak için New-AzResourceGroup kullanın:

New-AzResourceGroup -Name Test-FW-RG -Location "East US"

Sanal ağ ve Azure Bastion konağı oluşturma

Bu sanal ağın üç alt ağı vardır. Bunları tanımlamak için New-AzVirtualNetworkSubnetConfig kullanın:

Not

AzureFirewallSubnet alt ağı boyutu /26'dır. Alt ağ boyutu hakkında daha fazla bilgi için Azure Güvenlik Duvarı SSS'ye bakın.

$Bastionsub = New-AzVirtualNetworkSubnetConfig `
    -Name AzureBastionSubnet `
    -AddressPrefix 10.0.0.0/27
$FWsub = New-AzVirtualNetworkSubnetConfig `
    -Name AzureFirewallSubnet `
    -AddressPrefix 10.0.1.0/26
$Worksub = New-AzVirtualNetworkSubnetConfig `
    -Name Workload-SN `
    -AddressPrefix 10.0.2.0/24

New-AzVirtualNetwork kullanarak sanal ağı oluşturun:

$testVnet = New-AzVirtualNetwork `
    -Name Test-FW-VN `
    -ResourceGroupName Test-FW-RG `
    -Location "East US" `
    -AddressPrefix 10.0.0.0/16 `
    -Subnet $Bastionsub, $FWsub, $Worksub

Azure Bastion konağı için genel IP adresi oluşturma

Bastion konağı için statik bir genel IP adresi oluşturmak için New-AzPublicIpAddress kullanın:

$publicip = New-AzPublicIpAddress `
    -ResourceGroupName Test-FW-RG `
    -Location "East US" `
    -Name Bastion-pip `
    -AllocationMethod Static `
    -Sku Standard

Azure Bastion konağı oluşturma

Bastion konağı oluşturmak için New-AzBastion kullanın:

New-AzBastion `
    -ResourceGroupName Test-FW-RG `
    -Name Bastion-01 `
    -PublicIpAddress $publicip `
    -VirtualNetwork $testVnet

Sanal makine oluşturun

İş yükü sanal makinesini oluşturmak için New-AzVM kullanın. İstendiğinde bir kullanıcı adı ve parola girin:

# Create the NIC
$wsn = Get-AzVirtualNetworkSubnetConfig `
    -Name Workload-SN `
    -VirtualNetwork $testVnet
$NIC01 = New-AzNetworkInterface `
    -Name Srv-Work `
    -ResourceGroupName Test-FW-RG `
    -Location "East US" `
    -Subnet $wsn

# Define the virtual machine
$VirtualMachine = New-AzVMConfig `
    -VMName Srv-Work `
    -VMSize "Standard_DS2"
$VirtualMachine = Set-AzVMOperatingSystem `
    -VM $VirtualMachine `
    -Windows `
    -ComputerName Srv-Work `
    -ProvisionVMAgent `
    -EnableAutoUpdate
$VirtualMachine = Add-AzVMNetworkInterface `
    -VM $VirtualMachine `
    -Id $NIC01.Id
$VirtualMachine = Set-AzVMSourceImage `
    -VM $VirtualMachine `
    -PublisherName 'MicrosoftWindowsServer' `
    -Offer 'WindowsServer' `
    -Skus '2019-Datacenter' `
    -Version latest

# Create the virtual machine
New-AzVM `
    -ResourceGroupName Test-FW-RG `
    -Location "East US" `
    -VM $VirtualMachine `
    -Verbose

Güvenlik duvarı ilkesi oluşturma

New-AzFirewallPolicy kullanarak güvenlik duvarı ilkesini oluşturun:

$fwpol = New-AzFirewallPolicy `
    -Name fw-pol `
    -ResourceGroupName Test-FW-RG `
    -Location "East US"

Güvenlik duvarı ilke uygulama kuralını yapılandırın

New-AzFirewallPolicyApplicationRule ve New-AzFirewallPolicyFilterRuleCollection kullanarak www.google.com öğesine giden dış erişim veren bir uygulama kuralı oluşturun.

$RCGroup = New-AzFirewallPolicyRuleCollectionGroup `
    -Name AppRCGroup `
    -Priority 100 `
    -FirewallPolicyObject $fwpol
$apprule1 = New-AzFirewallPolicyApplicationRule `
    -Name Allow-google `
    -SourceAddress "10.0.2.0/24" `
    -Protocol "http:80","https:443" `
    -TargetFqdn www.google.com
$appcoll1 = New-AzFirewallPolicyFilterRuleCollection `
    -Name App-coll01 `
    -Priority 100 `
    -Rule $apprule1 `
    -ActionType "Allow"
Set-AzFirewallPolicyRuleCollectionGroup `
    -Name $RCGroup.Name `
    -Priority 100 `
    -RuleCollection $appcoll1 `
    -FirewallPolicyObject $fwpol

Azure Güvenlik Duvarı'nda varsayılan olarak izin verilen altyapı FQDN'leri için yerleşik bir kural koleksiyonu bulunur. Bu FQDN'ler platforma özgü olup başka amaçlarla kullanılamaz. Daha fazla bilgi için bkz. Altyapı FQDN'leri.

Güvenlik duvarı ilkesi ağ kuralı yapılandırma

53 numaralı bağlantı noktasında (DNS) iki IP adresine giden erişim veren bir ağ kuralı oluşturmak için New-AzFirewallPolicyNetworkRule ve New-AzFirewallPolicyFilterRuleCollection kullanın:

$RCGroup = New-AzFirewallPolicyRuleCollectionGroup `
    -Name NetRCGroup `
    -Priority 200 `
    -FirewallPolicyObject $fwpol
$netrule1 = New-AzFirewallPolicyNetworkRule `
    -Name Allow-DNS `
    -Protocol UDP `
    -SourceAddress 10.0.2.0/24 `
    -DestinationAddress 209.244.0.3,209.244.0.4 `
    -DestinationPort 53
$netcoll1 = New-AzFirewallPolicyFilterRuleCollection `
    -Name Net-coll01 `
    -Priority 200 `
    -Rule $netrule1 `
    -ActionType "Allow"
Set-AzFirewallPolicyRuleCollectionGroup `
    -Name $RCGroup.Name `
    -Priority 200 `
    -RuleCollection $netcoll1 `
    -FirewallPolicyObject $fwpol

Güvenlik duvarını dağıt.

Güvenlik duvarını sanal ağa dağıtmak için New-AzPublicIpAddress ve New-AzFirewall kullanın:

# Get a Public IP for the firewall
$FWpip = New-AzPublicIpAddress `
    -Name "fw-pip" `
    -ResourceGroupName Test-FW-RG `
    -Location "East US" `
    -AllocationMethod Static `
    -Sku Standard
# Create the firewall
$Azfw = New-AzFirewall `
    -Name Test-FW01 `
    -ResourceGroupName Test-FW-RG `
    -Location "East US" `
    -VirtualNetwork $testVnet `
    -PublicIpAddress $FWpip `
    -FirewallPolicyId $fwpol.Id

# Save the firewall private IP address for future use

$AzfwPrivateIP = $Azfw.IpConfigurations.privateipaddress
$AzfwPrivateIP

Özel IP adresini not edin. Bunu daha sonra varsayılan yolu oluştururken kullanırsınız.

Varsayılan rota oluşturma

New-AzRouteTable ve Add-AzRouteConfig kullanarak güvenlik duvarını işaret eden varsayılan bir yol tablosu oluşturun ve ardından bunu iş yükü alt ağıyla ilişkilendirin:

$routeTableDG = New-AzRouteTable `
    -Name Firewall-rt-table `
    -ResourceGroupName Test-FW-RG `
    -Location "East US" `
    -DisableBgpRoutePropagation

# Create a route
Add-AzRouteConfig `
    -Name "DG-Route" `
    -RouteTable $routeTableDG `
    -AddressPrefix 0.0.0.0/0 `
    -NextHopType "VirtualAppliance" `
    -NextHopIpAddress $AzfwPrivateIP `
    | Set-AzRouteTable

# Associate the route table to the subnet
Set-AzVirtualNetworkSubnetConfig `
    -VirtualNetwork $testVnet `
    -Name Workload-SN `
    -AddressPrefix 10.0.2.0/24 `
    -RouteTable $routeTableDG | Set-AzVirtualNetwork

Srv-Work ağ arabiriminin birincil ve ikincil DNS adresini değiştirme

Bu yordamda test amacıyla sunucunun birincil ve ikincil DNS adreslerini yapılandırın. Bu yapılandırma genel bir Azure Güvenlik Duvarı gereksinimi değildir.

$NIC01.DnsSettings.DnsServers.Add("209.244.0.3")
$NIC01.DnsSettings.DnsServers.Add("209.244.0.4")
$NIC01 | Set-AzNetworkInterface

Güvenlik duvarını test etme

Şimdi güvenlik duvarını test edin ve beklendiği gibi çalıştığını onaylayın.

  1. Bastion kullanarak Srv-Work sanal makinesine bağlanın ve oturum açın.

    Azure Bastion kullanarak Srv-Work sanal makineye bağlantıyı gösteren ekran görüntüsü.

  2. Srv-Work'te bir PowerShell penceresi açın ve aşağıdaki komutları çalıştırın:

    nslookup www.google.com
    nslookup www.microsoft.com
    

    Her iki komut da, DNS sorgularınızın güvenlik duvarından geçtiğini gösteren yanıtlar döndürür.

  3. Aşağıdaki komutları çalıştırın:

    Invoke-WebRequest -Uri https://www.google.com
    
    Invoke-WebRequest -Uri https://www.microsoft.com
    

    İstekler www.google.com başarılı olur ve www.microsoft.com istekler başarısız olur. Bu sonuç, güvenlik duvarı kurallarınızın beklendiği gibi çalıştığını gösterir.

Şimdi güvenlik duvarı ilkesi kurallarının çalıştığını doğruladınız:

  • Yapılandırılmış dış DNS sunucusunu kullanarak DNS adlarını çözümleyebilirsiniz.
  • İzin verilen bir FQDN'ye erişebilirsiniz, ancak diğerlerine erişemezsiniz.

Kaynakları temizleme

Daha fazla test için güvenlik duvarı kaynaklarınızı koruyabilirsiniz. Artık bunlara ihtiyacınız yoksa, güvenlik duvarıyla ilgili tüm kaynakları silmek için Test-FW-RG kaynak grubunu silin:

Remove-AzResourceGroup -Name Test-FW-RG

Sonraki adımlar