Skip to content
Smarter by Design.Simpler for Business

lb condition ​

lb condition komutu, bir aksiyonun hangi trafikte uygulanacağını belirleyen koşulları oluşturur. Koşul tek başına bir şey yapmaz: bir aksiyona ya da profile bağlandığında, o işin yalnız eşleşen isteklerde çalışmasını sağlar. Panel karşılığı Conditions bölümüdür.

İlk yazılan alan criteria'dır

Neye bakılacağı önce seçilir; hangi alanların isteneceğini bu seçim belirler. Ölçüt yazılmadan başka alan listelenmez.

Komut Özeti ​

TR7 WEB-CLI · lb condition
# komuttan sonra Tab
admin@TR7LBWAF01> lb condition
add delete list show update
 
admin@TR7LBWAF01> lb condition list # hepsini listele
admin@TR7LBWAF01> lb condition show <kimlik> # birini göster
admin@TR7LBWAF01> lb condition add criteria <ölçüt> … # yeni koşul
admin@TR7LBWAF01> lb condition update id <kimlik> … # değiştir
admin@TR7LBWAF01> lb condition delete <kimlik> # sil
admin@TR7LBWAF01>  

Yazım Sırası ​

Adım 1 Ölçütü seç
Kırk iki ölçüt vardır; Tab tümünü listeler. lb condition add criteria path
Adım 2 Ölçütün zorunlu alanlarını yaz
Aranacak değer, başlık adı, çerez adı gibi alanlar ölçüte göre istenir.
Adım 3 Eşleştirme biçimini ve adı ekle
--content_placement start --name yonetim-yolu
Adım 4 Aksiyona bağla
lb action update id <aksiyon> --cond <koşul>

Zorunlu Alanlar ​

Ölçüt bu komutta bir ayırıcıdır: CLI önce criteria ister, ardından o ölçütün zorunlu alanlarını sırayla sorar. Ölçüte özel zorunlu alanlar satırda -- ile başlayan alan olsa bile öneksiz yazılır ve hepsi tamamlanmadan -- ile başlayan hiçbir alan kabul edilmez. Listede olmayan ölçütlerde ek zorunlu alan yoktur.

SıraAlanDurumDeğer
1criteriaZorunluKırk iki ölçütten biri; Tab listeler
2queryKoşullu zorunlureq_body · res_body · query_param · path · pathq · url ölçütlerinde aranacak değer
2 · 3headerName · queryKoşullu zorunluhttp_header; başlık adı ve aranacak değer
2 · 3cookieName · queryKoşullu zorunluuser_cookie · be_cookie; çerez adı ve aranacak değer
2 · 3rdpCookieName · queryKoşullu zorunlurdp_cookie; RDP çerez adı ve aranacak değer
2 · 3mapKey · mapContentKoşullu zorunlucustom_map; aranacak anahtar ve liste içeriği
2acceptLanguageKoşullu zorunluaccept_language; dil kodu
2 · 3srcIpType · country · city · src · asnKoşullu zorunlusrc_ip; önce tür, sonra türe göre ülke, şehir, adres ya da ASN
2dstKoşullu zorunludst; hedef adres
2manualCondContentKoşullu zorunlumanualCond; koşul ifadesi
2 · 3smartVar · smartOperatorKoşullu zorunlusmartCond; değişken ve işleç. Ardından işlecin değer alanı istenir (bkz. Dinamik Koşullar)
2 · 3agsVar · agsOperatorKoşullu zorunluagsCond; değişken ve işleç. Ardından işlecin değer alanı istenir
4 · 5smartStrRefValue · staticStrRefValue · staticRegexRefValue · smartIntRefValue · smartIntRefFrom · smartIntRefTo · staticIpCidrRefValue.ip · staticIpCidrRefValue.cidrKoşullu zorunlusmartCond ve agsCond; seçilen işlecin değer alanı. Hangisinin isteneceği Dinamik Koşullar tablosundadır; bool işlecinde değer alanı yoktur

Her Ölçütte Bulunabilen Alanlar ​

AlanNe yaparArkasına ne yazılır
--nameKoşula ad verir; adlandırılan koşul başka yerlerden seçilebilirKoşulun adı. Zorunlu değildir
--content_placementAranan değerin nasıl eşleşeceğini belirlerexactMatch tam eşleşme (varsayılan) · start ile başlar · end ile biter · sub içerir · regex düzenli ifade · found alanın yalnız varlığına bakar
--caseInsensitiveEşleştirmede büyük ve küçük harf ayrımını kaldırırtrue · false (varsayılan false)
--condLocKoşulun istekte mi yanıtta mı değerlendirileceğini seçeratRequest (varsayılan) · atResponse
--condProKoşulun hangi aşamada değerlendirileceğini seçeratRequest (varsayılan) · atResponse

