Azure Front Door için WAF ile IP kısıtlama kuralı yapılandırma

Bu makalede Azure portal, Azure CLI, Azure PowerShell veya Azure Resource Manager şablonu kullanarak Azure Front Door için web uygulaması güvenlik duvarında (WAF) IP kısıtlama kurallarını yapılandırma adımları gösterilmektedir.

IP adresi tabanlı erişim denetimi kuralı, web uygulamalarınıza erişimi denetlemenize olanak tanıyan özel bir WAF kuralıdır. Kural, Sınıfsız Inter-Domain Yönlendirme (CIDR) biçiminde IP adreslerinin veya IP adresi aralıklarının listesini belirtir.

IP adresi eşleşmesinde iki tür eşleştirme değişkeni vardır: RemoteAddr ve SocketAddr. RemoteAddr değişkeni genellikle istek üst bilgisi aracılığıyla gönderilen özgün istemci IP'dirX-Forwarded-For. SocketAddr değişkeni WAF'nin gördüğü kaynak IP adresidir. Kullanıcınız bir ara sunucunun arkasındaysa, SocketAddr genellikle proxy sunucu adresidir.

Varsayılan olarak, web uygulamanıza İnternet'ten erişilebilir. İstemcilere erişimi bilinen IP adresleri veya IP adresi aralıkları listesinden sınırlamak istiyorsanız, IP adreslerinin listesini eşleşen değerler olarak içeren ve işleci Not (doğru olarak geçersizdir) ve eylemi Blockolarak ayarlayan bir IP eşleştirme kuralı oluşturabilirsiniz. BIR IP kısıtlama kuralı uygulandıktan sonra, bu izin verilenler listesinin dışındaki adreslerden gelen istekler 403 Yasak yanıtı alır.

Azure portal ile WAF ilkesi yapılandırma

Azure portal kullanarak waf ilkesi yapılandırmak için bu adımları izleyin.

Önkoşullar

Hızlı Başlangıç: Yüksek oranda kullanılabilir bir genel web uygulaması için Azure Front Door örneği oluşturma başlığı altında açıklanan yönergeleri izleyerek bir Azure Front Door profili oluşturun.

WAF ilkesi oluşturma

  1. Azure portal Kaynak oluştur'u seçin. Arama hizmetleri ve market arama kutusuna Web uygulaması güvenlik duvarı yazın ve Enter tuşuna basın. Ardından Web Uygulaması Güvenlik Duvarı (WAF) seçeneğini belirleyin.

  2. Oluştur’u seçin.

  3. WAF ilkesi oluştur sayfasında, Temel Bilgiler sekmesini tamamlamak için aşağıdaki değerleri kullanın.

    Ayar Değer
    İlke: Global WAF (Front Door).
    Ön kapı katmanı Azure Front Door katmanınızla eşleştirmek için Premium veya Standart'ı seçin.
    Abonelik Aboneliğinizi seçin.
    Kaynak grubu Azure Front Door örneğinizin bulunduğu kaynak grubunu seçin.
    İlke adı İlkeniz için bir ad girin.
    İlke durumu Seçili.
    İlke modu Önleme.
  4. İleri: Yönetilen kurallar'ı seçin.

  5. İleri: İlke ayarları'nı seçin.

  6. İlke ayarları sekmesinde, Özel kuralınızın etkin olduğunu görebilmeniz için Yanıt gövdesini engelle! yazın.

  7. İleri: Özel kurallar'ı seçin.

  8. Özel kural ekle'yi seçin.

  9. Özel kural ekle sayfasında, özel kural oluşturmak için aşağıdaki test değerlerini kullanın.

    Ayar Değer
    Özel kural adı FdWafCustRule
    Durum Etkin
    Kural türü Eşleştirme
    Öncelik 100
    Eşleştirme türü IP Adresi
    Değişkeni eşleştir SocketAddr
    İşlem İçermez
    IP adresi veya aralık 10.10.10.0/24
    Ardından Trafiği reddet

    Özel kural

    Add (Ekle) seçeneğini belirleyin.

  10. İleri: İlişkilendirme'yi seçin.

  11. Ön kapı profilini ilişkilendir'i seçin.

  12. Ön uç profili için ön uç profilinizi seçin.

  13. Etki Alanı için etki alanını seçin.

  14. Add (Ekle) seçeneğini belirleyin.

  15. Gözden geçir ve oluştur’u seçin.

  16. İlke doğrulamanız geçtikten sonra Oluştur'u seçin.

WAF ilkenizi test edin

  1. WAF ilke dağıtımınız tamamlandıktan sonra Azure Front Door ön uç ana bilgisayar adınıza göz atın.

  2. Özel engelleme iletinizi görmeniz gerekir.

    WAF kural testi

    Not

    Özel bir IP adresi, kuralın tetikleneceğinden emin olmak için özel kuralda kasıtlı olarak kullanılmıştır. Gerçek bir dağıtımda, özel durumunuz için IP adreslerini kullanarak izin verme ve reddetme kuralları oluşturun.

