EOL durumundaki Wallarm NGINX modüllerinin yükseltilmesi¶
Bu talimatlar, destek süresi dolmuş (EOL) Wallarm NGINX modüllerinin (sürüm 3.6 ve altı) en son 6.x sürümüne yükseltilmesi adımlarını açıklar. Wallarm NGINX modülleri, aşağıdaki talimatlardan birine göre kurulan modüllerdir:
-
NGINX stable için bireysel paketler
-
NGINX Plus için bireysel paketler
-
Dağıtımın sağladığı NGINX için bireysel 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‑bir‑arada yükleyici ile yükseltme
Yükseltme, bireysel Linux paketleri kullanımdan kaldırıldığı için Wallarm'ın all-in-one installer aracıyla gerçekleştirilir. Bu yöntem, önceki yaklaşıma kıyasla yükseltme sürecini ve sürekli dağıtım bakımını basitleştirir.
Yükleyici aşağıdaki işlemleri otomatik olarak gerçekleştirir:
- İşletim sisteminizi ve NGINX sürümünü kontrol eder.
- Algılanan OS ve NGINX sürümü için Wallarm depolarını ekler.
- Bu depolardan Wallarm paketlerini kurar.
- Kurulan Wallarm modülünü NGINX'inize bağlar.
-
Sağlanan token ile filtreleme düğümünü Wallarm Cloud'a bağlar.
Bireysel Linux paketleriyle manuel yükseltme artık desteklenmemektedir.
EOL düğümü yükselttiğinizi Wallarm teknik desteğine bildirin¶
Destek süresi dolmuş (EOL) Wallarm NGINX modüllerini (sürüm 3.6 ve altı) 6.x sürümüne yükseltiyorsanız, Wallarm teknik desteği ile iletişime geçip bilgi verin ve yardım isteyin.
Diğer yardımların yanı sıra, Wallarm hesabınız için yeni IP lists mantığının etkinleştirilmesini talep edin. Yeni IP lists mantığı etkinleştirildiğinde lütfen Wallarm Console'u açın ve IP lists bölümünün mevcut olduğunu doğrulayın.
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 and their corresponding hostnames (if any) listed below. This is needed 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ü¶
-
Filtreleme düğümü ve postanalytics modülleri aynı sunucuya kuruluysa, tümünü yükseltmek için aşağıdaki talimatları izleyin.
Daha yeni sürümü temiz bir makinede all-in-one yükleyiciyle çalıştırmanız, düzgün çalıştığını test etmeniz, ardından öncekini durdurmanız ve trafiği önceki makine yerine yeni makineden akacak şekilde yapılandırmanız gerekecektir.
-
Filtreleme düğümü ve postanalytics modülleri farklı sunucularda kuruluysa, bu talimatları izleyerek önce postanalytics modülünü, sonra filtreleme modülünü yükseltin.
Adım 1: Threat Replay Testing modülünü devre dışı bırakın (sadece düğüm 2.16 veya altından yükseltiliyorsa)¶
Wallarm düğümünü 2.16 veya altından yükseltiyorsanız, lütfen Wallarm Console → Vulnerabilities → Configure içinde Threat Replay Testing modülünü devre dışı bırakın.
Modülün çalışması yükseltme sürecinde false positive üretebilir. Modülü devre dışı bırakmak bu riski en aza indirir.
Adım 2: Temiz 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ını 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 hazırlayın¶
To install node, you will need a Wallarm token of the appropriate type. To prepare a token:
Adım 5: Tüm‑bir‑arada Wallarm yükleyicisini indirin¶
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: Tüm‑bir‑arada Wallarm yükleyicisini çalıştırın¶
Aynı sunucuda filtreleme düğümü ve postanalytics¶
-
Run downloaded script:
# If using the x86_64 version: sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-6.6.1.x86_64-glibc.sh # If using the ARM64 version: sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-6.6.1.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.
Farklı sunucularda filtreleme düğümü ve postanalytics¶
Filtreleme düğümü ve postanalytics modüllerini yükseltme adımlarının sırası
Filtreleme düğümü ve postanalytics modülleri farklı sunuculara kuruluysa, filtreleme düğümü paketlerini güncellemeden önce postanalytics paketlerinin yükseltilmesi gerekir.
-
Postanalytics modülünü şu talimatları izleyerek yükseltin.
-
Filtreleme düğümünü yükseltin:
# x86_64 sürümünü kullanıyorsanız: sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-6.5.1.x86_64-glibc.sh filtering # ARM64 sürümünü kullanıyorsanız: sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-6.5.1.aarch64-glibc.sh filtering
WALLARM_LABELS
değişkeni, düğümün ekleneceği grubu belirler (Wallarm Console UI içinde düğümlerin mantıksal gruplaması için kullanılır).
Adım 7: İzinli listeleri ve engelli listeleri önceki Wallarm düğümü sürümünden 6.x'e taşıyın (sadece düğüm 2.18 veya altından yükseltiliyorsa)¶
Düğümü 2.18 veya altından yükseltiyorsanız, izinli liste ve engelli liste yapılandırmasını önceki Wallarm düğümü sürümünden en yeni sürüme taşıyın.
Adım 8: NGINX ve postanalytics yapılandırmasını eski düğüm makinesinden yeniye aktarın¶
Gerekli yönergeleri veya dosyaları kopyalayarak düğüme ilişkin NGINX ve postanalytics yapılandırmalarını eski makineden yeniye taşıyın:
-
/etc/nginx/conf.d/default.conf
veya/etc/nginx/nginx.conf
(http
seviyesine ilişkin NGINX ayarları)Filtreleme ve postanalytics düğümleri farklı sunuculardaysa, filtreleme düğümü makinesindeki
/etc/nginx/nginx.conf
dosyasınınhttp
bloğundawallarm_tarantool_upstream
adınıwallarm_wstore_upstream
olarak değiştirin. -
/etc/nginx/sites-available/default
(trafik yönlendirme için NGINX ve Wallarm ayarları) -
/etc/nginx/conf.d/wallarm-status.conf
→ yeni makinede/etc/nginx/wallarm-status.conf
konumuna kopyalayınAyrıntılı açıklama bağlantı içinde mevcuttur.
-
/etc/wallarm/node.yaml
→ yeni makinede/opt/wallarm/etc/wallarm/node.yaml
konumuna kopyalayınAyrı bir postanalytics sunucusunda özel bir ana bilgisayar ve bağlantı noktası kullanıyorsanız, kopyalanan dosyada postanalytics düğümü makinesinde
tarantool
bölümünüwstore
olarak yeniden adlandırın.
Kullanımdan kaldırılan NGINX yönergelerini yeniden adlandırın¶
Aşağıdaki NGINX yönergeleri yapılandırma dosyalarında açıkça belirtilmişse adlarını 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
-
wallarm_tarantool_upstream
→wallarm_wstore_upstream
Yalnızca yönergelerin adları değişti, mantıkları aynı kaldı. Eski adlara sahip yönergeler yakında kullanımdan kaldırılacaktır, bu nedenle önceden yeniden adlandırmanız önerilir.
Düğüm günlükleme değişkenlerini güncelleyin¶
Yeni düğüm sürümünde düğüm günlükleme değişkenlerinde aşağıdaki değişiklikler uygulanmıştır:
-
wallarm_request_time
değişkeninin adıwallarm_request_cpu_time
olarak değiştirilmiştir.Yalnızca değişken adı değişti, mantığı aynı kaldı. Eski ad geçici olarak desteklenmektedir ancak yine de değişkenin yeniden adlandırılması önerilir.
-
wallarm_request_mono_time
değişkeni eklendi – aşağıdaki toplamın loglanmasına ihtiyaç duyuyorsanız günlük formatı yapılandırmasına ekleyin:- Kuyrukta geçen süre
- CPU'nun isteği işlerken harcadığı süre (saniye)
En son sürümlerde yayınlanan değişikliklere göre Wallarm düğümü filtreleme modu ayarlarını uyarlayın¶
-
Aşağıda listelenen ayarların beklenen davranışının,
off
vemonitoring
filtreleme modlarının değişen mantığı ile uyumlu olduğundan emin olun: -
Beklenen davranış değişen filtreleme modu mantığıyla uyuşmuyorsa, talimatları kullanarak filtreleme modu ayarlarını yayınlanan değişikliklere göre uyarlayın.
overlimit_res
saldırı algılama yapılandırmasını yönergelerden 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
dosya içeriğini güncelleyin¶
/etc/nginx/conf.d/wallarm-status.conf
içeriğini aşağıdaki gibi güncelleyin:
server {
listen 127.0.0.8:80;
server_name localhost;
allow 127.0.0.8/8; # Erişim yalnızca filtreleme düğümü sunucusunun loopback adresleri için kullanılabilir
deny all;
wallarm_mode off;
disable_acl "on"; # İstek kaynaklarının kontrolü devre dışıdır, denylisted IP'lerin wallarm-status servisine istek yapmasına izin verilir. https://docs.wallarm.com/admin-en/configure-parameters-en/#disable_acl
wallarm_enable_apifw off;
access_log off;
location ~/wallarm-status$ {
wallarm_status on;
}
}
İstatistik servisinin yapılandırılması hakkında daha fazla ayrıntı
Wallarm engelleme sayfasını güncelleyin¶
Yeni düğüm sürümünde Wallarm örnek engelleme sayfası değiştirildi. Sayfadaki logo ve destek e‑postası artık varsayılan olarak boştur.
Eğer &/usr/share/nginx/html/wallarm_blocked.html
sayfası engellenen isteklere yanıt olarak döndürülmek üzere yapılandırılmışsa, yeni örnek sayfanın sürümünü kopyalayıp özelleştirin.
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 düğüm 2.16 veya altından yükseltiliyorsa)¶
Threat Replay Testing modülü kurulumuna ilişkin öneriyi inceleyin ve gerekirse yeniden etkinleştirin.
Bir süre sonra, modülün çalışmasının false positive üretmediğinden emin olun. False positive tespit ederseniz lütfen Wallarm teknik desteği ile 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ü çalışmasını test edin¶
Yeni düğümün çalışmasını test etmek için:
-
Korunan 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 içinde açın ve saldırıların listede göründüğünden emin olun.
-
Cloud üzerinde saklanan verileriniz (kurallar, IP lists) yeni düğümle senkronize olur olmaz, kurallarınızın beklendiği gibi çalıştığından emin olmak için bazı test saldırıları gerçekleştirin.
Adım 13: Trafiğin Wallarm düğümüne gönderilmesini yapılandırın¶
Yük dengeleyicinizin hedeflerini Wallarm örneğine trafik gönderecek şekilde güncelleyin. Ayrıntılar için, yük dengeleyicinizin belgelerine bakın.
Trafiği tamamen yeni düğüme yönlendirmeden önce, önce kısmen yönlendirmeniz ve yeni düğümün beklendiği gibi davrandığını kontrol etmeniz önerilir.
Adım 14: Eski düğümü kaldırın¶
-
Wallarm Console → Nodes içinde düğümünüzü seçip Delete tıklayarak eski düğümü silin.
-
İşlemi onaylayın.
Düğüm Cloud'dan silindiğinde, uygulamalarınıza gelen isteklerin filtrelenmesini durduracaktır. Filtreleme düğümünü silme işlemi geri alınamaz. Düğüm, düğümler listesinden kalıcı olarak silinecektir.
-
Eski düğümlü makineyi silin veya sadece Wallarm düğüm bileşenlerinden temizleyin:
Ayarların özelleştirilmesi¶
Wallarm modülleri 6.x sürümüne güncellendi. Önceki filtreleme düğümü ayarları yeni sürüme otomatik olarak uygulanacaktır. Ek ayarlar yapmak için kullanılabilir yönergeleri 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