Cloudflare Security Playbook

Hướng dẫn cấu hình Cloudflare Security

4 tính năng bảo vệ Rules mẫu copy-paste ngay Tương thích Free plan Cập nhật: 05/2026
📋 Tổng quan
🛡️ WAF Custom Rules
⚡ Rate Limiting
🤖 Bot Fight Mode
🚨 Under Attack Mode

Tổng quan chiến lược bảo vệ

Áp dụng cho mọi website trên Cloudflare. Cấu hình theo thứ tự: Bot Fight Mode → WAF → Rate Limiting.

#Tính năngMục đíchƯu tiênPlan
01
Bot Fight Mode
Bật 1 lần, không cần viết rule
Chặn bot scraping, fake traffic, spam tự động
Cao Free
02
WAF — Block quốc gia
Lọc traffic từ vùng nguy hiểm
Giảm 60-80% attack surface ngay lập tức
Cao Free
03
WAF — Block bad UA
Lọc tool tự động, scanner
Chặn Nuclei, sqlmap, python script công khai
Cao Free
04
WAF — Protect /api/*
Bảo vệ endpoint nhạy cảm
Thêm friction cho attacker vào API core
Trung bình Free
05
Rate Limiting — API
Giới hạn request/IP/phút
Chặn brute force, API abuse từ 1 IP
Trung bình Free
06
Under Attack Mode
Chỉ bật khi có sự cố
Mua thời gian xử lý khi bị DDoS thật
Tình huống Free
Thứ tự cấu hình đề xuất: Bot Fight Mode → WAF Rule #1 (country block) → WAF Rule #2 (bad UA) → Rate Limiting → xong. Các rule còn lại thêm dần tùy nhu cầu.

Truy cập Cloudflare Dashboard

Bước cơ bản để vào đúng chỗ cấu hình.

🔗 Đường dẫn vào Security settings
1.Vào dash.cloudflare.com → đăng nhập
2.Chọn tên domain cần cấu hình trong danh sách
3.Menu trái → click Security
4.Từ đây có thể truy cập: WAF / Bots / Settings

WAF Custom Rules

Free plan có 5 rules. Sắp xếp theo thứ tự ưu tiên từ trên xuống — Cloudflare evaluate rule #1 trước.

Cách vào: Security → WAF → Custom rules → Create rule
Rule 01 Block quốc gia có nguy cơ cao
BLOCK Free
Loại bỏ phần lớn traffic tấn công ngay từ đầu. CN, RU, KP là nguồn chiếm ~60% DDoS và brute force toàn cầu. Không ảnh hưởng user VN.
Expression
(ip.geoip.country in {"CN" "RU" "KP" "IR" "BY"})
📋 Hướng dẫn tạo rule này
1.Security → WAF → Custom rulesCreate rule
2.Rule name: Block high-risk countries
3.Click "Edit expression" (chuyển sang chế độ text), dán expression ở trên vào
4.Action: chọn Block
5.Click Deploy
⚠️ Nếu có đối tác hoặc traffic hợp lệ từ TQ → đổi action sang JS Challenge thay vì Block
Rule 02 Block scanner và bad User-Agent
BLOCK Free
Các tool dưới đây là scanner/attacker phổ biến nhất: Nuclei (vuln scanner), sqlmap (SQL injection), python-requests/curl không có UA chuẩn thường là script tấn công.
Expression
(http.user_agent contains "python-requests") or (http.user_agent contains "Go-http-client") or (http.user_agent contains "Nuclei") or (http.user_agent contains "sqlmap") or (http.user_agent contains "zgrab") or (http.user_agent eq "")
📋 Hướng dẫn tạo rule này
1.Tương tự Rule 01 → Create rule
2.Rule name: Block bad user agents
3.Dán expression, Action: BlockDeploy
⚠️ Dòng http.user_agent eq "" block request không có UA — phần lớn là bot. Nhưng nếu site có internal API gọi không kèm UA → thêm IP whitelist trước
Rule 03 Bảo vệ /api/* bằng JS Challenge
JS CHALLENGE Free
Thêm friction cho mọi request vào API endpoint từ quốc gia rủi ro cao. Người dùng thật (có browser) sẽ pass trong ~2 giây. Bot không có JS engine bị chặn.
Expression
(http.request.uri.path starts_with "/api/") and (ip.geoip.country in {"CN" "RU" "KP" "IR"}) and (not cf.bot_management.verified_bot)
📋 Hướng dẫn
1.Rule name: Challenge API from risky countries
2.Action: JS Challenge (không phải Block — để không ảnh hưởng nếu có request hợp lệ)
3.Deploy → sau 24h xem log, nếu không có false positive thì đổi sang Block
Rule 04 Block Threat Score cao (Tor, proxy)
CAPTCHA Free
Cloudflare tự chấm điểm threat score (0-100) cho mỗi IP dựa trên lịch sử. Score > 10 là proxy/VPN đáng ngờ. Score > 50 là đã có hành vi tấn công trước đó.
Expression
(cf.threat_score gt 10)
📋 Hướng dẫn
1.Rule name: Managed challenge high threat score
2.Action: Managed Challenge (CAPTCHA tự động của Cloudflare)
3.Bắt đầu với ngưỡng gt 10. Nếu block nhiều false positive thì tăng lên gt 25
Rule 05 Whitelist IP nội bộ (Skip all rules)
SKIP Free
Đây là rule quan trọng nhất — phải để ở vị trí số 1 (kéo lên đầu). IP nội bộ sẽ bypass toàn bộ rule, tránh tự block chính mình khi dev/test.
Expression — thay bằng IP thật của bạn
(ip.src in {1.2.3.4 5.6.7.8})
📋 Hướng dẫn
1.Kiểm tra IP hiện tại tại whatismyip.com
2.Thay 1.2.3.4 bằng IP thật. Thêm nhiều IP cách nhau bởi dấu cách trong {}
3.Action: Skip → tích All remaining custom rules
4.Sau khi tạo: kéo rule này lên vị trí số 1 trong danh sách
🔴 Nếu IP công ty là dynamic (thay đổi mỗi ngày) thì bỏ rule này. Thay vào đó dùng Security Level = "Essentially Off" cho IP range của ISP, hoặc dùng Cloudflare Access.
💡 Thứ tự rule trong Cloudflare WAF rất quan trọng. Rule ở trên được evaluate trước. Sau khi tạo đủ, kéo thả để sắp xếp: Whitelist (1) → Block country (2) → Block bad UA (3) → Challenge API (4) → Threat score (5).

Rate Limiting Rules

Giới hạn số request per IP theo thời gian. Vào: Security → WAF → Rate limiting rules.

Cách vào: Security → WAF → Rate limiting rules → Create rule
RL 01 Giới hạn API endpoint chung
BLOCK Free
Chặn script tự động gọi API liên tục. 100 req/phút là ngưỡng an toàn — user thật hiếm khi vượt, nhưng bot thường gọi 1000+ req/phút.
Cấu hình
Field
URI Path
Operator
starts with
Value
/api/
Characteristic
IP Address
Requests
100
Period
1 minute
Action
Block
Duration
10 minutes
📋 Hướng dẫn tạo Rate Limit rule
1.Security → WAF → Rate limiting rulesCreate rule
2.Phần "When incoming requests match": Field = URI Path, Operator = starts with, Value = /api/
3.Phần "Rate": 100 requests per 1 minute
4.Phần "Then take action": Block, Duration: 10 minutes
5.Click Deploy
RL 02 Giới hạn endpoint đăng nhập
BLOCK Free
Endpoint đăng nhập là mục tiêu phổ biến nhất của brute force. 5 lần thử/phút là đủ cho người dùng thật — bot thường gửi hàng trăm request/phút.
Cấu hình
URI Path
/login
Characteristic
IP Address
Requests
5
Period
1 minute
Action
Block
Duration
1 hour
⚠️ Thay /login bằng path đăng nhập thật của website bạn. Ví dụ: /wp-login.php, /admin/login, /auth/signin.

Bot Fight Mode

Không cần viết rule. Bật 1 lần là xong. Vào: Security → Bots.

BOT Bật Bot Fight Mode
Free
Cloudflare dùng ML để nhận diện bot. Tự động block các request từ bot rõ ràng — không cần viết rule thêm. Googlebot và Bingbot được whitelist sẵn.
📋 Hướng dẫn bật
1.Security → Bots
2.Tìm dòng "Bot Fight Mode" → toggle sang ON
3.Xong. Không cần cấu hình thêm gì.
✅ Googlebot và Bingbot được Cloudflare whitelist sẵn dưới dạng "Verified Bots" — sẽ không bị block. Bật Bot Fight Mode an toàn cho mọi website.
⚠️ Nếu có webhook bên thứ 3 gửi POST vào server (Stripe, Google, v.v.) → tạo WAF Skip rule cho IP của họ trước khi bật, để không bị challenge.

Under Attack Mode

Tình huống khẩn cấp. Không bật thường xuyên. Vào: Security → Settings → Security Level.

UAM Bật Under Attack Mode khi bị DDoS
Free
Khi bật, mọi visitor phải chạy JS challenge (~5 giây) trước khi vào site. Bot không có browser thật bị chặn 100%. Dùng khi server đã quá tải, cần mua thời gian.
📋 Hướng dẫn bật
1.Security → Settings
2.Phần "Security Level" → chọn "I'm Under Attack!"
3.Save → có hiệu lực ngay lập tức
4.Sau khi xử lý xong tấn công → đổi lại về "Medium" hoặc "High"

Quy trình xử lý khi bị tấn công
  • 1.
    Bật Under Attack Mode ngay — mua thời gian cho server
  • 2.
    Vào Analytics → Security — xem IP/quốc gia đang tấn công nhiều nhất
  • 3.
    Tạo WAF rule block quốc gia đó nếu chưa có — giảm tải ngay
  • 4.
    Check server log — xem endpoint nào bị hit nhiều → thêm Rate Limit
  • 5.
    Sau 30-60 phút — tắt Under Attack Mode, kiểm tra các rule đã đủ chưa
  • 🔴 Không bật lâu dài. Under Attack Mode break hoàn toàn: API client không có browser, app mobile gọi API, webhook từ bên thứ 3. Chỉ dùng tối đa 1-2 giờ khi có sự cố.
    Trang chủ