İçeriğe geç

Alanlar

Alan, bir kuralın isteğin hangi özelliğine bakacağını belirler: ziyaretçinin IP’si mi, istediği sayfa mı, bot skoru mu? Her koşul IF {alan} {operatör} {değer} sözdizimini izler. 30 alan beş kategoriye ayrılır; doğru alanı seçmek için şu soruyu sorun:

  • “Kim istiyor?” → Ağ (IP, ülke, ASN) veya Bot & Tehdit (bot skoru, VPN/Tor)
  • “Neyi istiyor?” → HTTP İstek (path, metod, header, çerez)
  • “Origin ne yanıtladı?” → HTTP Yanıt (durum kodu — otomatik engelleme için)

Tablolardaki adlar, konsolun alan menüsünde gördüğünüz etiketlerle birebir aynıdır ve her alanın kendi referans sayfasına gider. Anahtar sütunu ise alanın teknik adıdır — konsolun Kural Önizleme bölümünde koşullar bu adlarla görünür.


İsteğin kaynağını hedefler: tek IP, IP aralığı, önceden tanımladığınız IP listesi, otonom sistem (ASN) veya ülke. Coğrafi kısıtlama, güvenilir IP muafiyeti ve veri merkezi trafiğini ayıklamanın temel araçlarıdır.

AlanAnahtarNe işe yarar
IP Adresiip.srcTek bir IP’yi hedefler — yalnızca düz IPv4/IPv6 kabul eder, CIDR için ip.prefix kullanın
IP Aralığı (CIDR)ip.prefixCIDR bloklarını hedefler (10.0.0.0/8 gibi) — ofis ağı, bulut sağlayıcı aralıkları
IP Listesiip.listIP Listeleri sayfasında tanımladığınız adlandırılmış listeye üyelik — listeyi güncelleyin, tüm kurallar otomatik etkilensin
ASN Numarasıip.asnumIP’nin ait olduğu otonom sistem — belirli bir hosting firmasının tüm aralığını tek koşulla hedefler
Ülkeip.countryIP’nin ülkesi (ISO 3166-1 alpha-2: TR, DE…) — coğrafi kısıtlamanın temeli

Operatörler: == != in not_in — ip.list yalnızca in / not_in kabul eder; ip.asnum ek olarak sayısal karşılaştırmayı (gt ge lt le) destekler.

# Tek ülkeyi engelle
IF ip.country == RU
THEN block
# Adlandırılmış listedeki IP'lere izin ver
IF ip.list in "ofis-ipleri"
THEN allow
# İç ağ bloğuna izin ver
IF ip.prefix == 10.0.0.0/8
THEN allow

Konsolda bu seçimlerle:

  • Tek ülkeyi engelle — Alan Ülke · Operatör eşittir · Değer RU → Aksiyon Engelle
  • Listedeki IP’lere izin ver — Alan IP Listesi · Operatör listede · Değer ofis-ipleri → Aksiyon İzin Ver
  • İç ağ bloğuna izin ver — Alan IP Aralığı (CIDR) · Operatör eşittir · Değer 10.0.0.0/8 → Aksiyon İzin Ver

İsteğin içeriğini hedefler: hangi alan adına, hangi path’e, hangi metodla, hangi başlıklarla gelindiği. Path bazlı koruma (örn. /admin), API kontrolleri ve User-Agent filtrelemenin araçlarıdır.

AlanAnahtarNe işe yarar
Host (Domain)http.hostİstenen alan adı — aynı WAF zone’daki alt alan adlarını ayırt etmek için
HTTP Metoduhttp.request.methodGET, POST, PUT… — örn. yalnızca yazma isteklerini sıkılaştırın
Path (sorgusuz)http.request.base_uriSorgusuz tam path (/admin/login) — path bazlı kuralların birincil alanı
URI Son Segmentihttp.request.uri.pathPath’in son segmenti (/admin/login → /login) — dosya adı hedefleme; tam path için base_uri kullanın
Sorgu Parametrelerihttp.request.uri.query? sonrası kısım — parametre bazlı filtreleme
URI (sorgu dahil)http.request.uriPath + sorgu birlikte
Tam URI (host+path)http.request.full_uriHost dahil tam adres
HTTP Sürümühttp.request.version1.0, 1.1, 2, 3 — eski protokolle gelen şüpheli istemciler
Headerhttp.headerHerhangi bir başlığı ad=değer olarak kontrol eder — API anahtarı, özel header doğrulama
Çerezhttp.cookieBelirli bir çerezin varlığı/değeri — oturumlu kullanıcıları ayırt etme
User Agenthttp.user_agentTarayıcı/bot kimliği — bilinen kötü araçları adıyla engelleme
Refererhttp.refererİsteğin geldiği sayfa — hotlink engelleme
X-Forwarded-For IPhttp.x_forwarded_forProxy zincirindeki istemci IP başlığı
TLS Sürümütls.versionBağlantının TLS sürümü — eski/güvensiz istemcileri kısıtlama

Operatörler: == != in not_in contains not_contains has_prefix has_not_prefix has_suffix has_not_suffix — istisnalar: http.request.method ve http.request.version yalnızca eşitlik + liste (== != in not_in); tls.version ek olarak sayısal karşılaştırma (gt ge lt le) destekler. Metin karşılaştırmaları büyük/küçük harfe duyarlıdır.

# Admin paneline CAPTCHA
IF http.request.base_uri has_prefix /admin
THEN captcha
# Bilinen kötü aracı engelle
IF http.user_agent contains BadBot
THEN block
# Login POST'una hız sınırı
IF http.request.method == POST
AND http.request.base_uri == /login
THEN ratelimit 10/60s
# API anahtarı olmayan istekleri reddet
IF http.header not_contains X-Api-Key
AND http.request.base_uri has_prefix /api
THEN block

