Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Web Uygulaması Güvenlik Duvarı (WAF) ile bir uygulama ağ geçidindeki trafiği kısıtlayabilirsiniz. WAF, uygulamanızı korumak için OWASP kurallarını kullanır. Bu kurallar SQL ekleme, siteler arası betik saldırıları ve oturum ele geçirme gibi saldırılara karşı korumayı içerir.
Bu makalede şunların nasıl yapılacağını öğreneceksiniz:
- Ağı ayarlama
- WAF etkinken bir uygulama ağ geçidi oluşturma
- Sanal makine ölçek kümesi oluştur
- Bir depolama hesabı oluşturma ve tanılamaları yapılandırma
İsterseniz, Azure portal veya Azure CLI kullanarak bu makaleyi tamamlayabilirsiniz.
Eğer bir Azure aboneliğiniz yoksa, başlamadan önce ücretsiz bir hesap oluşturun.
Uyarı
Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.
Azure Cloud Shell
Azure, tarayıcınız aracılığıyla kullanabileceğiniz etkileşimli bir kabuk ortamı olan Azure Cloud Shell'i barındırıyor. Azure hizmetleriyle çalışmak için Cloud Shell ile Bash veya PowerShell kullanabilirsiniz. Yerel ortamınıza herhangi bir şey yüklemek zorunda kalmadan bu makaledeki kodu çalıştırmak için Cloud Shell önceden yüklenmiş komutlarını kullanabilirsiniz.
Azure Cloud Shell'i başlatmak için:
| Seçenek | Örnek/Bağlantı |
|---|---|
| Kodun veya komut bloğunun sağ üst köşesindeki Deneyin'i seçin. Deneyin seçildiğinde kod veya komut otomatik olarak Cloud Shell'e kopyalanmaz. |
|
| https://shell.azure.comadresine gidin veya Cloud Shell'i tarayıcınızda açmak için Cloud Shell'i Başlat düğmesini seçin. | Azure Cloud Shell'i başlatmak için ![]() |
| Azure portalının sağ üst kısmındaki menü çubuğunda Cloud Shell düğmesini seçin. |
|
Azure Cloud Shell'i kullanmak için:
Cloud Shell'i başlatın.
Kodu veya komutu kopyalamak için kod bloğundaki (veya komut bloğundaki) Kopyala düğmesini seçin.
Kodu veya komutu Cloud Shell oturumuna yapıştırmak için Windows ve Linux'ta Ctrl+Shift+V seçeneğini veya macOS'ta Cmd+Shift+V seçeneğini kullanın.
Kodu veya komutu çalıştırmak için Enter'ı seçin.
PowerShell'i yerel olarak yükleyip kullanmayı seçerseniz, bu makale Azure PowerShell modülü 1.0.0 veya sonraki bir sürümünü gerektirir. Sürümü bulmak için Get-Module -ListAvailable Az komutunu çalıştırın. Yükseltmeniz gerekiyorsa bkz. Azure PowerShell modülünü yükleme. PowerShell'i yerel olarak çalıştırıyorsanız Azure ile bağlantı oluşturmak için de komutunu çalıştırmanız Login-AzAccount gerekir.
Bir kaynak grubu oluşturun
Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. New-AzResourceGroup kullanarak bir Azure kaynak grubu oluşturun.
$location = "eastus"
$rgname = New-AzResourceGroup -Name myResourceGroupAG -Location $location
Ağ kaynakları oluşturma
New-AzVirtualNetworkSubnetConfig kullanarak myBackendSubnet ve myAGSubnet adlı alt ağ yapılandırmalarını oluşturun. Alt ağ yapılandırmalarıyla New-AzVirtualNetwork komutunu kullanarak myVNet adlı sanal ağı oluşturun. Son olarak, New-AzPublicIpAddress komutunu kullanarak myAGPublicIPAddress adlı genel IP adresini oluşturun. Bu kaynaklar, uygulama ağ geçidi ve ilişkili kaynakları ile ağ bağlantısı sağlamak için kullanılır.
$backendSubnetConfig = New-AzVirtualNetworkSubnetConfig `
-Name myBackendSubnet `
-AddressPrefix 10.0.1.0/24
$agSubnetConfig = New-AzVirtualNetworkSubnetConfig `
-Name myAGSubnet `
-AddressPrefix 10.0.2.0/24
$vnet = New-AzVirtualNetwork `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-Name myVNet `
-AddressPrefix 10.0.0.0/16 `
-Subnet $backendSubnetConfig, $agSubnetConfig
$pip = New-AzPublicIpAddress `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-Name myAGPublicIPAddress `
-AllocationMethod Static `
-Sku Standard
Uygulama ağ geçidi oluşturma
Bu bölümde, uygulama ağ geçidini destekleyen kaynaklar oluşturacak ve son olarak bunu ve bir WAF'yi oluşturacaksınız. Oluşturduğunuz kaynaklar şunlardır:
- IP yapılandırmaları ve ön uç bağlantı noktası - Daha önce oluşturduğunuz alt ağı uygulama ağ geçidiyle ilişkilendirir ve bu alt ağa erişmek için kullanılacak bir bağlantı noktası atar.
- Varsayılan havuz - Tüm uygulama ağ geçitlerinin en az bir arka uç sunucu havuzu olması gerekir.
- Varsayılan dinleyici ve kural - Varsayılan dinleyici, atanan bağlantı noktasındaki trafiği dinler ve varsayılan kural, trafiği varsayılan havuza gönderir.
IP yapılandırmaları ve ön uç bağlantı noktası oluşturma
Daha önce oluşturduğunuz myAGSubnet'i New-AzApplicationGatewayIPConfiguration kullanarak uygulama ağ geçidiyle ilişkilendirin. New-AzApplicationGatewayFrontendIPConfig komutunu kullanarak uygulama ağ geçidine myAGPublicIPAddress atayın.
$vnet = Get-AzVirtualNetwork `
-ResourceGroupName myResourceGroupAG `
-Name myVNet
$subnet=$vnet.Subnets[1]
$gipconfig = New-AzApplicationGatewayIPConfiguration `
-Name myAGIPConfig `
-Subnet $subnet
$fipconfig = New-AzApplicationGatewayFrontendIPConfig `
-Name myAGFrontendIPConfig `
-PublicIPAddress $pip
$frontendport = New-AzApplicationGatewayFrontendPort `
-Name myFrontendPort `
-Port 80
Arka plan havuzunu ve ayarları oluşturun
New-AzApplicationGatewayBackendAddressPool komutunu kullanarak uygulama ağ geçidi için appGatewayBackendPool adlı arka uç havuzunu oluşturun. New-AzApplicationGatewayBackendHttpSettings komutunu kullanarak arka uç adres havuzlarının ayarlarını yapılandırın.
$defaultPool = New-AzApplicationGatewayBackendAddressPool `
-Name appGatewayBackendPool
$poolSettings = New-AzApplicationGatewayBackendHttpSettings `
-Name myPoolSettings `
-Port 80 `
-Protocol Http `
-CookieBasedAffinity Enabled `
-RequestTimeout 120
Varsayılan dinleyici ve kural oluşturma
Uygulama ağ geçidinin trafiği arka uç adres havuzlarına uygun şekilde yönlendirmesini sağlamak için bir dinleyici gerekir. Bu örnekte, kök URL’deki trafiği dinleyen temel bir dinleyici oluşturacaksınız.
New-AzApplicationGatewayHttpListener kullanarak, daha önce oluşturduğunuz ön uç yapılandırması ve ön uç bağlantı noktasıyla mydefaultListener adlı bir dinleyici oluşturun. Dinleyicinin gelen trafik için hangi arka plan havuzunu kullanacağını belirlemesi için bir kural gerekir. New-AzApplicationGatewayRequestRoutingRule komutunu kullanarak rule1 adlı temel bir kural oluşturun.
$defaultlistener = New-AzApplicationGatewayHttpListener `
-Name mydefaultListener `
-Protocol Http `
-FrontendIPConfiguration $fipconfig `
-FrontendPort $frontendport
$frontendRule = New-AzApplicationGatewayRequestRoutingRule `
-Name rule1 `
-RuleType Basic `
-Priority 1000 `
-HttpListener $defaultlistener `
-BackendAddressPool $defaultPool `
-BackendHttpSettings $poolSettings
WAF ile uygulama ağ geçidini oluşturma
Gerekli destekleyici kaynakları oluşturduğunuza göre, New-AzApplicationGatewaySku kullanarak uygulama ağ geçidi için parametreleri belirtin. New-AzApplicationGatewayFirewallPolicy kullanarak Güvenlik Duvarı İlkesi'ni belirtin. Ardından New-AzApplicationGateway kullanarak myAppGateway adlı uygulama ağ geçidini oluşturun.
$sku = New-AzApplicationGatewaySku `
-Name WAF_v2 `
-Tier WAF_v2 `
-Capacity 2
$policySetting = New-AzApplicationGatewayFirewallPolicySetting `
-Mode Prevention -State Enabled `
-MaxRequestBodySizeInKb 100 -MaxFileUploadInMb 256
$wafPolicy = New-AzApplicationGatewayFirewallPolicy -Name wafpolicyNew -ResourceGroup myResourceGroupAG `
-Location $location -PolicySetting $PolicySetting
$appgw = New-AzApplicationGateway `
-Name myAppGateway `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-BackendAddressPools $defaultPool `
-BackendHttpSettingsCollection $poolSettings `
-FrontendIpConfigurations $fipconfig `
-GatewayIpConfigurations $gipconfig `
-FrontendPorts $frontendport `
-HttpListeners $defaultlistener `
-RequestRoutingRules $frontendRule `
-Sku $sku `
-FirewallPolicy $wafPolicy
Sanal makine ölçek kümesi oluştur
Bu örnekte, uygulama ağ geçidindeki arka uç havuzu için sunucular sağlamak üzere bir sanal makine ölçek kümesi oluşturursunuz. IP ayarlarını yapılandırırken ölçek kümesini arka uç havuzuna atayın.
Bu betiği çalıştırmadan önce kullanıcı adı< ve parolayı değerlerinizle değiştirin>.<>
$vnet = Get-AzVirtualNetwork `
-ResourceGroupName myResourceGroupAG `
-Name myVNet
$appgw = Get-AzApplicationGateway `
-ResourceGroupName myResourceGroupAG `
-Name myAppGateway
$backendPool = Get-AzApplicationGatewayBackendAddressPool `
-Name appGatewayBackendPool `
-ApplicationGateway $appgw
$ipConfig = New-AzVmssIpConfig `
-Name myVmssIPConfig `
-SubnetId $vnet.Subnets[0].Id `
-ApplicationGatewayBackendAddressPoolsId $backendPool.Id
$vmssConfig = New-AzVmssConfig `
-Location eastus `
-SkuCapacity 2 `
-SkuName Standard_DS2 `
-UpgradePolicyMode Automatic
Set-AzVmssStorageProfile $vmssConfig `
-ImageReferencePublisher MicrosoftWindowsServer `
-ImageReferenceOffer WindowsServer `
-ImageReferenceSku 2016-Datacenter `
-ImageReferenceVersion latest `
-OsDiskCreateOption FromImage
Set-AzVmssOsProfile $vmssConfig `
-AdminUsername <username> `
-AdminPassword "<password>" `
-ComputerNamePrefix myvmss
Add-AzVmssNetworkInterfaceConfiguration `
-VirtualMachineScaleSet $vmssConfig `
-Name myVmssNetConfig `
-Primary $true `
-IPConfiguration $ipConfig
New-AzVmss `
-ResourceGroupName myResourceGroupAG `
-Name myvmss `
-VirtualMachineScaleSet $vmssConfig
IIS yükleme
$publicSettings = @{ "fileUris" = (,"https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/appgatewayurl.ps1");
"commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File appgatewayurl.ps1" }
$vmss = Get-AzVmss -ResourceGroupName myResourceGroupAG -VMScaleSetName myvmss
Add-AzVmssExtension -VirtualMachineScaleSet $vmss `
-Name "customScript" `
-Publisher "Microsoft.Compute" `
-Type "CustomScriptExtension" `
-TypeHandlerVersion 1.8 `
-Setting $publicSettings
Update-AzVmss `
-ResourceGroupName myResourceGroupAG `
-Name myvmss `
-VirtualMachineScaleSet $vmss
Bir depolama hesabı oluşturma ve tanılamaları yapılandırma
Bu makalede, uygulama ağ geçidi algılama ve önleme amacıyla verileri depolamak için bir depolama hesabı kullanır. Verileri kaydetmek için Azure İzleyici günlüklerini veya Olay Hub'ını da kullanabilirsiniz.
Depolama hesabını oluşturma
New-AzStorageAccount kullanarak myagstore1 adlı bir depolama hesabı oluşturun.
$storageAccount = New-AzStorageAccount `
-ResourceGroupName myResourceGroupAG `
-Name myagstore1 `
-Location eastus `
-SkuName "Standard_LRS"
Tanılamayı yapılandırın
Set-AzDiagnosticSetting kullanarak ApplicationGatewayAccessLog, ApplicationGatewayPerformanceLog ve ApplicationGatewayFirewallLog günlüklerine veri kaydetmek için tanılamayı yapılandırın.
$appgw = Get-AzApplicationGateway `
-ResourceGroupName myResourceGroupAG `
-Name myAppGateway
$store = Get-AzStorageAccount `
-ResourceGroupName myResourceGroupAG `
-Name myagstore1
Set-AzDiagnosticSetting `
-ResourceId $appgw.Id `
-StorageAccountId $store.Id `
-Category ApplicationGatewayAccessLog, ApplicationGatewayPerformanceLog, ApplicationGatewayFirewallLog `
-Enabled $true `
-RetentionEnabled $true `
-RetentionInDays 30
Uygulama ağ geçidini test edin
Uygulama ağ geçidinin genel IP adresini almak için Get-AzPublicIPAddress kullanabilirsiniz. Genel IP adresini kopyalayıp tarayıcınızın adres çubuğuna yapıştırın.
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress
Kaynakları temizle
Artık gerekli olmadığında Remove-AzResourceGroup kullanarak kaynak grubunu, uygulama ağ geçidini ve tüm ilgili kaynakları kaldırın.
Remove-AzResourceGroup -Name myResourceGroupAG
