Ana içeriğe geç

AWS AMI ile Native Node Dağıtımı

NGINX’ten bağımsız çalışan Wallarm Native Node, Wallarm connector’ının self-hosted dağıtımı ve TCP trafik yansıtma analizine yönelik tasarlanmıştır. Native Node’u AWS AMI kullanarak bir AWS instance’ında çalıştırabilirsiniz.

AMI, Debian 12 tabanlıdır ve all-in-one installer’ı içerir. Bu installer, Node’u dağıtmak ve yapılandırmak için kullanılan Wallarm betiğidir. AMI’den bir instance başlattıktan sonra kurulumu tamamlamak için bu betiği çalıştıracaksınız.

AMI’den AWS üzerinde Wallarm Node dağıtımı genellikle yaklaşık 10 dakika sürer.

Güvenlik notu

Bu çözüm, AWS güvenlik en iyi uygulamalarını takip edecek şekilde tasarlanmıştır. Dağıtım için AWS root hesabını kullanmaktan kaçınmanızı öneririz. Bunun yerine, yalnızca gerekli izinlere sahip IAM kullanıcıları veya rollerini kullanın.

Dağıtım süreci en az ayrıcalık ilkesini varsayar ve Wallarm bileşenlerini sağlamak ve çalıştırmak için gereken minimum erişimi verir.

Bu dağıtım için AWS altyapı maliyetlerini tahmin etmeye yönelik rehber için AWS’de Wallarm Dağıtımı için Maliyet Rehberi sayfasına bakın.

Kullanım senaryoları ve dağıtım modları

  • AWS üzerinde MuleSoft Mule Gateway, Cloudflare, Amazon CloudFront, Broadcom Layer7 API Gateway, Fastly için bir connector çözümünün parçası olarak bir Wallarm node dağıtırken.

    Görüntüyü connector-server modunda çalıştırın.

  • TCP trafik yansıtma analizi için bir güvenlik çözümüne ihtiyaç duyduğunuzda ve altyapınız AWS üzerinde olduğunda.

    Görüntüyü tcp-capture modunda çalıştırın.

    tcp-capture modunun sınırlamaları

    • Çözüm yalnızca ham TCP üzerinden şifrelenmemiş HTTP trafiğini analiz eder, şifrelenmiş HTTPS trafiğini analiz etmez.
    • Çözüm henüz HTTP keep-alive bağlantıları üzerinden gelen yanıtlara ait ayrıştırmayı desteklemez.

Gereksinimler

  • Bir AWS hesabı

  • AWS EC2, Security Groups hakkında bilgi

  • İstediğiniz herhangi bir AWS bölgesi; Wallarm node dağıtımı için bölgeye özel bir kısıtlama yoktur

    Wallarm, tek availability zone (AZ) ve çoklu availability zone dağıtımlarını destekler. Çoklu-AZ kurulumlarında, Wallarm Node’lar ayrı availability zone’larda başlatılabilir ve yüksek erişilebilirlik için bir Load Balancer arkasına yerleştirilebilir.

  • US Cloud veya EU Cloud için Wallarm Console’da Administrator rolüne sahip hesaba erişim

  • Tüm komutların Wallarm EC2 instance’ında süper kullanıcı (ör. root) olarak yürütülmesi

  • connector-server modunda çalıştırırken, makinenin etki alanı için güvenilir bir SSL/TLS sertifikası düzenlenmeli ve özel anahtarla birlikte makineye yüklenmelidir

  • tcp-capture modunda çalıştırırken:

    • Trafik ve yanıt yansıtma hem kaynak hem de hedef ile yapılandırılmalı ve hazırlanan instance yansıtma hedefi olarak seçilmelidir. Trafik yansıtma yapılandırmaları için belirli protokollere izin verilmesi gibi belirli ortam gereksinimleri karşılanmalıdır.
    • Yansıtılan trafik VLAN (802.1q), VXLAN veya SPAN ile etiketlenmelidir.
    • Ham TCP üzerinden şifrelenmemiş HTTP trafiği, şifrelenmiş HTTPS trafiği değil.

Sınırlamalar

  • Node’u connector-server modunda kullanırken, makinenin etki alanı için güvenilir bir SSL/TLS sertifikası gereklidir. Kendi imzaladığınız sertifikalar henüz desteklenmemektedir.

  • Özel engelleme sayfası ve engelleme kodu yapılandırmaları henüz desteklenmemektedir.

  • Wallarm kuralı ile rate limiting desteklenmez.

  • Multitenancy henüz desteklenmemektedir.