Azure CLI ile WAF ilkesi yapılandırma

Azure CLI kullanarak waf ilkesi yapılandırmak için bu adımları izleyin.

Önkoşullar

BIR IP kısıtlama ilkesi yapılandırmaya başlamadan önce CLI ortamınızı ayarlayın ve bir Azure Front Door profili oluşturun.

Azure CLI ortamını ayarlama

  1. Azure CLI'yi yükleyin veya Azure Cloud Shell kullanın. Azure Cloud Shell doğrudan Azure portalının içinde çalıştırabileceğiniz ücretsiz bir Bash kabuğudur. Azure CLI, kabuğa önceden yüklenmiştir ve kabuk, hesabınızla birlikte kullanılacak şekilde yapılandırılmıştır. Aşağıdaki CLI komutlarında Deneyin düğmesini seçin. Ardından açılan Cloud Shell oturumunda Azure hesabınızda oturum açın. Oturum başladıktan sonra Azure Front Door uzantısını eklemek için girin az extension add --name front-door .
  2. CLI'yi Bash'te yerel olarak kullanıyorsanız kullanarak az loginAzure'da oturum açın.

Azure Front Door profili oluşturma

Hızlı Başlangıç: Yüksek oranda kullanılabilir bir genel web uygulaması için Azure Front Door örneği oluşturma başlığı altında açıklanan yönergeleri izleyerek bir Azure Front Door profili oluşturun.

WAF ilkesi oluşturma

az network front-door waf-policy create komutunu kullanarak bir WAF ilkesi oluşturun. Aşağıdaki örnekte IPAllowPolicyExampleCLI ilke adını benzersiz bir ilke adıyla değiştirin.

az network front-door waf-policy create \
  --resource-group <resource-group-name> \
  --subscription <subscription ID> \
  --name IPAllowPolicyExampleCLI

Özel IP erişim denetimi kuralı ekleme

Oluşturduğunuz WAF ilkesine özel bir IP erişim denetimi kuralı eklemek için az network front-door waf-policy custom-rule create komutunu kullanın.

Aşağıdaki örneklerde:

  • IPAllowPolicyExampleCLI değerini daha önce oluşturduğunuz benzersiz ilkenizle değiştirin.
  • ip-address-range-1, ip-address-range-2 yerine kendi aralığınızı yazın.

İlk olarak, önceki adımda oluşturulan ilke için bir IP izin verme kuralı oluşturun.

Not

--defer bir kuralın bir sonraki adımda eklenmesi için bir eşleşme koşulu olması gerektiğinden gereklidir.

az network front-door waf-policy rule create \
  --name IPAllowListRule \
  --priority 1 \
  --rule-type MatchRule \
  --action Block \
  --resource-group <resource-group-name> \
  --policy-name IPAllowPolicyExampleCLI --defer

Ardından, kurala bir eşleştirme koşulu ekleyin:

az network front-door waf-policy rule match-condition add \
--match-variable SocketAddr \
--operator IPMatch \
--values "ip-address-range-1" "ip-address-range-2" \
--negate true \
--name IPAllowListRule \
  --resource-group <resource-group-name> \
  --policy-name IPAllowPolicyExampleCLI

WAF ilkesinin kimliğini bulma

az network front-door waf-policy show komutunu kullanarak bir WAF ilkesinin kimliğini bulun. Aşağıdaki örnekteki IPAllowPolicyExampleCLI değerini daha önce oluşturduğunuz benzersiz ilkenizle değiştirin.

az network front-door  waf-policy show \
  --resource-group <resource-group-name> \
  --name IPAllowPolicyExampleCLI

az network front-door update komutunu kullanarak Azure Front Door WebApplicationFirewallPolicyLink Kimliğini ilke kimliğine ayarlayın. IPAllowPolicyExampleCLI değerini daha önce oluşturduğunuz benzersiz ilkenizle değiştirin.

az network front-door update \
  --set FrontendEndpoints[0].WebApplicationFirewallPolicyLink.id=/subscriptions/<subscription ID>/resourcegroups/resource-group-name/providers/Microsoft.Network/frontdoorwebapplicationfirewallpolicies/IPAllowPolicyExampleCLI \
  --name <frontdoor-name> \
  --resource-group <resource-group-name>

Bu örnekte WAF ilkesi uygulamasına FrontendEndpoints[0]uygulanır. WAF ilkesini ön uçlarınızdan herhangi birine bağlayabilirsiniz.

Not

Bir WAF ilkesini Azure Front Door ön ucuna bağlamak için özelliği yalnızca bir kez ayarlamanız WebApplicationFirewallPolicyLink gerekir. Sonraki ilke güncelleştirmeleri ön uca otomatik olarak uygulanır.

Azure PowerShell ile WAF ilkesi yapılandırma

Azure PowerShell kullanarak bir WAF ilkesi yapılandırmak için bu adımları izleyin.

Önkoşullar