Bu alanların hangi ölçütte açıldığı ölçütün türüne bağlıdır: eşleştirme biçimi ve harf duyarlılığı yalnız metin arayan ölçütlerde, --condLoc ile --condPro yalnız aşama seçilebilen ölçütlerde görünür.

Ölçütler ​

Aşağıdaki tablolarda kırk iki ölçütün tamamı, zorunlu ve ölçüte özel isteğe bağlı alanlarıyla verilmiştir. Yukarıdaki ortak alanlar tekrar yazılmamıştır.

İçerik Eşleştiren Ölçütler ​

criteriaPanel karşılığıZorunlu alanlarÖlçüte özel isteğe bağlı alanlar
pathPathquery—
pathqPath + queryquery—
urlURLquery—
query_paramQuery parameterquery—
http_headerHTTP headerheaderName · query—
user_cookieUser cookie namecookieName · query—
be_cookieServer cookie namecookieName · query—
rdp_cookieRDP cookierdpCookieName · query—
req_bodyHTTP request bodyquery--bodySize
res_bodyHTTP response bodyquery--bodySize

İstemciyi Tanıyan Ölçütler ​

criteriaPanel karşılığıZorunlu alanlarÖlçüte özel isteğe bağlı alanlar
browserBrowser—--browserName.N
operatingSystemOperating system—--operatingSystem.N
mobileMobile platform—--mobilePlatform.N
botBot type—--botType.N
nettype_groupNetwork type group—--nettypeGroup.N
nettype_categoryNetwork type category—--nettypeCategory.N
blacklist_ip_categoryBlacklist IP category—--blacklistIpCategory
accept_languageClient language preferenceacceptLanguage--acceptLanguageCompare.N

Adres ve Port Ölçütleri ​

criteriaPanel karşılığıZorunlu alanlarÖlçüte özel isteğe bağlı alanlar
src_ipSource IPsrcIpType → türe göre country · city · src · asn—
dstDestination IPdst—
dst_portDestination port—--dst_port.op · --dst_port.val

Sayısal Ölçütler ​

criteriaPanel karşılığıZorunlu alanlarÖlçüte özel isteğe bağlı alanlar
statusStatus code—--status_op.op · --status_op.val
resp_timeServer response time—--resp_time_op.op · --resp_time_op.val
nbsrvNumber of active servers—--nbsrv_op.op · --nbsrv_op.val
req_sizeRequest size (bytes)—--req_size_op.op · --req_size_op.val
res_sizeResponse size (bytes)——
fe_connFrontend connection—--fe_conn_op.op · --fe_conn_op.val
fe_sess_rateFrontend number of new sessions / s—--fe_sess_rate_op.op · --fe_sess_rate_op.val
fe_req_rateFrontend number of HTTP requests / s—--fe_req_rate_op.op · --fe_req_rate_op.val

TLS Ölçütleri ​

criteriaPanel karşılığıZorunlu alanlarÖlçüte özel isteğe bağlı alanlar
ssl_fc_cipherSSL cipher——
ssl_fc_protocolSSL version——
ssl_fc_sniSSL SNI info——

Kimlik ve WAF Ölçütleri ​

criteriaPanel karşılığıZorunlu alanlarÖlçüte özel isteğe bağlı alanlar
http_authUser authentication—--userPassPairs.N.username · --userPassPairs.N.password
waf_attack_idWAF attack ID—--wafAttackIds.N
waf_attack_groupWAF attack group—--wafAttackGroups.N

Liste ve Dinamik Ölçütler ​

criteriaPanel karşılığıZorunlu alanlarÖlçüte özel isteğe bağlı alanlar
url_listResponse based URL list——
custom_mapDynamic listmapKey · mapContent--mapMethod
manualCondManual conditionmanualCondContent—
smartCondDynamic conditionsmartVar · smartOperator—
agsCondAGS conditionagsVar · agsOperator—
trackingCondTracking conditiontrackingCondCriteria · trackingCondOp.val · trackingTableTag--trackingCondOp.op
quarantineCondQuarantine conditiontrackingCondCriteria · trackingCondOp.val--trackingCondOp.op

Ölçüt Alanlarının Karşılıkları ​