Konsolda bu seçimlerle:

  • Admin paneline CAPTCHA — Alan Path (sorgusuz) · Operatör ile başlar · Değer /admin → Aksiyon CAPTCHA
  • Bilinen kötü aracı engelle — Alan User Agent · Operatör içerir · Değer BadBot → Aksiyon Engelle
  • Login POST’una hız sınırı — Alan HTTP Metodu · Operatör eşittir · Değer POST VE Alan Path (sorgusuz) · Operatör eşittir · Değer /login → Aksiyon Rate Limit (10 istek / 60 sn)
  • API anahtarı olmayanı reddet — Alan Header · Operatör içermez · Değer X-Api-Key VE Alan Path (sorgusuz) · Operatör ile başlar · Değer /api → Aksiyon Engelle

HEIMWALL’ın her istek için ürettiği istihbarat sinyallerini kullanır: istek bir bottan mı geliyor, hangi bot, ne kadar şüpheli, VPN/Tor arkasında mı? Bu alanlar sayesinde User-Agent gibi kolayca taklit edilebilen değerlere güvenmek zorunda kalmazsınız.

AlanAnahtarNe işe yarar
Bilinen Botwaf.client.botİstemci doğrulanmış bir bot mu (on/off) — Googlebot gibi kimliği teyitli botlar
Bot Adıwaf.client.bot_nameDoğrulanmış botun adı (googlebot… — küçük harf) — tek bir botu hedefleme
Bot Kategorisiwaf.client.bot_categoryBotun işlevi (arama, SEO, AI…) — kategori bazında izin/engel
Bot Skoru (0–100)waf.bot_score0–100 davranışsal skor (0 = insan, 100 = bot) — doğrulanamayan otomasyonu yakalar
IP Altyapı Tipiwaf.client.ip_typeIP’nin kaynağı: ev kullanıcısı mı, veri merkezi mi? hosting tipi otomasyonun güçlü işaretidir
VPNwaf.client.vpnBilinen VPN çıkışı (on/off)
Proxywaf.client.proxyBilinen açık proxy (on/off)
Torwaf.client.torTor çıkış düğümü (on/off)
Özel Relay (Apple)waf.client.relayApple iCloud Private Relay (on/off) — meşru gizlilik servisi, engellemeden önce düşünün

Bot kategorileri (17): search seo ai_crawler ai_assistant ai_search advertising social monitoring preview feed aggregator archiver security accessibility academic webhook other

IP tipleri (6): residential mobile business hosting education government

Operatörler: kategori/tip alanları (bot_category, ip_type) == != in not_in; bot_name ek olarak contains; on/off sinyalleri (bot, vpn, proxy, tor, relay) yalnızca == !=; waf.bot_score yalnızca sayısal karşılaştırma (gt ge lt le).

# Şüpheli davranışa CAPTCHA
IF waf.bot_score ge 60
THEN captcha
# Arama/SEO/izleme dışındaki doğrulanmış botları engelle
IF waf.client.bot == on
AND waf.client.bot_category not_in search, seo, monitoring
THEN block
# Yurt dışı VPN trafiğine doğrulama
IF waf.client.vpn == on
AND ip.country not_in TR
THEN captcha
# Veri merkezinden gelen API isteğine JS doğrulaması
IF waf.client.ip_type == hosting
AND http.request.base_uri has_prefix /api
THEN js

Konsolda bu seçimlerle:

  • Şüpheli davranışa CAPTCHA — Alan Bot Skoru (0–100) · Operatör büyük eşittir · Değer 60 → Aksiyon CAPTCHA
  • Doğrulanmış botları engelle — Alan Bilinen Bot · Operatör eşittir · Değer Evet VE Alan Bot Kategorisi · Operatör listede değil · Değer search, seo, monitoring → Aksiyon Engelle
  • Yurt dışı VPN trafiğine doğrulama — Alan VPN · Operatör eşittir · Değer Evet VE Alan Ülke · Operatör listede değil · Değer TR → Aksiyon CAPTCHA
  • Veri merkezi API isteğine JS — Alan IP Altyapı Tipi · Operatör eşittir · Değer hosting VE Alan Path (sorgusuz) · Operatör ile başlar · Değer /api → Aksiyon JS Doğrulama

Origin sunucunuzun verdiği yanıtı hedefler. Kullanım amacı tektir: hata üreten istemcileri otomatik yasaklamak — örn. art arda 401 alan bir IP büyük olasılıkla parola deniyordur.

AlanAnahtarNe işe yarar
Origin Yanıt Koduhttp.response.statusOrigin’in döndürdüğü HTTP kodu — 401/403/404 sayaçlarıyla brute-force tespiti
Origin Yanıt Headerihttp.response.headerOrigin yanıtındaki bir başlık — uygulamanızın işaretlediği istekleri yakalama
# Yetkisiz deneme yapan IP'leri failban'e say
IF http.response.status == 401
THEN failban
# Tüm 4xx hatalarını say
IF http.response.status ge 400
AND http.response.status lt 500
THEN failban

Konsolda bu seçimlerle:

  • Yetkisiz denemeleri say — Alan Origin Yanıt Kodu · Operatör eşittir · Değer 401 → Aksiyon Otomatik Engelleme (konsol bu alanda aksiyonu otomatik kilitler)
  • Tüm 4xx hatalarını say — Alan Origin Yanıt Kodu · Operatör büyük eşittir · Değer 400 VE Operatör küçüktür · Değer 500 → Aksiyon Otomatik Engelleme