Ana içeriğe geç

All-in-One Yükleyici ile Native Node’u Dağıtma

Wallarm Native Node, NGINX’ten bağımsız çalışır, Wallarm bağlayıcılarının self-hosted dağıtımı ve TCP trafik yansıtma analizine yönelik tasarlanmıştır. Native Node’u, all-in-one yükleyici kullanarak Linux işletim sistemine sahip bir sanal makinede çalıştırabilirsiniz.

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

Gereksinimler

All-in-one yükleyici ile Native Node’u çalıştırmak için kullanılan makine aşağıdaki kriterleri karşılamalıdır:

  • Linux işletim sistemi.

  • x86_64/ARM64 mimarisi.

  • Tüm komutların yetkili kullanıcı olarak çalıştırılması (ör. root).

  • Şu adreslere giden bağlantı:

    • Wallarm yükleyicisini 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ının ve API spesifikasyonlarının güncellemelerini indirmek ve allowlisted, denylisted veya graylisted ülkelerinizin, bölgelerinizin veya veri merkezlerinizin kesin IP’lerini 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
      
  • Düğüm connector-server veya envoy_external_filter modunda çalıştırıldığında, makinenin alan adı için bir güvenilir SSL/TLS sertifikası çıkartılmalı ve özel anahtarıyla birlikte makineye yüklenmelidir.

  • Düğüm tcp-capture modunda çalıştırıldığında:

    • Trafik ve yanıt yansıtma, hem kaynak hem hedef ayarlanarak yapılandırılmalı ve hazırlanan örnek yansıtma hedefi olarak seçilmelidir. Trafik yansıtma yapılandırmaları için belirli protokollere izin verilmesi gibi özel ortam gereksinimleri karşılanmalıdır.
    • Yansıtılan trafik VLAN (802.1q), VXLAN veya SPAN ile etiketlenmelidir.
  • Bunlara ek olarak, Wallarm Console’da Administrator rolüne sahip olmalısınız.

Sınırlamalar

Kurulum

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

Düğümü Wallarm Cloud’da kaydetmek için bir token’a ihtiyacınız olacak. Token’ı hazırlamak için:

  1. Wallarm Console → SettingsAPI tokens’ı ABD Bulutu veya AB Bulutu üzerinde açın.

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

  3. Bu token’ı kopyalayın.

2. Wallarm yükleyicisini indirin

Wallarm kurulum betiğini indirin ve çalıştırılabilir yapın:

curl -O https://meganode.wallarm.com/native/aio-native-0.17.1.x86_64.sh
chmod +x aio-native-0.17.1.x86_64.sh
curl -O https://meganode.wallarm.com/native/aio-native-0.17.1.aarch64.sh
chmod +x aio-native-0.17.1.aarch64.sh

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

Makinede aşağıdaki asgari yapılandırma ile wallarm-node-conf.yaml dosyasını 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 alanlarında, makinenin alan adı için çıkarılmış 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, trafğin yakalanacağı ağ arayüzünü belirtirsiniz. Ana makinede mevcut ağ arayüzlerini kontrol etmek için:

ip addr show
version: 4

mode: envoy-external-filter

envoy_external_filter:
  address: ":5080"
  tls_cert: "/path/to/cert.crt"
  tls_key: "/path/to/cert.key"

envoy_external_filter.tls_cert ve envoy_external_filter.tls_key alanlarında, makinenin alan adı için çıkarılmış güvenilir sertifika ve özel anahtarın yollarını belirtirsiniz.

Tüm yapılandırma parametreleri

4. Yükleyiciyi çalıştırın

x86_64 yükleyici sürümü için:

# ABD Bulutu
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.x86_64.sh -- --batch --token <API_TOKEN> --mode=connector-server --go-node-config=<PATH_TO_CONFIG> --host us1.api.wallarm.com

# AB Bulutu
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.x86_64.sh -- --batch --token <API_TOKEN> --mode=connector-server --go-node-config=<PATH_TO_CONFIG> --host api.wallarm.com

ARM64 yükleyici sürümü için:

# ABD Bulutu
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.aarch64.sh -- --batch --token <API_TOKEN> --mode=connector-server --go-node-config=<PATH_TO_CONFIG> --host us1.api.wallarm.com

# AB Bulutu
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.aarch64.sh -- --batch --token <API_TOKEN> --mode=connector-server --go-node-config=<PATH_TO_CONFIG> --host api.wallarm.com

x86_64 yükleyici sürümü için:

# ABD Bulutu
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.x86_64.sh -- --batch --token <API_TOKEN> --mode=tcp-capture --go-node-config=<PATH_TO_CONFIG> --host us1.api.wallarm.com

# AB Bulutu
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.x86_64.sh -- --batch --token <API_TOKEN> --mode=tcp-capture --go-node-config=<PATH_TO_CONFIG> --host api.wallarm.com