AlanNe yaparArkasına ne yazılır
queryAranacak değeri taşırAranan metin; nasıl eşleşeceğini --content_placement belirler
headerNameHangi HTTP başlığına bakılacağını belirlerBaşlık adı, örneğin X-Forwarded-For
cookieNameHangi çereze bakılacağını belirlerÇerez adı
rdpCookieNameHangi RDP çerezine bakılacağını belirlerRDP çerez adı
--bodySizeGövdenin kaç baytının çözümleneceğini sınırlarBayt sayısı
--browserName.N · --operatingSystem.N · --mobilePlatform.N · --botType.Nİstemcinin hangi tarayıcı, işletim sistemi, mobil platform ya da bot türünde olduğuna bakarListeden seçilen değerler; her biri kendi indeksiyle
--nettypeGroup.N · --nettypeCategory.NKaynak adresin ağ türü grubuna ya da kategorisine bakarListeden seçilen değerler
--blacklistIpCategoryKaynak adresin hangi kara liste kategorisinde olduğuna bakarKategori değeri
acceptLanguageİstemcinin dil tercihine bakarDil kodu
--acceptLanguageCompare.NKarşılaştırılacak ek dilleri belirlerDil kodları
srcIpTypeKaynak adresin nasıl belirleneceğini seçercountry ülkeye göre · city şehre göre · manual elle yazılan adres · asn otonom sistem numarasına göre
country · city · src · asnSeçilen türe göre karşılaştırılacak değeri taşırÜlke, şehir, adres ya da ASN; hangisinin isteneceğini srcIpType belirler
dstHedef adrese bakarIP adresi
--dst_port.op · --dst_port.val · --dst_port.val2Hedef portu bir eşikle ya da aralıkla karşılaştırırİşleç (varsayılan =), sayı ve aralıkta üst sınır
--status_op.op · --status_op.val · --status_op.val2Yanıtın durum kodunu karşılaştırırİşleç, sayı ve aralıkta üst sınır
--resp_time_op.op · --resp_time_op.val · --resp_time_op.val2Arka ucun yanıt süresini karşılaştırırİşleç, süre değeri ve aralıkta üst sınır
--nbsrv_op.op · --nbsrv_op.val · --nbsrv_op.val2Ayakta olan sunucu sayısını karşılaştırırİşleç, sayı ve aralıkta üst sınır
--req_size_op.op · --req_size_op.val · --req_size_op.val2İstek boyutunu karşılaştırırİşleç, bayt sayısı ve aralıkta üst sınır
--fe_conn_op.op · --fe_conn_op.val · --fe_conn_op.val2Karşılama tarafındaki bağlantı sayısını karşılaştırırİşleç, sayı ve aralıkta üst sınır
--fe_sess_rate_op.op · --fe_sess_rate_op.val · --fe_sess_rate_op.val2Saniyedeki yeni oturum sayısını karşılaştırırİşleç, sayı ve aralıkta üst sınır
--fe_req_rate_op.op · --fe_req_rate_op.val · --fe_req_rate_op.val2Saniyedeki istek sayısını karşılaştırırİşleç, sayı ve aralıkta üst sınır
--userPassPairs.N.username · --userPassPairs.N.passwordTemel kimlik doğrulamada kabul edilecek kullanıcıları tanımlarKullanıcı adı ve parola; her çift kendi indeksiyle
--wafAttackIds.N · --wafAttackGroups.NWAF'ın işaretlediği saldırı kimliğine ya da grubuna bakarKimlik ya da grup değerleri
mapKey · mapContentDinamik listede hangi anahtarın hangi liste içinde aranacağını belirlerAranacak anahtar ve liste içeriği
--mapMethodDinamik liste aramasının biçimini seçerexactMatch (varsayılan) · start · end · sub · regex · ip
manualCondContentKoşulu doğrudan ifade olarak yazarKoşul ifadesi
smartVar · agsVarDinamik koşulda hangi değişkene bakılacağını belirlerDeğişken adı
trackingCondCriteriaTakip tablosunda hangi ölçünün izleneceğini seçerTakip ölçütü
trackingCondOp.val · --trackingCondOp.op · --trackingCondOp.val2İzlenen ölçüyü bir eşikle ya da aralıkla karşılaştırırSayı, işleç (varsayılan =) ve aralıkta üst sınır
trackingTableTagHangi takip tablosuna bakılacağını belirlerTablo etiketi; yalnız trackingCond ölçütünde istenir

Sayısal Karşılaştırma Alanları ​

Sayısal ölçütlerin hepsi aynı üç parçalı yapıyı kullanır: işleç, değer ve aralık işleci seçildiğinde ikinci değer.