Kurulum

1. Bir Wallarm Node instance’ı başlatın

Wallarm Native Node AMI kullanarak bir EC2 instance’ı başlatın.

Önerilen yapılandırma:

  • En son mevcut AMI sürümü

  • Herhangi bir tercih edilen AWS bölgesi

  • EC2 instance türü: t3.medium veya t3.large, ayrıntılar için maliyet rehberine bakın

  • Altyapınıza bağlı olarak uygun VPC ve alt ağ

  • Security Group inbound erişimi, Node yapılandırmasında tanımlanan porta

  • Security Group outbound erişimi:

    • Wallarm installer’ını indirmek için https://meganode.wallarm.com
    • US/EU Wallarm Cloud için https://us1.api.wallarm.com veya https://api.wallarm.com
    • Saldırı tespit kuralları ve API specifications güncellemelerini indirmek ve ayrıca allowlisted, denylisted veya graylisted ülkeleriniz, bölgeleriniz veya veri merkezleriniz için kesin IP’leri almak için aşağıdaki IP adresleri

      node-data0.us1.wallarm.com - 34.96.64.17
      node-data1.us1.wallarm.com - 34.110.183.149
      us1.api.wallarm.com - 35.235.66.155
      34.102.90.100
      34.94.156.115
      35.235.115.105
      
      node-data1.eu1.wallarm.com - 34.160.38.183
      node-data0.eu1.wallarm.com - 34.144.227.90
      api.wallarm.com - 34.90.110.226
      
  • Instance’a erişim için SSH anahtar çifti

2. Node instance’ına SSH ile bağlanın

Çalışan EC2 instance’ınıza bağlanmak için seçtiğiniz SSH anahtarını kullanın:

ssh -i <your-key.pem> admin@<your-ec2-public-ip>

Instance’a bağlanmak için admin kullanıcı adını kullanmanız gerekir.

3. Wallarm token’ını hazırlayın

Node’u Wallarm Cloud’a kaydetmek için bir API token’ına ihtiyacınız var:

  1. US Cloud veya EU Cloud içinde Wallarm Console → SettingsAPI tokens’ı açın.

  2. Node deployment/Deployment kullanım türüne sahip API token’ını bulun veya oluşturun.

  3. Bu token’ı kopyalayın.

4. TLS sertifikalarını yükleyin

connector-server modu için, instance’ın etki alanı adına güvenilir bir TLS sertifikası ve özel anahtar düzenleyin. Bu dosyalar instance içinde erişilebilir olmalı ve sonraki yapılandırmada referans verilmelidir.

Sertifika ve anahtar dosyalarını scp, rsync veya başka bir yöntemle EC2 instance’ına yükleyin, örn.:

scp -i <your-key.pem> tls-cert.crt tls-key.key admin@<your-ec2-public-ip>:~

5. Yapılandırma dosyasını hazırlayın

EC2 instance’ında, aşağıdaki minimal yapılandırmalardan biriyle wallarm-node-conf.yaml adlı bir dosya oluşturun:

version: 4

mode: connector-server

connector:
  address: ":5050"
  tls_cert: path/to/tls-cert.crt
  tls_key: path/to/tls-key.key

connector.tls_cert ve connector.tls_key içinde, makinenin etki alanı için düzenlenmiş güvenilir sertifika ve özel anahtarın yollarını belirtirsiniz.

version: 4

mode: tcp-capture

goreplay:
  filter: 'enp7s0:'
  extra_args:
    - -input-raw-engine
    - vxlan

goreplay.filter parametresinde, trafikten yakalama yapılacak ağ arayüzünü belirtirsiniz. Ana makinede mevcut ağ arayüzlerini kontrol etmek için:

ip addr show

Tüm yapılandırma parametreleri

6. Node kurulum betiğini çalıştırın

EC2 instance’ında installer’ı çalıştırın:

# US Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.14.0.x86_64.sh -- --batch --token <API_TOKEN> --mode=connector-server --go-node-config=./wallarm-node-conf.yaml --host us1.api.wallarm.com

# EU Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.14.0.x86_64.sh -- --batch --token <API_TOKEN> --mode=connector-server --go-node-config=./wallarm-node-conf.yaml --host api.wallarm.com
# US Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.14.0.x86_64.sh -- --batch --token <API_TOKEN> --mode=tcp-capture --go-node-config=./wallarm-node-conf.yaml --host us1.api.wallarm.com

