Trong bài viết này, chúng tôi sẽ hướng dẫn các bạn các bước để chuyển hướng tên miền của mình sang Cloudflare nhằm hạn chế tấn công từ chối dịch vụ (DDOS).

Mặc dù không đảm bảo sẽ chặn được 100% tình trạng DDOS nhưng đối với các cuộc tấn công vừa và nhỏ thì Cloudflare vẫn đủ sức để hỗ trợ bạn. Khi bạn tạo store với Merchize là đã trải qua bước kết nối với cloudflare rồi.


Tùy vào quy mô của cuộc tấn công mà phương pháp này có thể có ít hoặc nhiều hiệu quả. Bạn nhớ trao đổi với team support càng sớm càng tốt để tránh gián đoạn site trong những trường hợp như thế này nhé.


NEW!! Hướng dẫn này mới bổ sung thêm phương pháp 3 - Enable Rate Limit. Phương pháp này là ổn nhất, nhanh nhất và chỉ mất thêm 1 chút chi phí (khoảng 0.05$/10K traffic thực)


1 - Under Attack Mode

Khi store bạn bất ngờ có 1 lượng truy cập lớn và nghi ngờ bị DDOS, bạn chỉ cần đăng nhập vào Cloudflare, phần Overview chọn Under Attack Mode là ON để bật chế độ phòng chống DDOS của cloudflare. 


Xem phần Overview của Cloudflare cũng là 1 cách đơn giản để biết mình có đang bị DDOS không. Ở đây Cloudflare có hiển thị thống kê các lượt truy cập và reuqest trong thời gian vừa qua. Nếu bạn thấy traffic tăng vọt bất thường (ví dụ x8 x9 x10... lần), đặc biệt ở phần Total Requests thì khả năng rất cao là bạn đang bị DDOS.



Khi bật Under Attack Mode, mỗi khi vào store sẽ có 1 đoạn JS chạy để user đợi 5 giây trước khi vào store như thế này để tránh DDOS.

2 - Biện Pháp Mạnh Hơn Với Page Rules

Với chế độ Under Attack Mode về cơ bản đã xử lý được kha khá các vụ DDOS, nhưng với trường hợp đối phương tấn công để timeout >5s với mỗi truy vấn thì store vẫn bị ảnh hưởng (Mặc dù số lượng đối tượng có khả năng làm như vậy không phải là cao). Nếu store bạn không may gặp phải trường hợp này, bạn có thể gia tăng mức độ bảo vệ bằng cách sử dụng Page Rules:


 vào Firewall > Firewall Rules > Create a Firewall Rule


Sau đó, thử tạo 1 rule mới với điều kiện là Threat Score lớn hơn (Greater than) 1 số bất kỳ từ 0->100, (số càng cao thì truy cập đó càng khả nghi), ở đây ví dụ store đang bị tấn công nên thử đặt là 4.


Thông tin về threat score mọi người có thể xem ở đây. Trong đó, nếu bạn set Threat Score là:

  • greater than 0: Mức độ bảo vệ của store cực cao vì ai cũng bị dính
  • greater than 14: Mức độ bảo vệ trung bình, 1 số người mới bị dính
  • greater than 24: Mức độ bảo vệ thấp, hiếm người dính
  • greater than 49: Gần như không bảo vệ, vì gần như không có điểm threat score > 49.

Trên cloudflare cũng có 1 topic thảo luận về Threatscore, các bạn có thể xem cụ thể tại đây 



Sau đó, hành động THENChallenge (Captcha) để nếu khả nghi thì sẽ hiển thị captcha. rồi sau đó Deploy rồi xem chuyện gì xảy ra tiếp theo.

Nếu vẫn bị tấn công tiếp thì  lại giảm cái điểm threatscore đi hoặc nếu rủi là nó vẫn vượt đc lớp captcha thì chúng ta sẽ phải để điều kiện là Block (hơi rủi ro vì dễ block phải cả khách thật, nhưng khách thật thì threat score thường rất thấp).


Việc setup Firewall rule như thế này rất dễ bị nhầm lẫn nếu bạn không quen với việc sử dụng Cloudflare nên sau khi setup xong có thể chụp ảnh màn hình và gửi cho support Merchize để team check cụ thể hơn.


3 - Enable Rate Limit

Bạn có thể tìm hiểu về Rate Limit của Cloudflare tại đây: https://support.cloudflare.com/hc/en-us/articles/115001635128


