Ana içeriğe geç

Akamai için Wallarm Bağlayıcısı

API’lerini Akamai CDN özellikleri üzerinden sunan müşteriler için Wallarm, özel bir EdgeWorker kod paketi sağlar. Bu EdgeWorker’ı dağıttığınızda, istekler origin’e ulaşmadan önce denetim ve koruma için bir Wallarm node’una yönlendirilir. Bu yaklaşım, origin altyapısında değişiklik yapmadan API trafiğini doğrudan edge üzerinde güvence altına almanıza imkân tanır.

Wallarm’ı Akamai için bir bağlayıcı olarak kullanmak için, Wallarm node’unu harici olarak dağıtmanız ve trafiği analiz için Wallarm node’una yönlendirmek üzere Akamai’de Wallarm tarafından sağlanan kod paketini uygulamanız gerekir.

Akamai için Wallarm bağlayıcısı hem senkron (in-line) hem de asenkron (out‑of‑band) trafik analizini destekler:

!Wallarm EdgeWorker ile Akamai senkron trafik akışı

!Wallarm EdgeWorker ile Akamai asenkron trafik akışı

Kullanım durumları

Bu çözüm, Akamai CDN üzerinden sunulan API’lerin güvence altına alınması için önerilir.

Sınırlamalar

Akamai için Wallarm bağlayıcısının bazı sınırlamaları vardır:

  • When deploying the Wallarm service with the LoadBalancer type using the Helm chart, a trusted SSL/TLS certificate is required for the domain. Self-signed certificates are not yet supported.

  • Custom blocking page and blocking code configurations are not yet supported.

    All blocked malicious traffic is returned with status code 403 and the default block page.

  • Rate limiting by Wallarm rules is not supported.

    Rate limiting cannot be enforced on the Wallarm side for this connector. If you need rate limiting, use the features built into your API gateway or cloud platform.

  • Multitenancy is not supported.

    All protected APIs are managed under a single Wallarm account; separating protection across multiple accounts for different infrastructures or environments is not yet supported.

Buna ek olarak, aşağıdaki EdgeWorkers platform kısıtlamaları bağlayıcı tasarımını etkiler:

  • httpRequest alan adı kısıtı – Bir EdgeWorker’dan yapılan alt istekler, zaten Akamai tarafından sunulan bir alan adını (yani yapılandırılmış bir property) hedeflemelidir

  • Yalnızca HTTPS alt istekleri – Başka bir protokol belirtilirse, EdgeWorkers bunu otomatik olarak HTTPS’e dönüştürür

  • Olay modeli kısıtı – İstek ve yanıt gövdelerine yalnızca responseProvider olayı içinde erişilebilir

Bu kısıtlamalar nedeniyle, Wallarm EdgeWorker, aynı property’ye geri bir alt istek yapan bir responseProvider fonksiyonu olarak uygulanmıştır. Bu alt istek, sonsuz döngüleri önleyen ve trafiğin Wallarm node’una yönlendirilmesine imkân tanıyan x-wlrm-checked özel başlığını içerir.

Gereksinimler

Wallarm EdgeWorker’ı Akamai üzerinde dağıtmak için aşağıdaki gereksinimlerin karşılandığından emin olun:

  • Akamai teknolojilerine hâkimiyet

  • Sözleşmenizde Akamai EdgeWorkers’ın etkinleştirilmiş olması

  • Origin backend’in mevcut olması

    • API servislerinizin erişilebilir bir origin sunucusunda çalışıyor olması
    • Origin alan adının, bir CNAME kaydı üzerinden Akamai property ana bilgisayar adına çözünmesi
  • Korumalı origin’e trafiği iletecek şekilde yapılandırılmış Akamai property

    • Property, Default Rule içinde Origin Server davranışını içermelidir
    • Property, sunulan host için geçerli bir TLS sertifikasına sahip olmalıdır
  • Bir DNS bölgesi (ör. customer.com) üzerinde kontrol ve Wallarm Node property’si için adanmış bir alt alan adı (ör. node.customer.com) ayırma hazırlığı

    Property oluşturulduktan sonra Akamai bir Edge Hostname döndürecektir (ör. node.customer.com.edgesuite.net). DNS’inizde, seçtiğiniz alt alan adını bu Edge Hostname’e işaret eden bir CNAME kaydı oluşturmalısınız.

