
Bước 1: Chuyển Domain về CloudFlare
Truy cập vào https://dash.cloudflare.com/ để khởi tạo tài khoản CloudFlare của bạn
- Trỏ DNS về máy chủ mà CloudFlare cung cấp
- Kiểm tra xem DNS đã trỏ được chưa qua https://www.whois.com/
- Sau khi hoàn thành trỏ chúng ta kiểm tra lại trên CloudFlare nhé
Oke, chúng ta đến với bước thứ 2
Bước 2: Setup FireWall trên CloudFlare
Chống DDoS (Distributed Denial of Service) là ngăn chặn hoặc giảm thiểu ảnh hưởng của lượng request lớn đến từ nhiều IP (hoặc thậm chí giả mạo IP) nhằm mục đích làm tê liệt dịch vụ.
- Đảm bảo các bản ghi trỏ về IP của server phải bật Proxy
- Ở mục Security chọn WAF
Đầu tiên, ở Custom Rules với bản free chúng ta chỉ tạo được max 5 cái rules
Tạo các Rules như sau
Tương tự
Dưới đây là các Custom Firewall Rules nên cấu hình trong Cloudflare để giúp chống DDoS cơ bản cho website nhỏ và vừa:
1. Chặn bot không có User-Agent
Bot độc hại thường không gửi User-Agent hợp lệ.
Rule name: Block empty User-Agent
Expression:
(http.user_agent eq "")
Action: Block
2. Chống flood request từ IP có điểm đe dọa cao (Cloudflare Threat Score)
Cloudflare có hệ thống chấm điểm IP, bạn có thể tận dụng:
Rule name: JS Challenge for High Threat IPs
Expression:
(cf.threat_score > 20)
Action: JS Challenge
JS Challenge buộc trình duyệt tải mã JS – bot thường không làm được.
3. Chỉ cho phép truy cập từ Việt Nam (nếu site chỉ dùng ở VN)
Rule name: Block foreign countries
Expression:
(ip.geoip.country ne "VN")
Action: Challenge
Bạn cũng có thể dùng
Block
thay vìChallenge
, nhưngChallenge
sẽ an toàn hơn với người dùng hợp lệ.
4. Giới hạn request đến các trang nhạy cảm (như login, form)
Chỉ dùng nếu bạn có trang như /wp-login.php
, /admin
, v.v.
Rule name: Rate limit login page
Expression:
(http.request.uri.path contains "/wp-login.php")
Action: JS Challenge
Nếu bạn không dùng WordPress, đổi
/wp-login.php
thành đường dẫn login tương ứng.
5. Chặn một số User-Agent thường dùng bởi tool tấn công
Rule name: Block suspicious User-Agents
Expression:
(http.user_agent contains "python") or
(http.user_agent contains "curl") or
(http.user_agent contains "wget")
Action: Block
Ở rate limiting rule
Rate Limiting Rules của Cloudflare, bạn có thể giới hạn số lượng request từ mỗi IP đến một URL cụ thể trong một khoảng thời gian — cực kỳ hữu ích để chống DDoS dạng HTTP flood hoặc spam login/form
Mình khuyến nghị 1 số rule như sau( Chọn 1 cái thôi khi là bản Free nhé)
1: Limit API endpoints
Rule name: API Rate Limit
Field: URI Path
Operator: starts with
Value: /api/
Characteristics: IP
Requests: 50 per 10 seconds
Action: Block for 10 seconds
2: Bảo vệ login page
Rule name: Login Rate Limit
Field: URI Path
Operator: contains
Value: /login
Characteristics: IP
Requests: 5 per 10 seconds
Action: Block for 10 seconds
3: Limit traffic từ non-verified bots
Rule name: Bot Rate Limit
Field: Verified Bot
Operator: equals
Value: false
Characteristics: IP
Requests: 100 per 10 seconds
Action: Block for 10 seconds
Vậy là khi một IP gửi quá nhiều yêu cầu, Cloudflare sẽ:
Chặn các yêu cầu tiếp theo từ IP đó.
IP này sẽ bị chặn trong 10 giây
Ở phần Tools
IP Access Rules: Quy tắc truy cập IP có thể dựa trên địa chỉ IP, phạm vi địa chỉ IP, Số hệ thống tự trị (ASN) hoặc quốc gia.
Bạn có thể tùy chọn Chặn/Allow quốc gia truy cập hoặc thực hiện thử thách truy cập cho quốc gia đó
Ví dụ chọn thử thách cho Khu vực Việt Nam
Kết quả:
Ở Bots thì làm như hình dưới đây
Rõ ràng, việc triển khai các lớp bảo vệ nền tảng trên Cloudflare như đã thực hiện là một chiến lược thông minh. Mặc dù không một hệ thống nào có thể tự xưng là bất khả xâm phạm trước vô vàn kỹ thuật tấn công DDoS ngày càng tinh vi, những gì bạn xây dựng đã đủ để tạo ra một tuyến phòng thủ hiệu quả, sẵn sàng vô hiệu hóa phần lớn các cuộc tấn công phổ biến và đảm bảo tính sẵn sàng cho dịch vụ của bạn.
Cảm ơn các bạn đã xem qua bài viết của mình. Chúc các bạn thành công!!
Best Regards!!!!!