ARM64 yükleyici sürümü için:

# ABD Bulutu
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.aarch64.sh -- --batch --token <API_TOKEN> --mode=tcp-capture --go-node-config=<PATH_TO_CONFIG> --host us1.api.wallarm.com

# AB Bulutu
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.aarch64.sh -- --batch --token <API_TOKEN> --mode=tcp-capture --go-node-config=<PATH_TO_CONFIG> --host api.wallarm.com

x86_64 yükleyici sürümü için:

# ABD Bulutu
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.x86_64.sh -- --batch --token <API_TOKEN> --mode=envoy-external-filter --go-node-config=<PATH_TO_CONFIG> --host us1.api.wallarm.com

# AB Bulutu
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.x86_64.sh -- --batch --token <API_TOKEN> --mode=envoy-external-filter --go-node-config=<PATH_TO_CONFIG> --host api.wallarm.com

ARM64 yükleyici sürümü için:

# ABD Bulutu
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.aarch64.sh -- --batch --token <API_TOKEN> --mode=envoy-external-filter --go-node-config=<PATH_TO_CONFIG> --host us1.api.wallarm.com

# AB Bulutu
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.aarch64.sh -- --batch --token <API_TOKEN> --mode=envoy-external-filter --go-node-config=<PATH_TO_CONFIG> --host api.wallarm.com
  • WALLARM_LABELS değişkeni, düğümün ekleneceği grubu ayarlar (Wallarm Console UI’da düğümlerin mantıksal gruplaması için kullanılır).

  • <API_TOKEN>, Node deployment/Deployment kullanım türüne sahip oluşturulmuş API token’ını belirtir.

  • <PATH_TO_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 dosyayı değiştirebilirsiniz. Değişiklikleri uygulamak için sudo systemctl restart wallarm komutu ile Wallarm servisinin yeniden başlatılması gerekir.

5. Kurulumu tamamlayın

Düğümü dağıttıktan sonra, trafiği dağıtılan düğüme yönlendirmek amacıyla API yönetim platformunuza veya servisinize Wallarm kodunu uygulamak bir sonraki adımdır.

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

Düğümü dağıttıktan sonra, bir sonraki adım trafiği düğüme iletmek için Envoy ayarlarını güncellemektir.

Düğümün çalışmasını doğrulama

Düğümün trafiği algıladığını doğrulamak için logları kontrol edebilirsiniz:

  • Native Node logları 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, algılanan saldırılar vb. gibi filtreleme düğümünün standart logları /opt/wallarm/var/log/wallarm dizininde bulunur.

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

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

Yükleyici başlatma seçenekleri

  • All-in-one betiği indirildiği anda, betik hakkında yardım almak için:

    sudo ./aio-native-0.17.1.x86_64.sh -- --help
    
    sudo ./aio-native-0.17.1.aarch64.sh -- --help
    
  • Yükleyiciyi etkileşimli modda da çalıştırabilir ve ilk adımda gerekli modu seçebilirsiniz:

    sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.x86_64.sh
    
    sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.aarch64.sh
    
  • Düğümü yalnızca API Discovery modunda kullanabilirsiniz (sürüm 0.12.1’den itibaren mevcuttur). Bu modda, Düğümün yerleşik mekanizmalarıyla tespit edilen ve ek yapılandırma gerektiren (örn. kimlik bilgisi doldurma, API spesifikasyonu ihlal girişimleri ve denylisted ile graylisted IP’lerden gelen kötü amaçlı etkinlik) saldırılar tespit edilir ve yerelde engellenir (etkinleştirilmişse), ancak Wallarm Cloud’a aktarılmaz. Cloud’da saldırı verisi bulunmadığından Threat Replay Testing çalışmaz. Whitelist’teki IP’lerden gelen trafik ise izinlidir.

    Bu arada, API Keşfi, API oturum takibi ve güvenlik açığı tespiti tamamen işlevsel olmaya devam eder, ilgili güvenlik varlıklarını tespit eder ve görselleştirme için Cloud’a yükler.

    Bu mod, önce API envanterlerini gözden geçirmek ve hassas verileri belirlemek, ardından kontrollü saldırı verisi aktarımı planlamak isteyenler içindir. Ancak, saldırı aktarımını devre dışı bırakmak nadirdir; zira Wallarm saldırı verilerini güvenli bir şekilde işler ve gerekirse hassas saldırı verisi maskelemesi sağlar.

    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. Düğüm kurulum prosedürünü izleyin.

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

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

Yükseltme ve yeniden kurulum

  • Düğümü yükseltmek için talimatları izleyin.

  • Yükseltme veya yeniden kurulum sürecinde bir sorun varsa:

    1. Mevcut kurulumu kaldırın:

      sudo systemctl stop wallarm && sudo rm -rf /opt/wallarm
      
    2. Yukarıdaki kurulum adımlarını izleyerek düğümü normal şekilde kurun.