Dağıtım

1. Bir Wallarm node’u dağıtın

Wallarm node’u, dağıtmanız gereken Wallarm platformunun çekirdek bileşenidir. Gelen trafiği inceler, kötü niyetli aktiviteleri tespit eder ve tehditleri azaltacak şekilde yapılandırılabilir.

Akamai bağlayıcısı için node’u yalnızca kendi altyapınızda dağıtabilirsiniz.

Self-hosted node dağıtımı için bir yapıt (artifact) seçin ve ilgili talimatları izleyin:

Gerekli Node sürümü

Akamai bağlayıcısının yalnızca Native Node’un 0.16.3+ sürümü tarafından desteklendiğini lütfen unutmayın.

2. Wallarm kod paketini edinin ve EdgeWorker’lar oluşturun

Wallarm kod paketini Akamai EdgeWorkers üzerinde edinmek ve çalıştırmak için şu adımları izleyin:

  1. Wallarm kod paketini edinmek için support@wallarm.com adresiyle iletişime geçin.

  2. Akamai Control Center → EdgeWorkersCreate EdgeWorker ID öğesine gidin, ardından wallarm-main kod paketini içe aktarın.

    Bu, istekleri Wallarm node’u üzerinden yönlendiren ana EdgeWorker’dır.

  3. Başka bir EdgeWorker ID oluşturun ve wallarm-sp paketini içe aktarın.

    Bu, spoofing önleme için önerilen EdgeWorker’dır. Bir property gerektirmez.

3. Wallarm Node property’sini oluşturun

  1. Akamai Property Manager’da yeni bir property oluşturun:

    • Property name / hostname: ayrılmış Node hostname’i (ör. node.customer.com). Bu hostname, kontrol ettiğiniz bir DNS bölgesine ait olmalıdır.
    • Property type: Dynamic Site Accelerator.
    • Origin type: Web server.
    • Origin Hostname: dağıttığınız Wallarm Node’un gerçek adresi.
  2. Property için TLS yapılandırın:

    • Ya Akamai Managed Certificate seçin (Akamai, node.customer.com için bir sertifika düzenler ve yönetir) ya da
    • Gerekirse kendi sertifikanızı yükleyin.
  3. Property’yi kaydedin. Akamai aşağıdakine benzer bir Edge Hostname üretecektir:

    node.customer.com.edgesuite.net
    
  4. DNS bölgenizde, Node hostname’inizi Edge Hostname’e işaret eden bir CNAME kaydı oluşturun, ör.:

    node.customer.com → node.customer.com.edgesuite.net
    
  5. Property’yi staging’de etkinleştirin, işlevselliği doğrulayın, ardından production’da etkinleştirin.

!Akamai'de Wallarm Node Property

4. Origin property’de değişkenleri yapılandırın

Mevcut origin property’nizi açın → Edit New Version ve aşağıdaki değişkenleri yapılandırın:

Değişken Açıklama Gerekli mi?
PMUSER_WALLARM_NODE wallarm-main EdgeWorker’ı için oluşturduğunuz property adı. Evet
PMUSER_WALLARM_HEADER_SECRET Spoofing önleme için rastgele bir gizli değer, ör. aj8shd82hjd72hs9. wallarm-main EdgeWorker, bir isteği aynı property’ye geri yönlendirdiğinde bu değeri içeren x-wlrm-checked başlığını ekler. wallarm-sp EdgeWorker bu başlığı doğrular: eşleşme yoksa istek engellenir. Bu, sonsuz döngüleri önler ve istemcilerin Wallarm kontrollerini atlamak için sahte bir başlık eklemesini engeller.
Gizli tutun ve başka yerde yeniden kullanmayın.
Evet
PMUSER_WALLARM_ASYNC Trafik işleme modunu belirler: false, trafiği doğrudan Wallarm Node üzerinden işler (senkron), true ise trafiğin kopyasını orijinal akışı etkilemeden analiz eder (asenkron). Varsayılan: false. Hayır
PMUSER_WALLARM_INSPECT_REQ_BODY İstek gövdelerinin analiz için Wallarm node’una gönderilip gönderilmeyeceğini kontrol eder. Varsayılan: true. Hayır
PMUSER_WALLARM_INSPECT_RSP_BODY Yanıt gövdelerinin analiz için Wallarm node’una gönderilip gönderilmeyeceğini kontrol eder. Yanıt şeması keşfini ve gelişmiş saldırı ile zafiyet tespit kabiliyetlerini etkinleştirir. Varsayılan: true. Hayır