ParçaNe yaparArkasına ne yazılır
--<ölçüt>_op.opKarşılaştırma işlecini seçer= eşit (varsayılan) · < küçük · > büyük · - aralık. İşaret içerdiği için çift tırnak içinde yazılır
--<ölçüt>_op.valKarşılaştırılacak değeri verirSayı; aralıkta alt sınırdır
--<ölçüt>_op.val2Aralığın üst sınırını verirSayı; yalnız --<ölçüt>_op.op "-" yazıldığında açılır

Bu yapıyı kullanan alanlar: status_op · dst_port · resp_time_op · nbsrv_op · req_size_op · fe_conn_op · fe_sess_rate_op · fe_req_rate_op · trackingCondOp. Örneğin durum kodunu 500 ile 599 arasında aramak için --status_op.op "-" --status_op.val 500 --status_op.val2 599 yazılır.

Dinamik Koşullar: İşleç ve Değer Alanı ​

smartCond ve agsCond ölçütlerinde önce bakılacak değişken (smartVar ya da agsVar), sonra işleç yazılır. Değerin hangi alana yazılacağını seçilen işleç belirler.

İşleçNe yaparDeğer alanı
strEqMetin birebir eşit mismartStrRefValue
strSubMetin içeriyor mustaticStrRefValue
strStartMetin ile başlıyor mustaticStrRefValue
strEndMetin ile bitiyor mustaticStrRefValue
strRegexDüzenli ifadeye uyuyor mustaticRegexRefValue
intEqSayı eşit mismartIntRefValue
intGtSayı büyük müsmartIntRefValue
intLtSayı küçük müsmartIntRefValue
intRangeSayı iki değer arasında mısmartIntRefFrom ve smartIntRefTo
boolDeğer doğru muDeğer alanı yoktur
ipCidrAdres verilen ağa düşüyor mustaticIpCidrRefValue.ip ve staticIpCidrRefValue.cidr

İşleç yazıldığı anda ilgili değer alanı zorunlu olur ve öneksiz yazılır; öteki değer alanları listeden düşer.

Örnekler ​

TR7 WEB-CLI · A) Yol ve başlık koşulları
# /yonetim ile başlayan istekler
admin@TR7LBWAF01> lb condition add criteria path query /yonetim \
--content_placement start --name yonetim-yolu
 
# belirli bir API anahtarı taşıyan istekler
admin@TR7LBWAF01> lb condition add criteria http_header headerName X-API-Key query <değer> \
--caseInsensitive true --name api-anahtari
admin@TR7LBWAF01>  
TR7 WEB-CLI · B) Kaynak adres ve sayısal ölçüt
# ülkeye göre kaynak adres
admin@TR7LBWAF01> lb condition add criteria src_ip srcIpType country country <ülke> --name yurt-disi
 
# yanıt süresi eşiği; işleç işaret içerdiğinden tırnaklanır
admin@TR7LBWAF01> lb condition add criteria resp_time --resp_time_op.op ">" --resp_time_op.val 2000 \
--name yavas-yanit
admin@TR7LBWAF01>  
TR7 WEB-CLI · C) Dinamik koşul ve aksiyona bağlama
# ipCidr işleci seçilince adres ve maske alanları açılır
admin@TR7LBWAF01> lb condition add criteria smartCond smartVar <değişken> smartOperator ipCidr \
staticIpCidrRefValue.ip 10.0.0.0 staticIpCidrRefValue.cidr 8 --name ic-ag
 
admin@TR7LBWAF01> lb action update id <aksiyon> --cond <koşul>
admin@TR7LBWAF01>  

Güncelleme ve Silme ​

TR7 WEB-CLI · güncelleme ve silme
admin@TR7LBWAF01> lb condition update id <kimlik> --query /panel
admin@TR7LBWAF01> lb condition delete <kimlik>
admin@TR7LBWAF01>  

Bilinmesi Gerekenler ​

  • Koşul tek başına çalışmaz. Bir aksiyona (lb action → --cond), önbellek kuralına ya da profil alanına bağlandığında devreye girer.
  • Ad zorunlu değildir. Adsız koşul da oluşturulabilir; ancak başka yerlerden seçilebilmesi için ad vermek işi kolaylaştırır.
  • İşleç değerleri tırnak ister. > ve < gibi işaretler komut satırında ayrıştırıcı için özel anlam taşır; çift tırnak içinde yazılır.
  • Değer alanını işleç belirler. Dinamik koşullarda işleç değiştiğinde önceki değer alanı listeden düşer, yenisi zorunlu olur.
  • Eşleştirme biçimi her ölçütte bulunmaz. --content_placement ve --caseInsensitive yalnız metin arayan ölçütlerde görünür.