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ı¶
-
MuleSoft Mule veya Flex Gateway, Akamai, Cloudflare, Amazon CloudFront, Broadcom Layer7 API Gateway, Fastly, IBM DataPower için bir bağlayıcı çözümün parçası olarak Wallarm düğümünü self-hosted Linux OS makinesine dağıtmak istediğinizde.
Yükleyiciyi
connector-servermodunda kullanın. -
TCP trafik yansıtma analizi için bir güvenlik çözümüne ihtiyaç duyduğunuzda.
Yükleyiciyi
tcp-capturemodunda kullanın. -
Istio tarafından yönetilen API’ler için gRPC tabanlı harici işleme filtresine ihtiyaç duyduğunuzda.
Yükleyiciyi
envoy-external-filtermodunda kullanın.
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.comveyahttps://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
- Wallarm yükleyicisini indirmek için
-
Düğüm
connector-serverveyaenvoy_external_filtermodunda ç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-capturemodunda ç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¶
-
All-in-one yükleyici
connector-serverveyaenvoy_external_filtermodunda kullanıldığında, makinenin alan adı için güvenilir bir SSL/TLS sertifikası gereklidir. Self-signed sertifikalar henüz desteklenmemektedir. -
Özel engelleme sayfası ve engelleme kodu yapılandırmaları henüz desteklenmemektedir.
-
Wallarm kuralı ile oransal sınırlama (rate limiting) desteklenmemektedir.
-
Multitenancy henüz desteklenmemektedir.
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:
-
Wallarm Console → Settings → API tokens’ı ABD Bulutu veya AB Bulutu üzerinde açın.
-
Node deployment/Deploymentkullanım türüne sahip bir API token’ı bulun veya oluşturun. -
Bu token’ı kopyalayın.
2. Wallarm yükleyicisini indirin¶
Wallarm kurulum betiğini indirin ve çalıştırılabilir yapın:
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.
goreplay.filter parametresinde, trafğin yakalanacağı ağ arayüzünü belirtirsiniz. Ana makinede mevcut ağ arayüzlerini kontrol etmek için:
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_LABELSdeğ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/Deploymentkullanı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.
- Bağlayıcınız için Wallarm kod paketini almak üzere sales@wallarm.com ile iletişime geçin.
-
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.logdosyası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/wallarmdizininde bulunur. -
Ek hata ayıklama için,
log.levelparametresinidebugolarak 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:
-
Yükleyiciyi etkileşimli modda da çalıştırabilir ve ilk adımda gerekli modu seçebilirsiniz:
-
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:
-
/etc/wallarm-override/env.listdosyasını oluşturun veya değiştirin:Aşağıdaki değişkeni ekleyin:
-
Düğüm kurulum prosedürünü izleyin.
API Discovery-only modu etkinleştirildiğinde,
/opt/wallarm/var/log/wallarm/wcli-out.loglogu aşağıdaki mesajı döndürür: -
Yükseltme ve yeniden kurulum¶
-
Düğümü yükseltmek için talimatları izleyin.
-
Yükseltme veya yeniden kurulum sürecinde bir sorun varsa:
-
Mevcut kurulumu kaldırın:
-
Yukarıdaki kurulum adımlarını izleyerek düğümü normal şekilde kurun.
-