# EU Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.14.0.x86_64.sh -- --batch --token <API_TOKEN> --mode=tcp-capture --go-node-config=./wallarm-node-conf.yaml --host api.wallarm.com
  • WALLARM_LABELS değişkeni, node’un ekleneceği group’u ayarlar (Wallarm Console UI içinde node’ların mantıksal gruplanması için kullanılır).

  • <API_TOKEN>, Node deployment/Deployment kullanım türü için oluşturulan API token’ını belirtir.

  • --go-node-config, önceden hazırlanan yapılandırma dosyasının yolunu belirtir.

Sağlanan yapılandırma dosyası şu yola kopyalanacaktır: /opt/wallarm/etc/wallarm/go-node.yaml.

Gerekirse, kurulum tamamlandıktan sonra kopyalanan dosyada değişiklik yapabilirsiniz. Değişiklikleri uygulamak için sudo systemctl restart wallarm komutuyla Wallarm servisini yeniden başlatmanız gerekir.

7. Kurulumu tamamlayın

Node’u dağıttıktan sonra, bir sonraki adım, trafiği dağıtılan node’a yönlendirmek için Wallarm kodunu API yönetim platformunuza veya hizmetinize uygulamaktır.

  1. Connector’ınız için Wallarm kod paketini edinmek üzere sales@wallarm.com ile iletişime geçin.
  2. Paketi API yönetim platformunuza uygulamak için platforma özel talimatları izleyin:

Node’un çalışmasını doğrulama

Node’un trafiği tespit ettiğini doğrulamak için log’ları kontrol edebilirsiniz:

  • Native Node log’ları varsayılan olarak /opt/wallarm/var/log/wallarm/go-node.log dosyasına yazılır.

  • Verilerin Wallarm Cloud’a gönderilip gönderilmediği, tespit edilen saldırılar vb. standart log’lar /opt/wallarm/var/log/wallarm dizininde bulunur.

  • Ek hata ayıklama için, log.level parametresini debug olarak ayarlayın.

Ayrıca Node’un çalışmasını, http://<NODE_IP>:9000/metrics. adresinde sunulan Prometheus metriklerini kontrol ederek de doğrulayabilirsiniz.

Installer başlatma seçenekleri

AMI, aşağıdaki başlatma seçeneklerine sahip bir installer betiği içerir:

  • Betik hakkında yardım alın:

    sudo ./aio-native-0.14.0.x86_64.sh -- --help
    
  • Installer’ı etkileşimli modda çalıştırın ve 1. adımda gerekli modu seçin:

    sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.14.0.x86_64.sh
    
  • Node’u yalnızca API Discovery modunda kullanabilirsiniz. Bu modda, Node’un yerleşik mekanizmalarıyla tespit edilen ve ek yapılandırma gerektiren (ör. kimlik bilgisi doldurma, API specification ihlali girişimleri ve denylisted ve graylisted IP’lerden gelen kötü amaçlı etkinlik) saldırılar yerel olarak (etkinleştirilmişse) tespit edilir ve engellenir, ancak Wallarm Cloud’a aktarılmaz. Cloud’da saldırı verisi olmadığından Threat Replay Testing çalışmaz. Allowlist’teki IP’lerden gelen trafik izinlidir.

    Bu arada, API Discovery, API session tracking ve security vulnerability detection tam işlevselliklerini korur, ilgili güvenlik varlıklarını tespit eder ve görselleştirme için Cloud’a yükler.

    Bu mod, önce API envanterini gözden geçirmek ve hassas verileri belirlemek, ardından kontrollü saldırı verisi aktarımını planlamak isteyenler içindir. Ancak, Wallarm saldırı verilerini güvenli bir şekilde işlediği ve gerekirse sensitive attack data masking sağladığı için saldırı verisi aktarımını devre dışı bırakmak nadirdir.

    API Discovery-only modunu etkinleştirmek için:

    1. /etc/wallarm-override/env.list dosyasını oluşturun veya değiştirin:

      sudo mkdir /etc/wallarm-override
      sudo vim /etc/wallarm-override/env.list
      

      Aşağıdaki değişkeni ekleyin:

      WALLARM_APID_ONLY=true
      
    2. Node kurulum prosedürünü izleyin.

    API Discovery-only modu etkinleştirildiğinde, /opt/wallarm/var/log/wallarm/wcli-out.log log’u aşağıdaki mesajı döndürür:

    {"level":"info","component":"reqexp","time":"2025-01-31T11:59:38Z","message":"requests export skipped (disabled)"}