Ana içeriğe geç

Docker Envoy‑tabanlı Görüntünün Çalıştırılması

Bu talimatlar, Envoy 1.18.4 temel alınarak oluşturulan Wallarm Docker görüntüsünü çalıştırma adımlarını anlatır. Görüntü, doğru Wallarm node çalışması için gerekli tüm sistemleri içerir:

  • Wallarm module'lü Envoy proxy hizmetleri

  • Postanalytics için Tarantool modülleri

  • Diğer hizmetler ve script'ler

Wallarm module, istek yönlendirme için bir Envoy HTTP filtresi olarak tasarlanmıştır.

Desteklenen yapılandırma parametreleri

Lütfen unutmayın ki NGINX‑tabanlı filtering node yapılandırması için geçerli olan çoğu directives Envoy‑tabanlı filtering node yapılandırması için desteklenmemektedir. Sonuç olarak, rate limiting ve credential stuffing detection bu dağıtım yöntemiyle kullanılamaz.

Envoy‑tabanlı filtering node yapılandırması için mevcut parametrelerin → listesini inceleyin.

Kullanım Senaryoları

Among all supported Wallarm deployment options, Envoy-based Docker image is recommended for Wallarm deployment in these use cases:

  • If your organization utilizes Docker-based infrastructure, Wallarm Docker image is the ideal choice. It integrates effortlessly into your existing setup, whether you are employing a microservice architecture running on AWS ECS, Alibaba ECS, or other similar services. This solution also applies to those using virtual machines seeking a more streamlined management through Docker containers.

  • If you require fine-grained control over each container, the Docker image excels. It affords a greater level of resource isolation than typically possible with traditional VM-based deployments.

Gereksinimler

  • Docker installed on your host system

  • Access to https://hub.docker.com/r/wallarm/envoy to download the Docker image. Please ensure the access is not blocked by a firewall

  • Access to the account with the Administrator role in Wallarm Console in the US Cloud or EU Cloud

  • Access to https://us1.api.wallarm.com if working with US Wallarm Cloud or to https://api.wallarm.com if working with EU Wallarm Cloud. Please ensure the access is not blocked by a firewall

  • Access to the IP addresses below for downloading updates to attack detection rules, as well as retrieving precise IPs for your allowlisted, denylisted, or graylisted countries, regions, or data centers

    34.96.64.17
    34.110.183.149
    35.235.66.155
    34.102.90.100
    34.94.156.115
    35.235.115.105
    
    34.160.38.183
    34.144.227.90
    34.90.110.226
    

Konteyneri Çalıştırma Seçenekleri

Filtering node yapılandırma parametreleri, docker run komutuna aşağıdaki yollarla geçirilebilir:

  • Ortam değişkenleri aracılığıyla. Bu seçenek yalnızca temel filtering node parametrelerinin yapılandırılmasına olanak sağlar; parameters listesindeki çoğu parametre ortam değişkenleri aracılığıyla değiştirilemez.

  • Mount edilmiş yapılandırma dosyası aracılığıyla. Bu seçenek, filtering node parametrelerinin tamamının yapılandırılmasına olanak tanır.

Ortam Değişkenleri Kullanarak Konteyneri Çalıştırma

Konteyneri çalıştırmak için:

  1. Get Wallarm token of the appropriate type:

    1. Open Wallarm Console → SettingsAPI tokens in the US Cloud or EU Cloud.
    2. Find or create API token with the Node deployment/Deployment usage type.
    3. Copy this token.
    1. Open Wallarm Console → Nodes in the US Cloud or EU Cloud.
    2. Do one of the following:
      • Create the node of the Wallarm node type and copy the generated token.
      • Use existing node group - copy token using node's menu → Copy token.
  2. Node ile konteyneri çalıştırın:

    docker run -d -e WALLARM_API_TOKEN='XXXXXXX' -e WALLARM_LABELS='group=<GROUP>' -e ENVOY_BACKEND='example.com' -e WALLARM_API_HOST='us1.api.wallarm.com' -p 80:80 wallarm/envoy:4.8.0-1
    
    docker run -d -e WALLARM_API_TOKEN='XXXXXXX' -e WALLARM_LABELS='group=<GROUP>' -e ENVOY_BACKEND='example.com' -p 80:80 wallarm/envoy:4.8.0-1
    

Konteyner, aşağıdaki temel filtering node ayarlarını -e seçeneği ile alabilir:

Environment variable Açıklama Gereklilik
WALLARM_API_TOKEN Wallarm node veya API token. Evet
ENVOY_BACKEND Wallarm çözümü ile korunacak kaynağın domain veya IP adresi. Evet
WALLARM_API_HOST Wallarm API sunucusu:
  • US Cloud için: us1.api.wallarm.com
  • EU Cloud için: api.wallarm.com
Varsayılan: api.wallarm.com.
Hayır
WALLARM_MODE Node modu:
  • block – kötü niyetli istekleri engellemek için
  • safe_blocking – yalnızca graylisted IP addresses kaynaklı kötü niyetli istekleri engellemek için
  • monitoring – istekleri analiz eder fakat engellemez
  • off – trafik analizi ve işleme devre dışı bırakılır