Về cơ bản, Rate Limit là 1 giải pháp trả phí khá ổn của Cloudflare để chống DDOS. Rate Limit hoạt động với cơ chế tương tự Page Rule, nhưng sẽ check xem user đó có đang request nhiều quá không (tùy theo số lần request/mỗi IP do bạn set) để Block hoặc thực hiện các hành động khác.


Ví dụ, nếu 1 user request mấy trăm lần mỗi phút thì chắc chắn là đang spam/ddos -> sẽ bị Block. Còn với người dùng bình thường, dùng ở mức bình thường thì sẽ không bị ảnh hưởng gì.


Cách tính phí Rate Limit của Cloudflare: 

  • Với 10K traffic hợp lệ đầu tiên của tất cả các store trên tài khoản của bạn: FREE
  • Với mỗi 10K traffic tiếp theo: 0.05$/10K traffic hợp lệ
  • Lưu ý Cloudflare tính theo số traffic hợp lệ (chứ không phải traffic bị block) nên nếu bạn bị bắn vài trăm ngàn request/s mà bạn setup rule chuẩn, block được gần hết thì sẽ ko vấn đề, ko tốn kém gì nhiều cả.

Cách tính phí và các chức năng mở rộng của Rate Limit cũng tùy theo các gói của Cloudflare:

Và khi tìm được User đang spam, cách xử lý (Block hay Challenge..) cũng tùy theo các gói Cloudflare:

Về cơ bản, dùng gói Free và mua thêm Rate Limit là cũng khá ổn, nhưng nếu bạn muốn chắc chắn hơn, có thể nâng cấp lên gói PRO với giá 20$/tháng để có khả năng Challenge bằng JS hoặc Captcha với những user vượt quá ngưỡng đã đặt ra. 

Cách bật Rate Limit: 

1 - Đăng nhập vào Cloudflare, chọn Firewall > Tools 

2 - Chọn Rate Limiting > Enable Rate Limiting

Cloudflare sẽ hiển thị hộp thoại báo lại mức giá cùng lưu ý là bạn sẽ không bị charge với những request đã bị block.

Sau đó bạn chỉ việc next next next và điền thông tin thanh toán (có thể thanh toán bằng thẻ hoặc paypal), bạn sẽ không bị charge ngay nên đừng lo :) 


3 - Setup Rate Limit

Sau khi đã Enable Rate Limit xong, bạn vào lại Firewall > Tools > Create a Custom Rule để tạo rule 


Sau đó điền vào các trường thông tin theo hướng dẫn dưới đây:

  • Rule Name: Điền tên của rule này (tên gì cũng được)
  • If Traffic Matching the URL: Điền dấu để chọn filter cho tất cả traffic (hoặc điền url mà bạn đã phát hiện ra bị ddos)
  • phần Exceeds .... requests per .....  : Để điền số lần request tối đa trong phút/ trong giờ mà user có thể request (sau đó là sẽ bị block). Ví dụ thường sẽ điền 40-50 request per minute. Hoặc là 5-10 requests per 10 seconds. Phần này khá quan trọng và cần check kỹ với từng trường hợp. sau khi làm xong, tốt nhất bạn nên: liên hệ team support để được check kỹ hơn, và lấy 1 điện thoại dùng mạng khác để test thử. Nếu bạn thấy mới truy cập 1 lúc mà bị block thì chứng tỏ rule hơi kỹ quá. Nếu f5 nhiều quá mà chưa bị block thì chứng tỏ  là rule này hơi lỏng lẻo quá
  • Cuối cùng, Then ... for ... : Phần này để xác định nếu user đó vi phạm thì sẽ làm gì trong bao lâu, ví dụ block trong 1 phút hoặc 1 giờ. Ở bản free của Cloudflare, chỉ có action là block. Bạn có thể nâng lên bản PRO để có thêm các action khác hợp lý hơn (ví dụ challenge JS, challenge captcha).

Tóm lại, phương pháp Rate Limiting này khá hiệu quả mà sẽ không quá tốn kém nếu bạn configure đúng. Bạn cũng được miễn phí 10K traffic đầu tiên, nên sẽ không tốn chi phí ban đầu. Tuy vậy, để chống DDOS được hiệu quả nhất, bạn cần:

  • Test kỹ sau khi setup mỗi rule
  • Liên hệ support Merchize để được hỗ trợ
  • Để đảm bảo an toàn nhất, sau khi liên hệ support Merchize, bạn cần add tài khoản dev của Merchize vào quản lý cloudflare của bạn để chúng tôi hỗ trợ bạn tốt nhất. Tài khoản dev của Merchize là jack@merchize.com