!Akamai origin property için Wallarm değişkenleri

Bağlayıcı modunu ve gövde inceleme ayarlarını rota bazında veya dosya türüne göre Set Variable davranışını kullanarak ince ayar yapabilirsiniz.

5. Wallarm EdgeWorker kuralını ekleyin

Origin property’de yeni bir boş kural oluşturun:

  • Kriter:

    If 
    Request Header 
    x-wlrm-checked
    does not exist
    
  • Davranış: EdgeWorkers → wallarm-main EdgeWorker

Daha karmaşık kurulumlarda, bu koşulu yol kontrolleriyle birleştirerek (örneğin kuralı yalnızca /api/* yollarına uygulayarak) yalnızca API trafiğinin Wallarm tarafından işlenmesini sağlayabilirsiniz.

6. Spoofing önleme kuralını ekleyin

Origin property’de başka bir yeni boş kural oluşturun:

  • Kriter:

    If 
    Request Header 
    x-wlrm-checked
    exists
    
  • Davranış: EdgeWorkers → wallarm-sp EdgeWorker

Bu kural, x-wlrm-checked başlığının PMUSER_WALLARM_HEADER_SECRET değerine eşit olmasını sağlar. Başka herhangi bir değer engellenir; bu, istemcilerin Wallarm kontrollerini atlamasını engeller.

Daha karmaşık kurulumlarda, bu koşulu yol kontrolleriyle birleştirerek (örneğin kuralı yalnızca /api/* yollarına uygulayarak) yalnızca API trafiğinin Wallarm tarafından işlenmesini sağlayabilirsiniz.

7. Property’yi kaydedin ve etkinleştirin

  1. Yeni origin property sürümünü kaydedin.

  2. Staging ortamında etkinleştirin.

  3. Doğrulamanın ardından production’da etkinleştirin.

Test

Dağıtılan EdgeWorker’ların işlevselliğini test etmek için şu adımları izleyin:

  1. Akamai CDN’inize test Dizin Geçişi saldırısıyla bir istek gönderin:

    curl http://<AKAMAI_CDN>/etc/passwd
    
  2. Wallarm Console → Attacks bölümünü US Cloud veya EU Cloud içinde açın ve saldırının listede görüntülendiğinden emin olun.

    Arayüzdeki Attacks

    Wallarm node modu engelleme olarak ayarlıysa, istek de engellenir.

Wallarm EdgeWorker’larını yükseltme

Dağıtılan Wallarm EdgeWorker’larını daha yeni bir sürüme yükseltmek için:

  1. wallarm-main için oluşturduğunuz EdgeWorker’a gidin.

  2. Create Version’a basın ve yeni wallarm-main kod paketini yükleyin.

  3. Staging ortamında etkinleştirin.

  4. Doğrulamanın ardından production’da etkinleştirin.

  5. Sürümü değiştiyse wallarm-sp kod paketi için de aynı adımları tekrarlayın.

EdgeWorker yükseltmeleri, özellikle majör sürüm güncellemelerinde, bir Wallarm node yükseltmesi gerektirebilir. Self-hosted Node sürüm notları için Native Node değişiklik günlüğüne bakın. Eskimeyi önlemek ve gelecekteki yükseltmeleri basitleştirmek için düzenli node güncellemeleri önerilir.