EOL Wallarm NGINX Modüllerinin Yükseltilmesi¶
Bu yönergeler, ömrünü tamamlamış (EOL) Wallarm NGINX modüllerini (sürüm 3.6 ve altı) 5.0 sürümüne yükseltmek için gereken adımları açıklamaktadır. Wallarm NGINX modülleri, aşağıdaki yönergelerden birine uygun olarak kurulan modüllerdir:
-
NGINX stable için ayrı paketler
-
NGINX Plus için ayrı paketler
-
Dağıtım tarafından sağlanan NGINX için ayrı paketler
Wallarm nodes 3.6 and lower are not supported
You are recommended to upgrade the Wallarm nodes 3.6 and lower since these versions are not supported, they are end-of-life.
Node configuration and traffic filtration have been significantly simplified in the Wallarm node of the latest versions. Before upgrading the modules, please carefully review the list of changes and general recommendations. Please note that some settings of the latest node are incompatible with the nodes 3.6 and lower.
Tümünü Bir Arada Yükleyici ile Yükseltme
Güncelleme, Wallarm'ın all-in-one installer aracı kullanılarak gerçekleştirilir; çünkü ayrı Linux paketleri kullanımdan kaldırılmıştır. Bu yöntem, önceki yaklaşıma kıyasla yükseltme sürecini ve devam eden dağıtım bakımını sadeleştirir.
Yükleyici otomatik olarak aşağıdaki işlemleri gerçekleştirir:
- İşletim sisteminizi ve NGINX sürümünüzü kontrol eder.
- Tespit edilen OS ve NGINX sürümü için Wallarm repositorilerini ekler.
- Bu repositorilerden Wallarm paketlerini kurar.
- Kurulan Wallarm modülünü NGINX'inize entegre eder.
-
Sağlanan token ile filtreleme düğümünü Wallarm Cloud'a bağlar.
Ayrı Linux paketleri ile manuel yükseltme artık desteklenmemektedir.
Wallarm Teknik Destek Ekibini, EOL Düğüm Yükseltmesi Yapacağınızı Bildirin¶
Ömrünü tamamlamış Wallarm NGINX modüllerini (sürüm 3.6 ve altı) 5.0 sürümüne yükseltiyorsanız, Wallarm teknik destek ekibini bu durumdan haberdar edin ve yardım isteyin.
Diğer yardımların yanı sıra, Wallarm hesabınız için yeni IP listesi mantığını etkinleştirmelerini talep edin. Yeni IP listesi mantığı etkinleştirildiğinde, lütfen Wallarm Console'u açın ve IP lists bölümünün mevcut olduğundan emin olun.
Gereksinimler¶
-
Access to the account with the Administrator role in Wallarm Console for the US Cloud or EU Cloud.
-
Access to
https://meganode.wallarm.com
to download all-in-one Wallarm installer. Ensure the access is not blocked by a firewall. -
Access to
https://us1.api.wallarm.com
for working with US Wallarm Cloud or tohttps://api.wallarm.com
for working with EU Wallarm Cloud. If access can be configured only via the proxy server, then use the instructions. -
Executing all commands as a superuser (e.g.
root
). -
Access to the IP addresses below for downloading updates to attack detection rules and API specifications, as well as retrieving precise IPs for your allowlisted, denylisted, or graylisted countries, regions, or data centers.
Yükseltme Prosedürü¶
-
Eğer filtreleme düğümü ile postanalytics modülleri aynı sunucuda kuruluysa, hepsini yükseltmek için aşağıdaki yönergeleri takip edin.
Yeni bir makinede, all-in-one installer kullanarak daha yeni sürümde bir düğüm çalıştırmanız, düzgün çalıştığını test ettikten sonra eskisini durdurup trafiğin eski makine yerine yeni makine üzerinden yönlendirilmesini sağlamanız gerekecektir.
-
Eğer filtreleme düğümü ile postanalytics modülleri farklı sunucularda kuruluysa, önce postanalytics modülünü ve sonra bu yönergeleri takip ederek filtreleme modülünü yükseltin.
Adım 1: Threat Replay Testing Modülünü Devre Dışı Bırakın (node 2.16 veya altı yükseltiliyorsa)¶
Eğer Wallarm düğümünüzü 2.16 veya daha düşük bir sürümden yükseltiyorsanız, lütfen Wallarm Console → Vulnerabilities → Configure bölümünden Threat Replay Testing modülünü devre dışı bırakın.
Bu modülün çalışması, yükseltme sürecinde yanlış pozitif sonuçlara neden olabilir. Modülü devre dışı bırakmak bu riski minimize eder.
Adım 2: Temiz Bir Makine Hazırlayın¶
When upgrading modules with all-in-one installer, you cannot upgrade an old package installation - instead you need to use a clean machine. Thus, as step 1, prepare a machine with one of the supported OS:
-
Debian 10, 11 and 12.x
-
Ubuntu LTS 18.04, 20.04, 22.04
-
CentOS 7, 8 Stream, 9 Stream
-
Alma/Rocky Linux 9
-
RHEL 8.x
-
RHEL 9.x
-
Oracle Linux 8.x
-
Oracle Linux 9.x
-
Redox
-
SuSe Linux
-
Others (the list is constantly widening, contact Wallarm support team to check if your OS is in the list)
Using new clean machine will lead to that at some moment you will have both old and new node, which is good: you can test the new one working properly without stopping the old one.
Adım 3: NGINX ve Bağımlılıkları Kurun¶
Install the latest NGINX version of:
-
NGINX
stable
(the latest supported version is v1.28.0) - see how to install it in the NGINX documentation. -
NGINX Mainline (the latest supported version is v1.27.5) - see how to install it in the NGINX documentation.
-
NGINX Plus (the latest supported version is NGINX Plus R33) - see how to install it in the NGINX documentation.
-
Distribution-Provided NGINX - to install, use the following commands:
Adım 4: Wallarm Token'ını Hazırlayın¶
To install node, you will need a Wallarm token of the appropriate type. To prepare a token:
Adım 5: All-in-one Wallarm Yükleyicisini İndirin¶
Wallarm suggests all-in-one installations for the following processors:
-
x86_64
-
ARM64 (beta)
To download all-in-one Wallarm installation script, execute the command:
Adım 6: All-in-one Wallarm Yükleyicisini Çalıştırın¶
Filtreleme Düğümü ve Postanalytics Aynı Sunucuda¶
-
Run downloaded script:
# If using the x86_64 version: sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-6.1.0.x86_64-glibc.sh # If using the ARM64 version: sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-6.1.0.aarch64-glibc.sh
The
WALLARM_LABELS
variable sets group into which the node will be added (used for logical grouping of nodes in the Wallarm Console UI). -
Enter Wallarm token.
Filtreleme Düğümü ve Postanalytics Farklı Sunucularda¶
Filtreleme düğümü ve postanalytics modüllerinin yükseltilme sırası
Eğer filtreleme düğümü ile postanalytics modülleri farklı sunucularda kuruluysa, postanalytics paketlerini yükseltmeden önce filtreleme düğümü paketlerini güncellemeniz gerekmektedir.
-
Bu yönergeleri takip ederek postanalytics modülünü yükseltin.
-
Filtreleme düğümünü yükseltin:
# x86_64 sürümü kullanılıyorsa: sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-5.3.0.x86_64-glibc.sh filtering # ARM64 sürümü kullanılıyorsa: sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-5.3.0.aarch64-glibc.sh filtering
WALLARM_LABELS
değişkeni, düğümün ekleneceği grubu ayarlar (Wallarm Console UI'da düğümlerin mantıksal gruplandırılması için kullanılır).
Adım 7: Önceki Wallarm Düğüm Sürümünden Allowlist ve Denylist'leri 5.0'a Taşıyın (sadece node 2.18 veya altı yükseltiliyorsa)¶
Eğer düğümünüzü 2.18 veya daha düşük bir sürümden yükseltiyorsanız, önceki Wallarm düğüm sürümündeki allowlist ve denylist yapılandırmasını en güncel sürüme taşıyın.
Adım 8: Eski Düğüm Sunucusundan NGINX ve Postanalytics Yapılandırmalarını Yeni Olanına Aktarın¶
Eski makinede yer alan düğümle ilgili NGINX yapılandırması ve postanalytics yapılandırmasını, gerekli yönergeleri kopyalayarak yeni makinedeki dosyalara aktarın.
Kaynak Dosyalar
Eski makinede, işletim sistemine ve NGINX sürümüne bağlı olarak NGINX yapılandırma dosyaları farklı dizinlerde ve farklı isimlerde bulunabilir. En yaygın olanlar şunlardır:
-
NGINX ayarlarını içeren
/etc/nginx/conf.d/default.conf
-
Wallarm düğüm izleme ayarlarını içeren
/etc/nginx/conf.d/wallarm-status.conf
. Detaylı açıklama linkte mevcuttur.
Ayrıca, postanalytics modülünün (Tarantool veritabanı ayarlarının) yapılandırması genellikle aşağıdakilerden birinde bulunur:
-
/etc/default/wallarm-tarantool
veya -
/etc/sysconfig/wallarm-tarantool
Hedef Dosyalar
All-in-one installer, işletim sistemi ve NGINX sürümlerinin farklı kombinasyonlarıyla çalıştığından, yeni makinenizde hedef dosyalar farklı isimlerde ve farklı dizinlerde olabilir.
Yapılandırma aktarılırken aşağıdaki adımların uygulanması gerekmektedir.
Kullanımdan Kaldırılmış NGINX Direktiflerini Yeniden Adlandırın¶
Açıkça yapılandırma dosyalarında belirtilmişse, aşağıdaki NGINX direktiflerinin isimlerini değiştirin:
-
wallarm_instance
→wallarm_application
-
wallarm_local_trainingset_path
→wallarm_custom_ruleset_path
-
wallarm_global_trainingset_path
→wallarm_protondb_path
-
wallarm_ts_request_memory_limit
→wallarm_general_ruleset_memory_limit
Sadece direktif isimlerini değiştirdik; mantıkları aynı kalmaktadır. Eski isimdeki direktifler geçici olarak desteklenmeye devam etmektedir, ancak yeniden adlandırmanız tavsiye edilir.
Düğüm Loglama Değişkenlerini Güncelleyin¶
Yeni düğüm sürümünde, düğüm loglama değişkenlerinde aşağıdaki değişiklikler uygulanmıştır:
-
wallarm_request_time
değişkeniwallarm_request_cpu_time
olarak yeniden adlandırılmıştır.Sadece değişken adı değiştirilmiş olup, mantığı aynıdır. Eski isim geçici olarak desteklenmektedir, fakat yine de yeniden adlandırmanız önerilir.
-
wallarm_request_mono_time
değişkeni eklenmiştir – sıraya, kuyruğa alınan zaman ile- Kuyrukta geçirilen süre
- İsteğin işlenmesinde CPU'nun harcadığı saniye cinsinden toplam zaman
bilgisini loglamak isterseniz, bu değişkeni log formatınızın yapılandırmasına ekleyin.
Wallarm Düğüm Filtrasyon Modu Ayarlarını Son Sürümlerde Yapılan Değişikliklere Göre Ayarlayın¶
-
Aşağıda listelenen ayarların beklenen davranışlarının,
off
vemonitoring
filtrasyon modlarının değişmiş mantığına uygunluğunu kontrol edin: -
Eğer beklenen davranış, değişen filtrasyon modu mantığıyla örtüşmüyorsa, bu yönergeleri kullanarak ayarları güncelleyin.
overlimit_res
Saldırı Tespit Yapılandırmasını Direktiflerden Kurala Taşıyın¶
Starting from the version 3.6, you can fine-tune the overlimit_res
attack detection using the rule in Wallarm Console.
Earlier, the wallarm_process_time_limit
and wallarm_process_time_limit_block
NGINX directives have been used. The listed directives are considered to be deprecated with the new rule release and will be deleted in future releases.
If the overlimit_res
attack detection settings are customized via the listed directives, it is recommended to transfer them to the rule as follows:
-
Open Wallarm Console → Rules and proceed to the Limit request processing time rule setup.
-
Configure the rule as done via the NGINX directives:
- The rule condition should match the NGINX configuration block with the
wallarm_process_time_limit
andwallarm_process_time_limit_block
directives specified. -
The time limit for the node to process a single request (milliseconds): the value of
wallarm_process_time_limit
.Risk of running out of system memory
The high time limit and/or continuation of request processing after the limit is exceeded can trigger memory exhaustion or out-of-time request processing.
-
The node will either block or pass the
overlimit_res
attack depending on the node filtration mode:- In the monitoring mode, the node forwards the original request to the application address. The application has the risk to be exploited by the attacks included in both processed and unprocessed request parts.
- In the safe blocking mode, the node blocks the request if it is originated from the graylisted IP address. Otherwise, the node forwards the original request to the application address. The application has the risk to be exploited by the attacks included in both processed and unprocessed request parts.
- In the block mode, the node blocks the request.
- The rule condition should match the NGINX configuration block with the
-
Delete the
wallarm_process_time_limit
andwallarm_process_time_limit_block
NGINX directives from the NGINX configuration file.If the
overlimit_res
attack detection is fine-tuned using both the directives and the rule, the node will process requests as the rule sets.
wallarm-status.conf
Dosyası İçeriğini Güncelleyin¶
Aşağıdaki gibi /etc/nginx/conf.d/wallarm-status.conf
dosyasının içeriğini güncelleyin:
server {
listen 127.0.0.8:80;
server_name localhost;
allow 127.0.0.0/8; # Filtre düğüm sunucusunun yalnızca loopback adresleri için erişim sağlanır
deny all;
wallarm_mode off;
disable_acl "on"; # İstek kaynaklarının kontrolü devre dışı bırakılmış olup, yasaklanmış IP'lerin wallarm-status servisine erişimine izin verilir. https://docs.wallarm.com/admin-en/configure-parameters-en/#disable_acl
access_log off;
location ~/wallarm-status$ {
wallarm_status on;
}
}
İstatistik servisi yapılandırması hakkında daha fazla bilgi
Wallarm Engelleme Sayfasını Güncelleyin¶
Yeni düğüm sürümünde, Wallarm örnek engelleme sayfası değiştirilmiştir. Sayfadaki logo ve destek e-posta adresi varsayılan olarak boş bırakılmıştır.
Eğer engellenen isteklere yanıt olarak dönen sayfa olarak &/usr/share/nginx/html/wallarm_blocked.html
yapılandırıldıysa, yeni örnek sayfa kopyalanıp özelleştirilerek kullanılmalıdır.
Adım 9: API Portunu Güncelleyin¶
Starting with version 4.0, the filtering node uploads data to the Cloud using the us1.api.wallarm.com:443
(US Cloud) and api.wallarm.com:443
(EU Cloud) API endpoints instead of us1.api.wallarm.com:444
and api.wallarm.com:444
.
If you upgrade the node from the version 3.x or lower and your server with the deployed node has a limited access to the external resources and the access is granted to each resource separately, then after upgrade the synchronization between the filtering node and the Cloud will stop.
To restore the synchronization, in your configuration, change port 444
to 443
for API endpoint for each resource.
Adım 10: Threat Replay Testing Modülünü Yeniden Etkinleştirin (sadece node 2.16 veya altı yükseltiliyorsa)¶
Threat Replay Testing modülü kurulumu için önerileri inceleyin ve gerekiyorsa modülü yeniden etkinleştirin.
Bir süre sonra, modülün çalışmasının yanlış pozitif sonuçlara yol açmadığından emin olun. Yanlış pozitifler tespit ederseniz, lütfen Wallarm teknik destek ekibiyle iletişime geçin.
Adım 11: NGINX'i Yeniden Başlatın¶
Restart NGINX using the following command:
Adım 12: Wallarm Düğümünün Çalışmasını Test Edin¶
Yeni düğümün çalışmasını test etmek için:
-
Korumalı kaynak adresine test SQLI ve XSS saldırıları içeren bir istek gönderin:
-
Wallarm Console → Attacks bölümünü US Cloud veya EU Cloud üzerinden açın ve saldırıların listelendiğini doğrulayın.
-
Bulut ortamınızda veriler (kurallar, IP listeleri) yeni düğüme senkronize edildikten sonra, kuralların beklendiği gibi çalıştığını test etmek için birkaç test saldırısı gerçekleştirin.
Adım 13: Trafiğin Wallarm Düğümüne Yönlendirilmesini Yapılandırın¶
Kullanılan dağıtım yaklaşımına bağlı olarak, aşağıdaki ayarları gerçekleştirin:
Yük dengeleyicinizin hedeflerini, trafiği Wallarm örneğine yönlendirecek şekilde güncelleyin. Ayrıntılar için lütfen yük dengeleyici dokümantasyonunuza başvurun.
Trafiğin tamamen yeni düğüme yönlendirilmesinden önce, kısmi olarak yönlendirip yeni düğüm davranışını kontrol etmeniz önerilir.
Web veya proxy sunucunuz (örneğin, NGINX, Envoy) gelen trafiği Wallarm düğümüne yansıtacak şekilde yapılandırın. Yapılandırma ayrıntıları için ilgili web veya proxy sunucu dokümantasyonuna bakmanızı tavsiye ederiz.
Buradaki linkte, en popüler web ve proxy sunucuları (NGINX, Traefik, Envoy) için örnek yapılandırma bulunmaktadır.
Adım 14: Eski Düğümü Kaldırın¶
-
Wallarm Console → Nodes bölümünden eski düğümü seçip Delete butonuna tıklayarak silin.
-
İşlemi onaylayın.
Düğüm Cloud üzerinden silindiğinde, uygulamalarınıza gelen isteklerin filtrelenmesi duracaktır. Filtreleme düğümünü silmek geri alınamaz. Düğüm listeden kalıcı olarak kaldırılacaktır.
-
Eski düğümün bulunduğu makineyi silin veya sadece Wallarm düğüm bileşenlerinden temizleyin:
Ayarların Özelleştirilmesi¶
Wallarm modülleri 5.0 sürümüne güncellenmiştir. Önceki filtreleme düğümü ayarları, yeni sürüme otomatik olarak uygulanacaktır. Ek ayarlar yapmak için mevcut direktifleri kullanın.
Common customization options:
-
Using the balancer of the proxy server behind the filtering node
-
Limiting the single request processing time in the directive
wallarm_process_time_limit
-
Limiting the server reply waiting time in the NGINX directive
proxy_read_timeout
-
Limiting the maximum request size in the NGINX directive
client_max_body_size