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-server
modunda kullanın. -
TCP trafik yansıtma analizi için bir güvenlik çözümüne ihtiyaç duyduğunuzda.
Yükleyiciyi
tcp-capture
modunda kullanın. -
Istio tarafından yönetilen API’ler için gRPC tabanlı harici işleme filtresine ihtiyaç duyduğunuzda.
Yükleyiciyi
envoy-external-filter
modunda 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.com
veyahttps://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-server
veyaenvoy_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¶
-
All-in-one yükleyici
connector-server
veyaenvoy_external_filter
modunda 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/Deployment
kullanı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_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.
- 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.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
parametresinidebug
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:
-
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.list
dosyası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.log
logu 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.
-