Administrator
Joined: Sep 11, 2024
Messages: 18
Reaction score: 2
Points: 3
Cloudflare WAF Simple Tricks
Firewall Rule örneklerini, Rate Limiting kural şablonlarını ve bunları nasıl düzenleyeceğinize dair ipuçlarını bulabilirsiniz. Kuralları paneldeki ilgili bölüme ekleyerek (Security > WAF > Firewall Rules veya Rate Limiting) etkinleştirebilirsiniz.
Bu kuralın anlamı:
Bu kuralın anlamı:
Expression
Action: Block
Bu kural, User-Agent değeri boş olan veya içinde “curl” ifadesi geçen istekleri otomatik engeller. (Yaygın bot veya otomatik araçlar genelde böyle basit User-Agent’ler kullanır.)
Kural Adı: Restrict WP login & XMLRPC
Expression
Action: Challenge veya Block
Kural Adı: Geo block
Expression
Action: Block
Böylece Çin veya Rusya IP’lerinden gelen istekler otomatik bloklanır.
Kural Adı: Block specific IP
Expression
Action: Block
Liste daha uzun ise {1.2.3.4 2.3.4.5} gibi yazarak birden fazla IP’yi aynı anda ekleyebilirsiniz. Veya IP bloklarını (CIDR) ip.src in {192.168.0.0/24} şeklinde ekleyebilirsiniz.
Kural Adı: Protect API endpoints
Expression
Action: Challenge
Bu sayede API endpoint’lerine girmeye çalışan herkese (insan kullanıcılar da dâhil) bir JS Challenge veya Captcha çıkar. DDoS botları genellikle bu challenge’ı geçemeyecektir.
Kural Adı: Low Bot Score Challenge
Expression
Action: Challenge
Bu kural, Cloudflare tarafından “kötü niyetli bot” olarak işaretlenme ihtimali yüksek istekleri Challenge’a sokar.
Firewall Rules
Cloudflare WAF Simple Tricks
Below you can find some examples of Firewall Rules that you can apply directly to your Cloudflare WAF (example domain: test.com) , Rate Limiting rule templates, and tips on how to edit them. You can activate rules by adding them to the relevant section in the panel (Security > WAF > Firewall Rules or Rate Limiting).
This rule means:
This rule means:
Expression
Action: Block
Bu kural, User-Agent değeri boş olan veya içinde “curl” ifadesi geçen istekleri otomatik engeller. (Yaygın bot veya otomatik araçlar genelde böyle basit User-Agent’ler kullanır.)
Kural Adı: Restrict WP login & XMLRPC
Expression
Action: Challenge veya Block
Kural Adı: Geo block
Expression
Action: Block
Böylece Çin veya Rusya IP’lerinden gelen istekler otomatik bloklanır.
Kural Adı: Block specific IP
Expression
Action: Block
Liste daha uzun ise {1.2.3.4 2.3.4.5} gibi yazarak birden fazla IP’yi aynı anda ekleyebilirsiniz. Veya IP bloklarını (CIDR) ip.src in {192.168.0.0/24} şeklinde ekleyebilirsiniz.
Kural Adı: Protect API endpoints
Expression
Action: Challenge
Bu sayede API endpoint’lerine girmeye çalışan herkese (insan kullanıcılar da dâhil) bir JS Challenge veya Captcha çıkar. DDoS botları genellikle bu challenge’ı geçemeyecektir.
Kural Adı: Low Bot Score Challenge
Expression
Action: Challenge
Bu kural, Cloudflare tarafından “kötü niyetli bot” olarak işaretlenme ihtimali yüksek istekleri Challenge’a sokar.
Firewall Rules
Firewall Rule örneklerini, Rate Limiting kural şablonlarını ve bunları nasıl düzenleyeceğinize dair ipuçlarını bulabilirsiniz. Kuralları paneldeki ilgili bölüme ekleyerek (Security > WAF > Firewall Rules veya Rate Limiting) etkinleştirebilirsiniz.
Not: Kuralları yazarken Cloudflare’in Expression Editor sözdizimini (daha çok http.request.uri.path, ip.geoip.country vb. fonksiyonlar) kullanırız. Aynı şekilde “Action” olarak “Block”, “Challenge”, “JS Challenge”, “Log”, “Managed Challenge” gibi seçenekler seçebilirsiniz.
1. Rate Limiting Kuralları
Cloudflare’da Rate Limiting kuralları, “Firewall Rules” sekmesinden farklı bir bölümde yönetilir. Mantık aynı olsa da özel bir arayüzü vardır. Örneğin:1.1 /login endpoint’i için Saldırı Koruması
Code:
- Kural Adı: Rate Limit Login
- Tanım: test.com/login URL’ine çok fazla isteği engelle
- Expression (URL Path): URI Path = "/login"
- Threshold (Eşik): Saniyede 10 istek
- Period: 1 saniye
- Action: Block (veya Challenge)
- Measure: IP başına
Bu kuralın anlamı:
- Bir IP, /login endpoint’ine 1 saniye içinde 10’dan fazla istek yollarsa, o IP otomatik bloklanır veya Captcha Challenge alır.
1.2 Genel Rate Limiting (Tüm Site)
Code:
- Kural Adı: Global Rate Limit
- Tanım: test.com altındaki tüm URL'lere yoğun isteği engelle
- Expression: URI Path = "*"
- Threshold: 100 istek / 10 saniye
- Period: 10 saniye
- Action: Challenge
- Measure: IP başına
Bu kuralın anlamı:
- Bir IP, tüm site için 10 saniyede 100’den fazla istek atarsa Challenge uygula (JS Challenge veya Captcha).
Rate Limiting, Layer 7 DDoS saldırılarında en önemli savunma adımlarından biridir. Eşik değerlerini gerçek trafiğinize göre ayarlamalısınız.
2. Cloudflare Firewall Rules (Expression Based) Örnekleri
Bu kuralları Cloudflare panelinde Security > WAF > Firewall Rules2.1 Şüpheli (Boş veya Curl) User-Agent Engelleme
Kural Adı: Block suspicious user agentsExpression
Code:
(http.user_agent eq "" or http.user_agent contains "curl")
Action: Block
Bu kural, User-Agent değeri boş olan veya içinde “curl” ifadesi geçen istekleri otomatik engeller. (Yaygın bot veya otomatik araçlar genelde böyle basit User-Agent’ler kullanır.)
2.2 /wp-login.php veya /xmlrpc.php’yi Engelleme / Kısıtlama
Özellikle WordPress altyapısı kullanıyorsanız:Kural Adı: Restrict WP login & XMLRPC
Expression
Code:
(http.request.uri.path eq "/wp-login.php" or http.request.uri.path eq "/xmlrpc.php")
Action: Challenge veya Block
Eğer WordPress kullandığınız hâlde kendiniz /wp-login.php kullanıyorsanız, “Challenge” veya “JS Challenge” yapabilirsiniz. Engellerseniz admin erişimi kesilir.
2.3 Coğrafi Konuma Göre Engelleme (GeoIP Block)
Örneğin, hizmet vermediğiniz ülkelerden (diyelim ki “CN” ve “RU”) gelen tüm istekleri engellemek istiyorsunuz:Kural Adı: Geo block
Expression
Code:
(ip.geoip.country in {"CN" "RU"})<br>
Action: Block
Böylece Çin veya Rusya IP’lerinden gelen istekler otomatik bloklanır.
2.4 Belirli IP’leri Tamamen Engelleme
Diyelim ki saldırı aldığınız net bir IP var: 1.2.3.4. Bu IP’yi direkt engellemek için:Kural Adı: Block specific IP
Expression
Code:
(ip.src eq 1.2.3.4)<br>
Action: Block
Liste daha uzun ise {1.2.3.4 2.3.4.5} gibi yazarak birden fazla IP’yi aynı anda ekleyebilirsiniz. Veya IP bloklarını (CIDR) ip.src in {192.168.0.0/24} şeklinde ekleyebilirsiniz.
2.5 /api/* Yollarına Sıkı Koruma
Örneğin, API endpoint’lerinize yönelik bir Layer 7 DDoS saldırısı tespit ettiniz. /api/ altında geçen tüm URL’lere ek koruma uygulayabilirsiniz:Kural Adı: Protect API endpoints
Expression
Code:
http.request.uri.path starts_with "/api/"<br>
Action: Challenge
Bu sayede API endpoint’lerine girmeye çalışan herkese (insan kullanıcılar da dâhil) bir JS Challenge veya Captcha çıkar. DDoS botları genellikle bu challenge’ı geçemeyecektir.
2.6 Yüksek Hassasiyetli Bot Tespiti (Bot Management / Enterprise)
Eğer Enterprise plan kullanıyorsanız ve Cloudflare Bot Management skoru (cf.bot_management.score) özelliğine erişiminiz varsa:Kural Adı: Low Bot Score Challenge
Expression
Code:
(cf.bot_management.score < 30)<br>
Action: Challenge
Bu kural, Cloudflare tarafından “kötü niyetli bot” olarak işaretlenme ihtimali yüksek istekleri Challenge’a sokar.
3. “I’m Under Attack” (IUAM) Modu
- Cloudflare kontrol panelinde Overview > Quick Actions kısmında “Under Attack Mode”u aktif edebilirsiniz.
- Bu mod, sitenize gelen herkese 5 saniyelik JS doğrulaması (challenge sayfası) gösterir. Gerçek tarayıcılar script’i çalıştırıp geçerken basit botlar takılır.
- IUAM modu, kısa süreli saldırılarda hızlı bir çözüm olsa da gerçek kullanıcılar için de ufak bir gecikme yaratır.
4. Kuralları Test Ederken Dikkat Edilecek Noktalar
- Yanlış Pozitif (False Positive)
- Her kuralı önce “Log” veya “Simulate” (preview mod) şeklinde test edin. Gerçek kullanıcı trafiğini engellemeye neden olacaksa kuralı ince ayar yapın (koşulları daraltın).
- Her kuralı önce “Log” veya “Simulate” (preview mod) şeklinde test edin. Gerçek kullanıcı trafiğini engellemeye neden olacaksa kuralı ince ayar yapın (koşulları daraltın).
- Hangi Aksiyonu Seçeceksiniz?
- Block: İsteği doğrudan engeller, kullanıcıya hiçbir sayfa göstermez.
- Challenge (Captcha veya JS Challenge): Kullanıcıya bir test gösterir, gerçek tarayıcı ise geçer; bot ise takılır.
- JS Challenge: Otomatik, görünmez tarayıcı doğrulaması.
- Managed Challenge: Cloudflare’ın akıllı karar mekanizması eklenir (Enterprise plan).
- Log: Sadece kayda alır, engellemez.
- Analiz ve İnce Ayar
- Cloudflare panelindeki Analytics / Firewall Events sekmesinden hangi IP, hangi kural sebebiyle engellenmiş izleyin.
- Trafik davranışını gördükçe, Rate Limit eşiğini veya kural koşullarını düzenleyin.
5. Özet Örnek Kural Listesi
Aşağıda, tek seferde eklenebilecek örnek bir kural seti özetlenmiştir:- Rate Limiting
-
Code:
/login: 10 istek / saniye üzeri -> Block
Firewall Rules
- Block suspicious UA
Code:(http.user_agent eq "" or http.user_agent contains "curl")<br>Action: Block
- Restrict WP endpoints
Action: ChallengeCode:(http.request.uri.path eq "/wp-login.php" or http.request.uri.path eq "/xmlrpc.php")
- Geo block
Action: BlockCode:ip.geoip.country in {"CN" "RU"}<br>
- API endpoint
Action: ChallengeCode:http.request.uri.path starts_with "/api/"<br>
- Under Attack Mode(İhtiyaç halinde)
- Saldırı yoğunlaştığında “IUAM” açık. Saldırı durunca tekrar kapatın.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Cloudflare WAF Simple Tricks
Below you can find some examples of Firewall Rules that you can apply directly to your Cloudflare WAF (example domain: test.com) , Rate Limiting rule templates, and tips on how to edit them. You can activate rules by adding them to the relevant section in the panel (Security > WAF > Firewall Rules or Rate Limiting).
Note : When writing rules, we use Cloudflare's Expression Editor syntax (mostly functions like http.request.uri.path, ip.geoip.country, etc.). Similarly, you can select options such as "Block", "Challenge", "JS Challenge", "Log", "Managed Challenge" as "Action".
1. Rate Limiting Rules
In Cloudflare, Rate Limiting rules are managed in a separate section from the “Firewall Rules” tab. The logic is the same, but it has a special interface. For example:1.1 Attack Protection for /login endpoint
Code:
- Rule Name: Rate Limit Login
- Description: Block too many requests to test.com/login URL
- Expression (URL Path): URI Path = "/login"
- Threshold: 10 requests per second
- Period: 1 second
- Action: Block (veya Challenge)
- Measure: Per IP
This rule means:
- If an IP sends more than 10 requests to the /login endpoint within 1 second, that IP will be automatically blocked or receive a Captcha Challenge.
1.2 General Rate Limiting (Whole Site)
Code:
- Rule Name: Global Rate Limit
- Description: Block heavy requests to all URLs under test.com
- Expression: URI Path = "*"
- Threshold: 100 requests / 10 seconds
- Period: 10 seconds
- Action: Challenge
- Measure: Per IP
This rule means:
- If an IP fires more than 100 requests in 10 seconds for the entire site, apply Challenge (JS Challenge or Captcha).
Rate Limiting is one of the most important defense steps against Layer 7 DDoS attacks. You should adjust the threshold values according to your actual traffic.
2. Cloudflare Firewall Rules (Expression Based) Örnekleri
You can add these rules by going to Security > WAF > Firewall Rules in the Cloudflare panel and clicking the “Create Firewall Rule” button.2.1 Blocking Suspicious (Empty or Curl) User-Agents
Kural Adı: Block suspicious user agentsExpression
Code:
(http.user_agent eq "" or http.user_agent contains "curl")
Action: Block
Bu kural, User-Agent değeri boş olan veya içinde “curl” ifadesi geçen istekleri otomatik engeller. (Yaygın bot veya otomatik araçlar genelde böyle basit User-Agent’ler kullanır.)
2.2 /wp-login.php veya /xmlrpc.php’yi Engelleme / Kısıtlama
Özellikle WordPress altyapısı kullanıyorsanız:Kural Adı: Restrict WP login & XMLRPC
Expression
Code:
(http.request.uri.path eq "/wp-login.php" or http.request.uri.path eq "/xmlrpc.php")
Action: Challenge veya Block
Eğer WordPress kullandığınız hâlde kendiniz /wp-login.php kullanıyorsanız, “Challenge” veya “JS Challenge” yapabilirsiniz. Engellerseniz admin erişimi kesilir.
2.3 Coğrafi Konuma Göre Engelleme (GeoIP Block)
Örneğin, hizmet vermediğiniz ülkelerden (diyelim ki “CN” ve “RU”) gelen tüm istekleri engellemek istiyorsunuz:Kural Adı: Geo block
Expression
Code:
(ip.geoip.country in {"CN" "RU"})<br>
Action: Block
Böylece Çin veya Rusya IP’lerinden gelen istekler otomatik bloklanır.
2.4 Belirli IP’leri Tamamen Engelleme
Diyelim ki saldırı aldığınız net bir IP var: 1.2.3.4. Bu IP’yi direkt engellemek için:Kural Adı: Block specific IP
Expression
Code:
(ip.src eq 1.2.3.4)<br>
Action: Block
Liste daha uzun ise {1.2.3.4 2.3.4.5} gibi yazarak birden fazla IP’yi aynı anda ekleyebilirsiniz. Veya IP bloklarını (CIDR) ip.src in {192.168.0.0/24} şeklinde ekleyebilirsiniz.
2.5 /api/* Yollarına Sıkı Koruma
Örneğin, API endpoint’lerinize yönelik bir Layer 7 DDoS saldırısı tespit ettiniz. /api/ altında geçen tüm URL’lere ek koruma uygulayabilirsiniz:Kural Adı: Protect API endpoints
Expression
Code:
http.request.uri.path starts_with "/api/"<br>
Action: Challenge
Bu sayede API endpoint’lerine girmeye çalışan herkese (insan kullanıcılar da dâhil) bir JS Challenge veya Captcha çıkar. DDoS botları genellikle bu challenge’ı geçemeyecektir.
2.6 Yüksek Hassasiyetli Bot Tespiti (Bot Management / Enterprise)
Eğer Enterprise plan kullanıyorsanız ve Cloudflare Bot Management skoru (cf.bot_management.score) özelliğine erişiminiz varsa:Kural Adı: Low Bot Score Challenge
Expression
Code:
(cf.bot_management.score < 30)<br>
Action: Challenge
Bu kural, Cloudflare tarafından “kötü niyetli bot” olarak işaretlenme ihtimali yüksek istekleri Challenge’a sokar.
3. “I’m Under Attack” (IUAM) Modu
- Cloudflare kontrol panelinde Overview > Quick Actions kısmında “Under Attack Mode”u aktif edebilirsiniz.
- Bu mod, sitenize gelen herkese 5 saniyelik JS doğrulaması (challenge sayfası) gösterir. Gerçek tarayıcılar script’i çalıştırıp geçerken basit botlar takılır.
- IUAM modu, kısa süreli saldırılarda hızlı bir çözüm olsa da gerçek kullanıcılar için de ufak bir gecikme yaratır.
4. Points to Consider When Testing Rules
- False Positive
- Test each rule first in “Log” or “Simulate” (preview mode). Tweak the rule (narrow the conditions) if it will result in blocking real user traffic.
- Test each rule first in “Log” or “Simulate” (preview mode). Tweak the rule (narrow the conditions) if it will result in blocking real user traffic.
- Which Action Will You Choose?
- Block : Blocks the request directly, does not show any page to the user.
- Challenge (Captcha or JS Challenge): Shows a test to the user, passes if it is a real browser; gets stuck if it is a bot.
- JS Challenge : Automatic, invisible browser validation.
- Managed Challenge : Adds Cloudflare's smart decisioning mechanism (Enterprise plan).
- Log : Only records, does not block.
- Analysis and Fine Tuning
- Track which IP is blocked due to which rule from the Analytics / Firewall Events tab in the Cloudflare panel.
- Adjust the Rate Limit threshold or rule conditions as you observe traffic behavior.
5. Summary Sample Rule List
Below is a sample rule set outlined that can be added all at once:- Rate Limiting
-
Code:
/login: over 10 requests / second -> Block
Firewall Rules
- Block suspicious UA
Code:(http.user_agent eq "" or http.user_agent contains "curl")<br>Action: Block
- Restrict WP endpoints
Action: ChallengeCode:(http.request.uri.path eq "/wp-login.php" or http.request.uri.path eq "/xmlrpc.php")
- Geo block
Action: BlockCode:ip.geoip.country in {"CN" "RU"}<br>
- API endpoint
Action: ChallengeCode:http.request.uri.path starts_with "/api/"<br>
- Under Attack Mode (When needed)
- When the attack intensifies, turn “IUAM” on. When the attack stops, turn it off again.