BIR IP kısıtlama ilkesi yapılandırmaya başlamadan önce PowerShell ortamınızı ayarlayın ve bir Azure Front Door profili oluşturun.

PowerShell ortamınızı hazırlama

Azure PowerShell, Azure kaynaklarını yönetmek için Azure Resource Manager modelini kullanan bir cmdlet kümesi sağlar.

Azure PowerShell'i yerel makinenize yükleyebilir ve herhangi bir PowerShell oturumunda kullanabilirsiniz. Azure kimlik bilgilerinizi kullanarak PowerShell'de oturum açmak ve ardından Az modülünü yüklemek için sayfadaki yönergeleri izleyin.

  1. Aşağıdaki komutu kullanarak Azure'a bağlanın ve oturum açmak için etkileşimli bir iletişim kutusu kullanın.

    Connect-AzAccount
    
  2. Azure Front Door modülünü yüklemeden önce PowerShellGet modülünün geçerli sürümünün yüklü olduğundan emin olun. Aşağıdaki komutu çalıştırın ve PowerShell'i yeniden açın.

    Install-Module PowerShellGet -Force -AllowClobber
    
  3. Aşağıdaki komutu kullanarak Az.FrontDoor modülünü yükleyin:

    Install-Module -Name Az.FrontDoor
    

Azure Front Door profili oluşturma

Hızlı Başlangıç: Yüksek oranda kullanılabilir küresel bir web uygulaması için Front Door oluşturma başlığı altında açıklanan yönergeleri izleyerek bir Azure Front Door profili oluşturun.

IP eşleştirme koşulu tanımlama

Bir IP eşleştirme koşulu tanımlamak için New-AzFrontDoorWafMatchConditionObject komutunu kullanın. Aşağıdaki örnekte ip-address-range-1, ip-address-range-2 yerine kendi aralığınızı yazın.

$IPMatchCondition = New-AzFrontDoorWafMatchConditionObject `
-MatchVariable  SocketAddr `
-OperatorProperty IPMatch `
-MatchValue "ip-address-range-1", "ip-address-range-2"
-NegateCondition 1

Özel IP izin verme kuralı oluşturma

Bir eylem tanımlamak ve öncelik ayarlamak için New-AzFrontDoorWafCustomRuleObject komutunu kullanın. Aşağıdaki örnekte, listeyle eşleşen istemci IP'lerinden olmayan istekler engellenir.

$IPAllowRule = New-AzFrontDoorWafCustomRuleObject `
-Name "IPAllowRule" `
-RuleType MatchRule `
-MatchCondition $IPMatchCondition `
-Action Block -Priority 1

WAF ilkesi yapılandırma

kullanarak Get-AzResourceGroupAzure Front Door profilini içeren kaynak grubunun adını bulun. Ardından , New-AzFrontDoorWafPolicy kullanarak IP kuralıyla bir WAF ilkesi yapılandırın.

  $IPAllowPolicyExamplePS = New-AzFrontDoorWafPolicy `
    -Name "IPRestrictionExamplePS" `
    -resourceGroupName <resource-group-name> `
    -Customrule $IPAllowRule`
    -Mode Prevention `
    -EnabledState Enabled

İpucu

Mevcut bir WAF ilkesi için, ilkeyi güncelleştirmek için Update-AzFrontDoorWafPolicy kullanabilirsiniz.

WAF ilke nesnesini mevcut bir ön uç konağına bağlayın ve Azure Front Door özelliklerini güncelleştirin. İlk olarak , Get-AzFrontDoor kullanarak Azure Front Door nesnesini alın. Ardından, Set-AzFrontDoor komutunu kullanarak özelliğini önceki adımda oluşturulan kaynak kimliğine $IPAllowPolicyExamplePSayarlayınWebApplicationFirewallPolicyLink.

  $FrontDoorObjectExample = Get-AzFrontDoor `
    -ResourceGroupName <resource-group-name> `
    -Name $frontDoorName
  $FrontDoorObjectExample[0].FrontendEndpoints[0].WebApplicationFirewallPolicyLink = $IPBlockPolicy.Id
  Set-AzFrontDoor -InputObject $FrontDoorObjectExample[0]

Not

Bu örnekte WAF ilkesi uygulamasına FrontendEndpoints[0]uygulanır. Bir WAF ilkesini ön uçlarınızdan herhangi birine bağlayabilirsiniz. Bir WAF ilkesini Azure Front Door ön ucuna bağlamak için özelliği yalnızca bir kez ayarlamanız WebApplicationFirewallPolicyLink gerekir. Sonraki ilke güncelleştirmeleri ön uca otomatik olarak uygulanır.

Resource Manager şablonuyla WAF ilkesi yapılandırma

Azure Front Door ilkesi ve özel IP kısıtlama kuralları içeren bir WAF ilkesi oluşturan şablonu görüntülemek için GitHub'a gidin.

Sonraki adımlar

Azure Front Door profili oluşturmayı öğrenin.