Varsayılan: monitoring.
Filtrasyon modlarının detaylı açıklaması →
Hayır
WALLARM_LABELS

Node 4.6'dan itibaren kullanılabilir. Sadece WALLARM_API_TOKEN'in API token ile Deploy rolünde ayarlanmış olması durumunda çalışır. Node örneklerinin gruplandırılması için group etiketini belirler, örneğin:

WALLARM_LABELS="group=<GROUP>"

...node örneğini <GROUP> grubuna yerleştirir (varsa mevcut olan, yoksa oluşturulur).

API token'ler için Evet
TARANTOOL_MEMORY_GB Tarantool için ayrılan bellek miktarı. Değer tamsayı veya ondalık sayı (ondalık ayırıcı olarak nokta . kullanılır). Varsayılan: 0.2 gigabayt. Hayır

Komut aşağıdaki işlemleri gerçekleştirir:

  • Konteynerin /etc/envoy dizininde minimum Envoy yapılandırması içeren envoy.yaml dosyasını oluşturur.

  • Konteynerin /etc/wallarm dizininde Wallarm Cloud'a erişim için filtering node kimlik bilgilerini içeren dosyaları oluşturur:

    • Filtering node UUID ve gizli anahtarı içeren node.yaml
    • Wallarm private key içeren private.key
  • http://ENVOY_BACKEND:80 kaynağını korur.

envoy.yaml Dosyası Mount Edilerek Konteyneri Çalıştırma

Hazırlanmış envoy.yaml dosyasını -v seçeneği ile Docker konteynerine mount edebilirsiniz. Dosya aşağıdaki ayarları içermelidir:

Konteyneri çalıştırmak için:

  1. Get Wallarm token of the appropriate type:

    1. Open Wallarm Console → SettingsAPI tokens in the US Cloud or EU Cloud.
    2. Find or create API token with the Node deployment/Deployment usage type.
    3. Copy this token.
    1. Open Wallarm Console → Nodes in the US Cloud or EU Cloud.
    2. Do one of the following:
      • Create the node of the Wallarm node type and copy the generated token.
      • Use existing node group - copy token using node's menu → Copy token.
  2. Node ile konteyneri çalıştırın:

    docker run -d -e WALLARM_API_TOKEN='XXXXXXX' -e WALLARM_LABELS='group=<GROUP>' -e WALLARM_API_HOST='us1.api.wallarm.com' -v /configs/envoy.yaml:/etc/envoy/envoy.yaml -p 80:80 wallarm/envoy:4.8.0-1
    
    docker run -d -e WALLARM_API_TOKEN='XXXXXXX' -e WALLARM_LABELS='group=<GROUP>' -v /configs/envoy.yaml:/etc/envoy/envoy.yaml -p 80:80 wallarm/envoy:4.8.0-1
    
    • -e seçeneği, konteynere aşağıdaki zorunlu ortam değişkenlerini aktarır:
    Environment variable Açıklama Gereklilik
    WALLARM_API_TOKEN Wallarm node token.

    Birden Fazla Kurulumda Tek Token Kullanımı

    Seçilen platform ne olursa olsun, aynı token'ı birden fazla kurulumda kullanabilirsiniz. Bu, Wallarm Console arayüzünde node örneklerinin mantıksal olarak gruplandırılmasını sağlar. Örnek: Bir geliştirme ortamına birden fazla Wallarm node dağıtırsınız; her node, ilgili bir geliştiriciye ait ayrı bir makinededir.

    Evet
    WALLARM_API_HOST Wallarm API sunucusu:
    • US Cloud için: us1.api.wallarm.com
    • EU Cloud için: api.wallarm.com
    Varsayılan: api.wallarm.com.
    Hayır
    • -v seçeneği, envoy.yaml yapılandırma dosyasını içeren dizini konteynerin /etc/envoy dizinine mount eder.

Komut aşağıdaki işlemleri gerçekleştirir:

  • envoy.yaml dosyasını konteynerin /etc/envoy dizinine mount eder.

  • Konteynerin /etc/wallarm dizininde Wallarm Cloud'a erişim için filtering node kimlik bilgilerini içeren dosyaları oluşturur:

    • Filtering node UUID ve gizli anahtarı içeren node.yaml
    • Wallarm private key içeren private.key
  • Mount edilmiş yapılandırma dosyasında belirtilen kaynağı korur.

Log Döndürme Yapılandırması (İsteğe Bağlı)

Log dosyası döndürme, önceden yapılandırılmış olup varsayılan olarak etkindir. Gerekirse döndürme ayarlarını değiştirebilirsiniz. Bu ayarlar konteynerin /etc/logrotate.d dizininde yer alır.

Wallarm Node Çalışmasını Test Etme

  1. Send the request with test Path Traversal attack to a protected resource address:

    curl http://localhost/etc/passwd
    

    If traffic is configured to be proxied to example.com, include the -H "Host: example.com" header in the request.

  2. Open Wallarm Console → Attacks section in the US Cloud or EU Cloud and make sure the attack is displayed in the list.

    Attacks in the interface

  3. Optionally, test other aspects of the node functioning.