NGINX tabanlı Wallarm düğümü için yapılandırma seçenekleri¶
Self-hosted Wallarm NGINX düğümü için Wallarm çözümünden en iyi şekilde yararlanmanızı sağlayan ince ayar seçeneklerini öğrenin.
Resmi NGINX belgeleri
Wallarm yapılandırması, NGINX yapılandırmasına çok benzer. Resmi NGINX belgelerine bakın. Wallarm'a özgü yapılandırma seçeneklerinin yanı sıra, NGINX yapılandırmasının tüm yeteneklerine sahipsiniz.
Wallarm direktifleri¶
disable_acl¶
İstek kaynaklarının analizini devre dışı bırakmaya izin verir. Devre dışı bırakıldığında (on
), filtreleme düğümü Wallarm Cloud'dan IP listelerini indirmez ve isteklerin kaynak IP analizini atlar.
Info
Bu parametre http, server ve location blokları içinde ayarlanabilir.
Varsayılan değer off
.
wallarm_acl_access_phase¶
Direktif, yasaklı listede bulunan IP'lerden gelen istekleri NGINX access aşamasında engellemesi için NGINX tabanlı Wallarm düğümünü zorlar, bu şu anlama gelir:
-
wallarm_acl_access_phase on
ile, Wallarm düğümü yasaklı listedeki IP'lerden gelen tüm istekleri herhangi bir filtreleme modunda (yalnızcaoff
hariç) anında engeller ve yasaklı listedeki IP'lerden gelen isteklerde saldırı işaretlerini aramaz.Bu, yasaklı liste davranışını standart hale getirdiği ve düğümün CPU yükünü önemli ölçüde azalttığı için varsayılan ve önerilen değerdir.
-
wallarm_acl_access_phase off
ile, Wallarm düğümü önce istekleri saldırı işaretleri için analiz eder ve ardındanblock
veyasafe_blocking
modunda çalışıyorsa yasaklı listedeki IP'lerden gelen istekleri engeller.monitoring
filtreleme modunda, düğüm tüm isteklerde saldırı işaretlerini arar ancak kaynak IP yasaklı listede olsa bile bunları asla engellemez.wallarm_acl_access_phase off
ile Wallarm düğüm davranışı, düğümün CPU yükünü önemli ölçüde artırır.
Varsayılan değer ve diğer direktiflerle etkileşim
Varsayılan değer: on
(Wallarm düğümü 4.2’den itibaren)
Direktif yalnızca NGINX yapılandırma dosyasının http bloğu içinde ayarlanabilir.
- Duvar kağıdı modu
off
iken veyadisable_acl on
ile, IP listeleri işlenmez vewallarm_acl_access_phase
etkinleştirilmesinin bir anlamı yoktur. wallarm_acl_access_phase
direktifi,wallarm_mode
üzerinde önceliğe sahiptir; bu da yasaklı listedeki IP'lerden gelen isteklerin, filtreleme düğümü modumonitoring
olsa bile engellenmesiyle sonuçlanır (wallarm_acl_access_phase on
ile).
wallarm_acl_export_enable¶
Direktif, düğümden Cloud’a yasaklı listedeki IP’lerden gelen isteklerle ilgili istatistiklerin gönderilmesini on
ile etkinleştirir / off
ile devre dışı bırakır.
-
wallarm_acl_export_enable on
ile yasaklı listedeki IP’lerden gelen isteklerle ilgili istatistikler Attacks bölümünde görüntülenir. -
wallarm_acl_export_enable off
ile yasaklı listedeki IP’lerden gelen isteklerle ilgili istatistikler görüntülenmez.
Info
Bu parametre http bloğu içinde ayarlanır.
Varsayılan değer: on
wallarm_api_conf¶
Wallarm API için erişim gereksinimlerini içeren node.yaml
dosyasının yolu.
Varsayılan:
Filtreleme düğümünden seri hale getirilmiş istekleri postanalytics modülüne (wstore) yüklemek yerine doğrudan Wallarm API’sine (Cloud) yüklemek için kullanılır.
Yalnızca saldırı içeren istekler API’ye gönderilir. Saldırı içermeyen istekler kaydedilmez.
node.yaml dosya içeriği örneği:
# API bağlantı parametreleri (aşağıdaki parametreler varsayılan olarak kullanılır)
api:
host: api.wallarm.com
port: 443
ca_verify: true
wallarm_application¶
Wallarm Cloud’da kullanılacak korunmakta olan uygulamanın benzersiz tanımlayıcısı. Değer 0
hariç pozitif bir tamsayı olabilir.
Benzersiz tanımlayıcılar hem uygulama alan adları hem de alan adı yolları için ayarlanabilir, örneğin:
example.com alan adı için yapılandırma dosyası:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
listen 443 ssl;
...
wallarm_mode monitoring;
wallarm_application 1;
location / {
proxy_pass http://example.com;
include proxy_params;
}
}
test.com alan adı için yapılandırma dosyası:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
listen 443 ssl;
...
wallarm_mode monitoring;
location /login {
proxy_pass http://example.com/login;
include proxy_params;
wallarm_application 3;
}
location /users {
proxy_pass http://example.com/users;
include proxy_params;
wallarm_application 4;
}
}
Uygulamaların ayarlanması hakkında daha fazla bilgi →
Info
Bu parametre http, server ve location blokları içinde ayarlanabilir.
Varsayılan değer: -1
.
wallarm_block_page¶
Engellenen isteğe verilecek yanıtı ayarlamanıza olanak tanır.
Engelleme sayfası ve hata kodu yapılandırması hakkında daha fazla bilgi →
Info
Bu parametre http, server ve location blokları içinde ayarlanabilir.
wallarm_block_page_add_dynamic_path¶
Bu direktif, kodunda NGINX değişkenleri bulunan ve bu engelleme sayfasının yolunun da bir değişken kullanılarak ayarlandığı engelleme sayfasını başlatmak için kullanılır. Aksi halde direktif kullanılmaz.
Engelleme sayfası ve hata kodu yapılandırması hakkında daha fazla bilgi →
Info
Direktif, NGINX yapılandırma dosyasının http
bloğu içinde ayarlanabilir.
wallarm_cache_path¶
Sunucu başladığında proton.db ve özel kural seti dosya kopyası depolaması için yedek kataloğun oluşturulacağı dizin. Bu dizinin NGINX’i çalıştıran istemci tarafından yazılabilir olması gerekir.
Info
Bu parametre yalnızca http bloğu içinde yapılandırılır.
wallarm_custom_ruleset_path¶
Korunan uygulama ve filtreleme düğümü ayarları hakkında bilgi içeren özel kural seti dosyasının yolu.
Info
Bu parametre http, server ve location blokları içinde ayarlanabilir.
Varsayılan değer:
- Docker NGINX tabanlı imaj, bulut imajları, NGINX Node all-in-one yükleyici ve Native Node kurulumları için
/opt/wallarm/etc/wallarm/custom_ruleset
- Diğer kurulum ürünleri için
/etc/wallarm/custom_ruleset
wallarm_enable_apifw¶
Direktif, 4.10 sürümünden itibaren kullanılabilen API Specification Enforcement'u on
ile etkinleştirir / off
ile devre dışı bırakır. Lütfen bu özelliğin etkinleştirilmesinin, gerekli abonelik ve Wallarm Console UI üzerinden yapılandırmanın yerini almadığını unutmayın.
Info
Bu parametre server
blokları içinde ayarlanabilir.
Varsayılan değer: on
.
wallarm_enable_libdetection¶
Diğer dağıtım seçenekleri
Bu bölüm, NGINX all-in-one yükleyici ve Docker kurulumları için seçeneğin nasıl ayarlanacağını açıklar - diğer dağıtım seçenekleri için bkz.:
- NGINX Ingress controller,
- Sidecar (
wallarm-enable-libdetection
pod anotasyonu) - AWS Terraform (
libdetection
değişkeni).
libdetection kütüphanesi aracılığıyla SQL injection saldırılarının ek doğrulamasını etkinleştirir/devre dışı bırakır. libdetection kullanımı saldırıların çift tespiti sağlar ve yanlış pozitifleri azaltır.
libdetection kütüphanesiyle isteklerin analiz edilmesi, tüm dağıtım seçeneklerinde varsayılan olarak etkindir. Yanlış pozitifleri azaltmak için analizin etkin kalmasını öneririz.
Ek doğrulamayı kontrol etmek için, korunan kaynağa aşağıdaki isteği gönderin:
-
Temel dedektör seti (libproton kütüphanesi)
UNION SELECT
ifadesini SQL Injection saldırı işareti olarak tespit edecektir.UNION SELECT
başka komutlar olmadan SQL Injection saldırısının bir işareti olmadığından, libproton bir yanlış pozitif tespit eder. -
Eğer isteklerin libdetection kütüphanesiyle analizi etkinse, SQL injection saldırı işareti istek içinde doğrulanmayacaktır. İstek meşru sayılır, saldırı Wallarm Cloud’a yüklenmez ve engellenmez (filtreleme düğümü
block
modunda çalışıyorsa).
Bellek tüketiminde artış
Saldırıları libdetection kütüphanesi kullanarak analiz ederken, NGINX ve Wallarm süreçlerinin tükettiği bellek miktarı yaklaşık %10 artabilir.
Info
Bu parametre http, server ve location blokları içinde ayarlanabilir.
Varsayılan değer tüm dağıtım seçenekleri için on
’dur.
wallarm_fallback¶
Değer on
olarak ayarlandığında, NGINX’in acil durum moduna geçme yeteneği vardır; proton.db veya özel kural seti indirilemezse, bu ayar, verilerin indirilemediği http, server ve location blokları için Wallarm modülünü devre dışı bırakır. NGINX çalışmaya devam eder.
Info
Varsayılan değer on
.
Bu parametre http, server ve location blokları içinde ayarlanabilir.
wallarm_file_check_interval¶
proton.db ve özel kural seti dosyasındaki yeni verilerin kontrolü arasındaki aralığı tanımlar. Ölçü birimi aşağıdaki şekilde sonek ile belirtilir:
-
dakikalar için sonek yok
-
saniyeler için
s
-
milisaniyeler için
ms
Info
Bu parametre yalnızca http bloğu içinde yapılandırılır.
Varsayılan değer: 1
(bir dakika)
wallarm_general_ruleset_memory_limit¶
Bir proton.db ve özel kural seti örneği tarafından kullanılabilecek maksimum bellek miktarı için bir limit ayarlayın.
Bazı istekleri işlerken bellek limiti aşılırsa, kullanıcı 500 hatası alır.
Bu parametrede aşağıdaki sonekler kullanılabilir:
-
kilobayt için
k
veyaK
-
megabayt için
m
veyaM
-
gigabayt için
g
veyaG
0 değeri limiti kapatır.
Info
Bu parametre http, server ve/veya location blokları içinde ayarlanabilir.
Varsayılan değer: 1
GB
wallarm_global_trainingset_path¶
Direktif kullanımdan kaldırıldı
Wallarm düğümü 3.6’dan itibaren, lütfen bunun yerine wallarm_protondb_path
direktifini kullanın. Sadece direktif adını değiştirin, mantığı değişmedi.
wallarm_http_v2_stream_max_len¶
Bu direktif, bayt cinsinden bir HTTP/2 akışının izin verilen maksimum uzunluğunu ayarlar. Belirtilen değerin yarısına ulaşıldığında, akışın zarif şekilde sonlandırılmasını kolaylaştırmak için istemciye bir HTTP/2 GOAWAY
çerçevesi gönderilir. Akış kapanmaz ve maksimum uzunluğa ulaşılırsa, bağlantı NGINX tarafından zorla sonlandırılır.
Bu seçenek yapılandırılmamışsa, akış uzunlukları sınırsız kalır ve özellikle uzun ömürlü bağlantıların bulunduğu gRPC ortamlarında NGINX sürecinin sınırsız bellek tüketimine neden olabilir.
Info
Bu parametre http, server ve location blokları içinde ayarlanabilir.
Direktifin varsayılan bir değeri yoktur, varsayılan olarak HTTP/2 akışlarının uzunluğu için bir sınır yoktur.
wallarm_instance¶
Direktif kullanımdan kaldırıldı
- Direktif, korunmakta olan uygulamanın benzersiz tanımlayıcısını ayarlamak için kullanıldıysa, sadece adını
wallarm_application
olarak değiştirin. - Çok kiracılı (multi-tenant) düğümler için kiracının benzersiz tanımlayıcısını ayarlamak üzere
wallarm_instance
yerinewallarm_partner_client_uuid
direktifini kullanın.
4.0 sürümünden önceki filtreleme düğümü sürümü için kullandığınız yapılandırmayı güncellerken:
- Çok kiracılık özelliği olmadan filtreleme düğümünü yükseltiyorsanız ve korunmakta olan uygulamanın benzersiz tanımlayıcısını ayarlamak için kullanılan herhangi bir
wallarm_instance
varsa, sadece adınıwallarm_application
olarak değiştirin. - Çok kiracılık özelliğiyle filtreleme düğümünü yükseltiyorsanız, tüm
wallarm_instance
kayıtlarınıwallarm_application
olarak değerlendirin, ardından yapılandırmayı çok kiracılık yeniden yapılandırma talimatında açıklandığı gibi yeniden yazın.
wallarm_key_path¶
proton.db ve özel kural seti dosyalarının şifrelenmesi/şifresinin çözülmesi için kullanılan Wallarm özel anahtarının yolu.
Info
Varsayılan değer:
- Docker NGINX tabanlı imaj, bulut imajları, NGINX Node all-in-one yükleyici ve Native Node kurulumları için
/opt/wallarm/etc/wallarm/private.key
- Diğer kurulum ürünleri için
/etc/wallarm/private.key
wallarm_local_trainingset_path¶
Direktif kullanımdan kaldırıldı
Wallarm düğümü 3.6’dan itibaren, lütfen bunun yerine wallarm_custom_ruleset_path
direktifini kullanın. Sadece direktif adını değiştirin, mantığı değişmedi.
wallarm_max_request_body_size¶
Genel kullanımdan gizlenmiştir
Düğüm tarafından analiz edilecek bir HTTP istek gövdesinin maksimum boyutunu (bayt cinsinden) tanımlar. İstek gövdesi belirtilen sınırı aşarsa, aşan kısım atlanır ve tehditler açısından incelenmez.
Direktif 6.2.0 sürümünden itibaren kullanılabilir.
Info
Parametre http, server, location blokları içinde yapılandırılır.
Varsayılan değer: sınırsız.
wallarm_max_request_stream_message_size¶
Düğüm tarafından analiz edilecek gRPC veya WebSocket akışı içindeki tek bir mesaj yükünün maksimum boyutunu (bayt cinsinden) tanımlar. Mesaj belirtilen sınırı aşarsa, aşan kısım atlanır ve tehditler açısından incelenmez.
gRPC mesaj başlıkları boyut hesaplamasına dahil edilmez.
Direktif 6.2.0 sürümünden itibaren kullanılabilir.
Info
Parametre http, server, location blokları içinde yapılandırılır.
Varsayılan değer: 1Mb
- 5 MB’lık bir dosyayı tek bir gRPC mesajı olarak gönderirseniz, sadece ilk 1 MB analiz edilir.
- Dosya 1 MB veya daha küçük birden çok gRPC mesajına bölünürse, tüm parçalar analiz edilir.
wallarm_max_request_stream_size¶
Düğüm tarafından analiz edilecek bir gRPC veya WebSocket istek akışı gövdesinin toplam maksimum boyutunu (bayt cinsinden) tanımlar. Akış gövdesi belirtilen sınırı aşarsa, aşan kısım atlanır ve tehditler açısından incelenmez.
-
HTTP başlıkları hesaplamaya DAHİL DEĞİLDİR
-
gRPC mesaj başlıkları (genellikle mesaj başına 5 bayt) dahildir
Örneğin, her biri 1000 bayt olan 2 gRPC mesajı gönderirseniz, toplam akış boyutu (1000 + 5) × 2 = 2010 bayt
olacaktır - burada 5 bayt, her gRPC mesaj başlığının uzunluğudur.
Direktif 6.2.0 sürümünden itibaren kullanılabilir.
Info
Parametre http, server, location blokları içinde yapılandırılır.
Varsayılan değer: sınırsız.
wallarm_memlimit_debug¶
Bu direktif, bellek limiti aşıldığında istek ayrıntılarını içeren /tmp/proton_last_memlimit.req
dosyasının Wallarm NGINX modülü tarafından oluşturulup oluşturulmayacağını belirler. Bu, istek bellek limiti işleme ile ilgili sorunları hata ayıklamak için çok değerli olabilir.
Info
Bu parametre http, server ve location blokları içinde ayarlanabilir.
Varsayılan değer: on
.
wallarm_mode¶
Trafik işleme modu:
-
off
-
monitoring
-
safe_blocking
-
block
Wallarm node behavior | off | monitoring | safe_blocking | block |
---|---|---|---|---|
Analyzes incoming requests for input validation, virtual patch, and regex-based malicious payloads | - | + | + | + |
Uploads malicious requests to the Wallarm Cloud so that they are displayed in the event list | - | + | + | + |
Blocks malicious requests | - | - | Only those originated from graylisted IPs | + |
Blocks requests originated from denylisted IPssee exception (IPs added manually and automatically by multi-attack protection and behavioral protection: API abuse prevention, manual BOLA, brute force and forced browsing) | - | + | + | + |
Blocks requests originated from graylisted IPs (IPs added manually and automatically by the same protection measures as for denylist) | - | - | Only those containing malicious payloads | - |
Allows requests originated from allowlisted IPs | - | + | + | + |
Exception for denylist
If wallarm_acl_access_phase off
, the Wallarm node does not block requests from denylisted IPs in the monitoring
mode.
wallarm_mode
kullanımı, wallarm_mode_allow_override
direktifi ile kısıtlanabilir.
Filtreleme modu yapılandırmasına ilişkin ayrıntılı talimatlar →
Info
Bu parametre http, server ve location blokları içinde ayarlanabilir.
Varsayılan değer filtreleme düğümü dağıtım yöntemine bağlıdır (off
veya monitoring
olabilir)
wallarm_mode_allow_override¶
Wallarm Cloud’dan indirilen filtreleme kuralları (özel kural seti) aracılığıyla wallarm_mode
değerlerinin geçersiz kılınabilme yeteneğini yönetir:
off
- özel kurallar yok sayılır.strict
- özel kurallar yalnızca çalışma modunu sıkılaştırabilir.on
- hem sıkılaştırma hem de yumuşatma mümkündür.
Örneğin, wallarm_mode monitoring
ve wallarm_mode_allow_override strict
ayarlandığında, Wallarm Console bazı isteklerin engellenmesini etkinleştirmek için kullanılabilir, ancak saldırı analizi tamamen devre dışı bırakılamaz.
Filtreleme modu yapılandırmasına ilişkin ayrıntılı talimatlar →
Info
Bu parametre http, server ve location blokları içinde ayarlanabilir.
Varsayılan değer: on
wallarm_parse_response¶
Uygulama yanıtlarının analiz edilip edilmeyeceği. Yanıt analizi, pasif tespit ve tehdit tekrar testi sırasında güvenlik açığı tespiti için gereklidir.
Olası değerler on
(yanıt analizi etkin) ve off
(yanıt analizi devre dışı) şeklindedir.
Info
Bu parametre http, server ve location blokları içinde ayarlanabilir.
Varsayılan değer: on
Performansı iyileştirin
Performansı iyileştirmek için, statik dosyaların location
üzerinden işlenmesini devre dışı bırakmanız önerilir.
wallarm_parse_websocket
¶
Wallarm, API Security abonelik planı kapsamında tam WebSockets desteği sağlar. Varsayılan olarak, WebSockets mesajları saldırılar için analiz edilmez.
Özelliği zorlamak için, API Security abonelik planını etkinleştirin ve wallarm_parse_websocket
direktifini kullanın.
Olası değerler:
on
: mesaj analizi etkin.off
: mesaj analizi devre dışı.
Info
Bu parametre http, server ve location blokları içinde ayarlanabilir.
Varsayılan değer: off
wallarm_parser_disable¶
Parçalayacıları (parser) devre dışı bırakmaya izin verir. Direktif değerleri, devre dışı bırakılacak ayrıştırıcının adına karşılık gelir:
cookie
zlib
htmljs
json
multipart
base64
percent
urlenc
xml
jwt
Örnek
wallarm_parser_disable base64;
wallarm_parser_disable xml;
location /ab {
wallarm_parser_disable json;
wallarm_parser_disable base64;
proxy_pass http://example.com;
}
location /zy {
wallarm_parser_disable json;
proxy_pass http://example.com;
}
Info
Bu parametre http, server ve location blokları içinde ayarlanabilir.
wallarm_parse_html_response¶
Uygulama yanıtında alınan HTML koduna HTML ayrıştırıcılarının uygulanıp uygulanmayacağı. Olası değerler on
(HTML ayrıştırıcı uygulanır) ve off
(HTML ayrıştırıcı uygulanmaz).
Bu parametre yalnızca wallarm_parse_response on
ise etkilidir.
Info
Bu parametre http, server ve location blokları içinde ayarlanabilir.
Varsayılan değer: on
wallarm_partner_client_uuid¶
Çok kiracılı Wallarm düğümü için kiracının benzersiz tanımlayıcısı. Değer, UUID formatında bir dize olmalıdır, örneğin:
-
11111111-1111-1111-1111-111111111111
-
123e4567-e89b-12d3-a456-426614174000
Info
Bu parametre http, server ve location blokları içinde ayarlanabilir.
Bilin:
Yapılandırma örneği:
server {
server_name tenant1.com;
wallarm_partner_client_uuid 11111111-1111-1111-1111-111111111111;
...
location /login {
wallarm_application 21;
...
}
location /users {
wallarm_application 22;
...
}
server {
server_name tenant1-1.com;
wallarm_partner_client_uuid 11111111-1111-1111-1111-111111111111;
wallarm_application 23;
...
}
server {
server_name tenant2.com;
wallarm_partner_client_uuid 22222222-2222-2222-2222-222222222222;
...
}
...
}
Yukarıdaki yapılandırmada:
-
Kiracı, iş ortağının müşterisini temsil eder. İş ortağının 2 müşterisi vardır.
-
tenant1.com
vetenant1-1.com
hedefli trafik11111111-1111-1111-1111-111111111111
müşterisi ile ilişkilendirilecektir. -
tenant2.com
hedefli trafik22222222-2222-2222-2222-222222222222
müşterisi ile ilişkilendirilecektir. -
İlk müşterinin ayrıca
wallarm_application
direktifi ile belirtilen 3 uygulaması vardır:tenant1.com/login
–wallarm_application 21
tenant1.com/users
–wallarm_application 22
tenant1-1.com
–wallarm_application 23
Bu 3 yola yönelik trafik ilgili uygulama ile ilişkilendirilecek, geri kalan ise ilk müşterinin genel trafiği olacaktır.
wallarm_process_time_limit¶
Direktif kullanımdan kaldırılmıştır
3.6 sürümünden itibaren, overlimit_res
saldırı tespitini İstek işleme süresini sınırla kuralını (eski adıyla “overlimit_res saldırı tespitini ince ayar”) kullanarak ince ayar yapmanız önerilir.
wallarm_process_time_limit
direktifi geçici olarak desteklenmektedir ancak gelecekteki sürümlerde kaldırılacaktır.
Wallarm düğümü tarafından tek bir isteğin işlenmesi için zaman sınırını ayarlar.
Zaman sınırı aşılırsa, günlükte bir hata kaydedilir ve istek overlimit_res
saldırısı olarak işaretlenir. wallarm_process_time_limit_block
değerine bağlı olarak saldırı engellenebilir, izlenebilir veya yok sayılabilir.
Değer, birim olmadan milisaniye cinsinden belirtilir, örneğin:
wallarm_process_time_limit 1200; # 1200 milisaniye
wallarm_process_time_limit 2000; # 2000 milisaniye
Info
Bu parametre http, server ve location blokları içinde ayarlanabilir.
Varsayılan değer: 1000ms (bir saniye).
wallarm_process_time_limit_block¶
Direktif kullanımdan kaldırılmıştır
3.6 sürümünden itibaren, overlimit_res
saldırı tespitini İstek işleme süresini sınırla kuralını (eski adıyla “overlimit_res saldırı tespitini ince ayar”) kullanarak ince ayar yapmanız önerilir.
wallarm_process_time_limit_block
direktifi geçici olarak desteklenmektedir ancak gelecekteki sürümlerde kaldırılacaktır.
wallarm_process_time_limit
direktifinde ayarlanan zaman sınırını aşan isteklerin engellenmesini yönetme yeteneği:
on
:wallarm_mode off
olmadıkça istekler her zaman engellenir-
off
: istekler her zaman yok sayılırKoruma atlatma riski
off
değeri dikkatli kullanılmalıdır çünkü bu değeroverlimit_res
saldırılarına karşı korumayı devre dışı bırakır.off
değerinin yalnızca gerçekten gerekli olan, örneğin büyük dosya yüklemelerinin yapıldığı ve korumayı atlatma veya güvenlik açığı istismarı riski olmayan kesinlikle belirli location’larda kullanılması önerilir.Kesinlikle tavsiye edilmez,
wallarm_process_time_limit_block
değerini http veya server blokları için küresel olarakoff
olarak ayarlamak. -
attack
:wallarm_mode
direktifinde ayarlanan saldırı engelleme moduna bağlıdır:off
: istekler işlenmez.monitoring
: istekler yok sayılır ancakoverlimit_res
saldırılarıyla ilgili ayrıntılar Wallarm Cloud’a yüklenir ve Wallarm Console’da görüntülenir.safe_blocking
: yalnızca gri listede bulunan IP adreslerinden gelen istekler engellenir ve tümoverlimit_res
saldırılarıyla ilgili ayrıntılar Wallarm Cloud’a yüklenir ve Wallarm Console’da görüntülenir.block
: istekler engellenir.
Direktif değerinden bağımsız olarak, wallarm_mode off;
olmadıkça overlimit_res
saldırı türündeki istekler Wallarm Cloud’a yüklenir.
Info
Bu parametre http, server ve location blokları içinde ayarlanabilir.
Varsayılan değer: wallarm_process_time_limit_block attack
wallarm_proton_log_mask_master¶
NGINX master sürecinin hata ayıklama günlükleme ayarları.
Direktifin kullanımı
Direktifi yalnızca bir Wallarm destek ekibi üyesi tarafından yapmanız istenirse yapılandırmanız gerekir. Size direktif ile kullanılacak değeri sağlayacaklardır.
Info
Parametre yalnızca main seviyesinde yapılandırılabilir.
wallarm_proton_log_mask_worker¶
NGINX worker süreci için hata ayıklama günlükleme ayarları.
Direktifin kullanımı
Direktifi yalnızca bir Wallarm destek ekibi üyesi tarafından yapmanız istenirse yapılandırmanız gerekir. Size direktif ile kullanılacak değeri sağlayacaklardır.
Info
Parametre yalnızca main seviyesinde yapılandırılabilir.
wallarm_protondb_path¶
Uygulama yapısından bağımsız olan istek filtrelemesi için global ayarları içeren proton.db dosyasının yolu.
Info
Bu parametre http, server ve location blokları içinde ayarlanabilir.
Varsayılan değer:
- Docker NGINX tabanlı imaj, bulut imajları, NGINX Node all-in-one yükleyici ve Native Node kurulumları için
/opt/wallarm/etc/wallarm/proton.db
- Diğer kurulum ürünleri için
/etc/wallarm/proton.db
wallarm_rate_limit¶
Oran sınırlama yapılandırmasını aşağıdaki formatta ayarlar:
-
KEY_TO_MEASURE_LIMITS_FOR
- sınırları ölçmek istediğiniz anahtar. Metin, NGINX değişkenleri ve bunların kombinasyonunu içerebilir.Örneğin:
/login
uç noktasına yönelik ve aynı IP’den kaynaklanan istekleri sınırlamak için"$remote_addr +login"
. -
rate=<RATE>
(gerekli) - oran limiti,rate=<sayı>r/s
veyarate=<sayı>r/m
olabilir. -
burst=<BURST>
(isteğe bağlı) - belirtilen RPS/RPM aşıldığında tamponlanacak ve oran normale döndüğünde işlenecek aşırı isteklerin maksimum sayısı. Varsayılan0
. -
delay=<DELAY>
-<BURST>
değeri0
’dan farklıysa, tamponlanan aşırı isteklerin yürütülmesi arasında tanımlanan RPS/RPM’in korunup korunmayacağını kontrol edebilirsiniz.nodelay
, tüm tamponlanan aşırı isteklerin oran limiti gecikmesi olmadan eşzamanlı işlenmesini belirtir. Sayısal değer, belirtilen sayıda aşırı isteğin eşzamanlı işlenmesini, diğerlerinin ise RPS/RPM’de ayarlanan gecikmeyle işlenmesini ifade eder.
Örnek:
Info
Varsayılan değer: yok.
Bu parametre http, server, location bağlamlarında ayarlanabilir.
Oran sınırlama kuralını ayarlarsanız, wallarm_rate_limit
direktifi daha düşük önceliğe sahiptir.
wallarm_rate_limit_enabled¶
Wallarm oran sınırlamayı etkinleştirir/devre dışı bırakır.
off
ise, ne oran sınırlama kuralı (önerilen) ne de wallarm_rate_limit
direktifi çalışır.
Info
Varsayılan değer: on
ancak Wallarm oran sınırlama, oran sınırlama kuralı (önerilen) veya wallarm_rate_limit
direktifi yapılandırılmadan çalışmaz.
Bu parametre http, server, location bağlamlarında ayarlanabilir.
wallarm_rate_limit_log_level¶
Oran sınırlama kontrolü tarafından reddedilen isteklerin günlüğe kaydedilme seviyesi. Şunlar olabilir: info
, notice
, warn
, error
.
Info
Varsayılan değer: error
.
Bu parametre http, server, location bağlamlarında ayarlanabilir.
wallarm_rate_limit_status_code¶
Wallarm oran sınırlama modülü tarafından reddedilen isteklere yanıt olarak döndürülecek kod.
Info
Varsayılan değer: 503
.
Bu parametre http, server, location bağlamlarında ayarlanabilir.
wallarm_rate_limit_shm_size¶
Wallarm oran sınırlama modülünün tüketebileceği maksimum paylaşımlı bellek miktarını ayarlar.
Ortalama anahtar uzunluğu 64 bayt (karakter) ve wallarm_rate_limit_shm_size
64MB iken, modül aynı anda yaklaşık 130.000 benzersiz anahtarı işleyebilir. Belleğin iki katına çıkarılması modülün kapasitesini doğrusal olarak iki katına çıkarır.
Bir anahtar, modülün limitleri ölçmek için kullandığı bir istek noktasının benzersiz değeridir. Örneğin, modül bağlantıları IP adreslerine göre sınırlıyorsa, her benzersiz IP adresi tek bir anahtar olarak kabul edilir. Varsayılan direktif değeriyle, modül yaklaşık 130.000 farklı IP’den gelen istekleri aynı anda işleyebilir.
Info
Varsayılan değer: 64m
(64 MB).
Bu parametre yalnızca http bağlamı içinde ayarlanabilir.
wallarm_request_chunk_size¶
Bir iterasyon sırasında işlenen istek parçasının boyutunu sınırlar. wallarm_request_chunk_size
direktifine bir tamsayı atayarak bayt cinsinden özel bir değer belirleyebilirsiniz. Direktif ayrıca aşağıdaki son ekleri destekler:
-
kilobayt için
k
veyaK
-
megabayt için
m
veyaM
-
gigabayt için
g
veyaG
Info
Bu parametre http, server ve location blokları içinde ayarlanabilir.
Varsayılan değer: 8k
(8 kilobayt).
wallarm_request_memory_limit¶
Tek bir isteğin işlenmesi için kullanılabilecek maksimum bellek miktarı için bir limit ayarlayın.
Limit aşılırsa, istek işleme kesilir ve kullanıcı 500 hatası alır.
Bu parametrede aşağıdaki sonekler kullanılabilir:
-
kilobayt için
k
veyaK
-
megabayt için
m
veyaM
-
gigabayt için
g
veyaG
0
değeri limiti kapatır.
Varsayılan olarak, limitler kapalıdır.
Info
Bu parametre http, server ve/veya location blokları içinde ayarlanabilir.
wallarm_srv_include¶
API Specification Enforcement için yapılandırma dosyasının yolunu belirtir. Bu dosya varsayılan olarak tüm dağıtım ürünlerine dahil edilmiştir ve genellikle değişiklik gerekmez.
Ancak, özel bir nginx.conf
ile NGINX tabanlı Docker imajı kullanıyorsanız, bu direktifi belirtmeli ve dosyayı belirtilen yola yerleştirmelisiniz.
Direktif 4.10.7 sürümünden itibaren kullanılabilir.
Info
Parametre yalnızca http bloğu içinde yapılandırılır.
Varsayılan değer: /etc/nginx/wallarm-apifw-loc.conf;
.
wallarm_stalled_worker_timeout¶
Bir NGINX worker için tek bir isteğin işlenmesi için zaman sınırını saniye cinsinden ayarlar.
Zaman sınırı aşılırsa, NGINX worker’ları hakkında veriler stalled_workers_count
ve stalled_workers
istatistik parametrelerine yazılır.
Info
Bu parametre http, server ve location blokları içinde ayarlanabilir.
Varsayılan değer: 5
(beş saniye)
wallarm_status¶
Wallarm istatistik hizmetinin çalışmasını kontrol eder.
Direktif değeri aşağıdaki formata sahiptir:
wallarm_status
direktifini diğer NGINX kurulum dosyalarında kullanmaktan kaçınarak, istatistik hizmetini kendi dosyasında yapılandırmanız şiddetle önerilir, çünkü ikincisi güvensiz olabilir. wallarm-status
için yapılandırma dosyası şurada bulunur:
-
all-in-one yükleyici için
/etc/nginx/wallarm-status.conf
-
diğer kurulumlar için
/etc/nginx/conf.d/wallarm-status.conf
Ayrıca, varsayılan wallarm-status
yapılandırmasının mevcut satırlarından herhangi birini değiştirmemeniz şiddetle tavsiye edilir, çünkü bu, metrik veri yüklemesini Wallarm cloud’a bozabilir.
Info
Direktif, NGINX’in server
ve/veya location
bağlamında yapılandırılabilir.
format
parametresinin varsayılan değeri json
’dur.
wallarm_tarantool_upstream¶
wallarm_tarantool_upstream
adını wallarm_wstore_upstream
olarak değiştirin
NGINX Node sürüm 6.x ve sonrasında, bu parametre, mantığında herhangi bir değişiklik olmaksızın wallarm_wstore_upstream
olarak yeniden adlandırılmıştır.
Geriye dönük uyumluluk bir kullanım dışı uyarısı ile korunur, ancak eski direktif kaldırıldığında gelecekteki hatalardan kaçınmak için yeniden adlandırma önerilir. Uyarı örneği:
wallarm_timeslice¶
Bir filtreleme düğümünün bir isteği işlemeye ayırdığı süre sınırı; süre dolduğunda düğüm sıradaki bir sonraki isteği işlemeye geçer. Zaman sınırına ulaşıldığında, filtreleme düğümü kuyruktaki bir sonraki isteği işlemeye geçer. Kuyruktaki her istekte birer iterasyon gerçekleştirdikten sonra, düğüm kuyruktaki ilk istekte ikinci iterasyonu gerçekleştirir.
Direktife farklı zaman birimi değerleri atamak için NGINX belgelerinde açıklanan zaman aralığı soneklerini kullanabilirsiniz.
Info
Bu parametre http, server ve location blokları içinde ayarlanabilir.
Varsayılan değer: 0
(tek iterasyon için zaman limiti devre dışıdır).
Warning
NGINX sunucu sınırlamaları nedeniyle, wallarm_timeslice
direktifinin çalışması için proxy_request_buffering
NGINX direktifine off
değeri atanarak istek tamponlamasının devre dışı bırakılması gerekir.
wallarm_ts_request_memory_limit¶
Direktif kullanımdan kaldırıldı
Wallarm düğümü 4.0’dan itibaren, lütfen bunun yerine wallarm_general_ruleset_memory_limit
direktifini kullanın. Sadece direktif adını değiştirin, mantığı değişmedi.
wallarm_unpack_response¶
Uygulama yanıtında döndürülen sıkıştırılmış verilerin sıkıştırmasının açılıp açılmayacağı. Olası değerler on
(sıkıştırma açma etkin) ve off
(sıkıştırma açma devre dışı).
Bu parametre yalnızca wallarm_parse_response on
ise etkilidir.
Info
Varsayılan değer: on
.
wallarm_upstream_backend¶
Seri hale getirilmiş isteklerin gönderilmesi için yöntem. İstekler ya wstore’a ya da API’ye gönderilebilir.
Direktifin olası değerleri:
-
wstore
-
api
Diğer direktiflere bağlı olarak, varsayılan değer aşağıdaki şekilde atanır:
-
Yapılandırmada
wallarm_api_conf
direktifi yoksawstore
. -
Yapılandırmada
wallarm_api_conf
direktifi var ancakwallarm_wstore_upstream
direktifi yoksaapi
.Note
wallarm_api_conf
vewallarm_wstore_upstream
direktifleri yapılandırmada aynı anda bulunursa, directive ambiguous wallarm upstream backend biçiminde bir yapılandırma hatası oluşur.
Info
Bu parametre yalnızca http bloğu içinde ayarlanabilir.
wallarm_upstream_connect_attempts¶
wstore veya Wallarm API’ye yapılacak anlık tekrar bağlanma denemelerinin sayısını tanımlar.
wstore veya API’ye bağlantı kesilirse, tekrar bağlanma denemesi gerçekleşmez. Ancak, başka bağlantı kalmadığında ve seri hale getirilmiş istek kuyruğu boş olmadığında bu durum geçerli değildir.
Note
Yeniden bağlanma başka bir sunucu üzerinden gerçekleşebilir, çünkü sunucu seçimi “upstream” alt sistemi tarafından yapılır.
Bu parametre yalnızca http bloğu içinde ayarlanabilir.
wallarm_upstream_reconnect_interval¶
wallarm_upstream_connect_attempts
eşiğini aşan başarısız denemelerden sonra wstore veya Wallarm API’ye yeniden bağlanma denemeleri arasındaki aralığı tanımlar.
Info
Bu parametre yalnızca http bloğu içinde ayarlanabilir.
wallarm_upstream_connect_timeout¶
wstore veya Wallarm API’ye bağlanma için zaman aşımını tanımlar.
Info
Bu parametre yalnızca http bloğu içinde ayarlanabilir.
wallarm_upstream_queue_limit¶
Seri hale getirilmiş istek sayısına bir sınır tanımlar.
wallarm_upstream_queue_limit
parametresinin aynı anda ayarlanması ve wallarm_upstream_queue_memory_limit
parametresinin ayarlanmaması, ikincisi için bir sınır olmayacağı anlamına gelir.
Info
Bu parametre yalnızca http bloğu içinde ayarlanabilir.
wallarm_upstream_queue_memory_limit¶
Seri hale getirilmiş isteklerin toplam hacmine bir sınır tanımlar.
wallarm_upstream_queue_memory_limit
parametresinin aynı anda ayarlanması ve wallarm_upstream_queue_limit
parametresinin ayarlanmaması, ikincisi için bir sınır olmayacağı anlamına gelir.
Info
Varsayılan değer: 100m
.
Bu parametre yalnızca http bloğu içinde ayarlanabilir.
wallarm_wstore_upstream¶
NGINX-Wallarm modülünün ayrı postanalytics modülüne nasıl bağlanacağını tanımlar: postanalytics sunucu upstream’i ve SSL/TLS bağlantı ayarları.
Sözdizimi:
-
<UPSTREAM>
- postanalytics modül adresine işaret eden upstream bloğunun adı. -
ssl
(6.2.0 sürümünden itibaren kullanılabilir) — postanalytics modülüne bağlantı için SSL/TLS’i etkinleştirir veya devre dışı bırakır. Kabul edilen değerler:on
veyaoff
.Varsayılan olarak
off
.on
olarak ayarlanırsa, ayrıca şu ayarların yapılması gerekir: -
skip_host_check
(6.2.0 sürümünden itibaren, yalnızcassl=on
ise) - TLS el sıkışması sırasında ana bilgisayar adı doğrulamasını atlar.Common Name (CN) eşleşmeyen bir sertifika ile localhost veya bir IP adresine bağlanırken kullanışlıdır. Üretimde önerilmez.
-
insecure
(6.2.0 sürümünden itibaren, yalnızcassl=on
ise) - tam sertifika doğrulamasını (CA ve ana bilgisayar adı kontrolleri dahil) devre dışı bırakır.Yalnızca self-signed veya geçici sertifikalar kullanılırken geliştirme veya test ortamlarında kullanın.
Örnek:
upstream wallarm_wstore {
server 1.1.1.1:3313 max_fails=0 fail_timeout=0 max_conns=1;
keepalive 1;
}
# omitted
wallarm_wstore_upstream wallarm_wstore ssl=on;
Postanalytics için upstream yapılandırması
Postanalytics modülü için upstream
bloğunda (wallarm_wstore_upstream
direktifi tarafından referans verilen), aşağıdaki standart upstream ayarlarını yapılandırabilirsiniz:
- Postanalytics modülünün IP adresi ve portu
max_fails
fail_timeout
max_conns
- aşırı bağlantı oluşturmayı önlemek için her upstream wstore sunucusu için belirtilmelidirkeepalive
- wstore sunucularının sayısından düşük olmamalıdır
Info
Parametre yalnızca http bloğu içinde yapılandırılır.
wallarm_wstore_ssl_cert_file¶
NGINX-Wallarm modülü tarafından postanalytics modülüne SSL/TLS bağlantısı kurulurken kendini doğrulamak için kullanılan istemci sertifikasının yolunu belirtir.
Bu direktif, NGINX-Wallarm ve ayrı sunuculara kurulmuş postanalytics modülleri için karşılıklı TLS (mTLS) etkinleştirildiğinde gereklidir.
Direktif 6.2.0 sürümünden itibaren kullanılabilir.
Info
Parametre yalnızca http bloğu içinde yapılandırılır.
wallarm_wstore_ssl_key_file¶
wallarm_wstore_ssl_cert_file
ile sağlanan istemci sertifikasına karşılık gelen özel anahtarın yolunu belirtir.
Bu direktif, NGINX-Wallarm ve ayrı sunuculara kurulmuş postanalytics modülleri için karşılıklı TLS (mTLS) etkinleştirildiğinde gereklidir.
Direktif 6.2.0 sürümünden itibaren kullanılabilir.
Info
Parametre yalnızca http bloğu içinde yapılandırılır.
wallarm_wstore_ssl_ca_cert_file¶
Postanalytics modülü tarafından sunulan TLS sertifikasını doğrulamak için kullanılan güvenilir bir Sertifika Yetkilisi (CA) sertifikasının yolunu belirtir.
Özel bir CA tarafından verilmiş bir sertifika kullanan bir sunucuya bağlanırken gereklidir.
Direktif 6.2.0 sürümünden itibaren kullanılabilir.
Info
Parametre yalnızca http bloğu içinde yapılandırılır.