August 21, 2015

Chống DDoS với Varnish

Thông thường Varnish sử dụng chính để làm cache front end, tuy nhiên bạn hoàn toàn có thể cấu hình sử dụng để chống DDoS.
Varnish Cache
Hướng dẫn này viết từ trường hợp thực tế, mình đã chống DDoS thành công cho một người bạn. Nếu bạn cũng đang đau đầu về việc bị DDoS, hãy tham khảo bài viết này biết đâu có thể áp dụng được.
Ngay khi kết nối SSH, mình kiểm tra file access.log thì thấy ngay đúng là server đang bị DDoS.
DDoS access.log
Một loạt request có cách thức giống nhau, cùng một user-agent, IP khác nhau. Tính sơ sơ cũng phải đến cả trăm request mỗi giây, hỏi sao server không bị overload.
Nếu sử dụng CSF để block từng IP thì không ổn, vì quá nhiều IP. May thay các request này đều có một điểm chung là user-agent trong header giống nhau, như vậy có thể block lại được toàn bộ những request này dễ dàng.
Do CSF không hỗ trợ block theo header, nên mình phải sử dụng Varnish để filter riêng những request này ra và trả về Error 403. Với một đoạn code ngắn bên dưới để trong block sub vcl_recv { ... }, mình đã khống chế hoàn toàn được vụ DDoS.
sub vcl_recv {
        if (req.http.user-agent ~ "Hotbar") {
                return(synth(403,"Not allowed."));
        }
Ý nghĩa của đoạn code trên là filter những request có user-agent chứa Hotbar, nếu có thì trả lại lỗi 403, ngược lại thì pass cho Nginx webserver xử lý.
nguồn: http://hocvps.com/chong-ddos-voi-varnish/

Related Posts:

  • Hướng dẫn xử lý lỗi [Errno 14] PYCURL ERROR 22 Dạo gần đây, khi tạo mới VPS ở Vultr hay DigitalOcean mình thường gặp lỗi [Errno 14] PYCURL ERROR 22 khi sử dụng lệnh yum. Nội dụng có thể như sau: [root@hocvps.com ~]# yum -y install wget … Read More
  • Làm gì khi VPS bị spam Mail?1. Nhận biết VPS của bạn tự nhiên chậm, RAM và CPU tăng cao Email không đến được người nhận DirectAdmin thông báo lượng mail gửi ra nhiều Địa chỉ IP bị Blacklist 2. Nguyên nhân Nếu là máy chủ website có thể source code… Read More
  • Phân biệt và lựa chọn VPS: OpenVZ vs XEN vs VMWare Máy chủ ảo (Virtual Private Server-VPS) là dạng máy chủ được tạo ra bằng cách phân chia 1 máy chủ vật lý thành nhiều máy chủ khác nhau có tính chất như một máy chủ riêng biệt (dedicated server), chạy dưới dạng chia sẻ tài ng… Read More
  • Kiểm tra và mở port VPS trên CentOS Nếu bạn muốn mở hoặc đóng port cho VPS thì phải chỉnh sửa file cấu hình của iptables. Mặc định thì file này có đường dẫn là /etc/sysconfig/iptables Mở port VPS Ví dụ để mở port xxx, bạn hãy thực hiện lệnh sau: ip… Read More
  • Lệnh kiểm tra các thông số VPS Linux Một số câu lệnh để các bạn có thể kiểm tra thông số cấu hình của VPS Linux Lệnh kiểm tra CPU: cat /proc/cpuinfo Lệnh theo dõi CPU: top -c Lệnh kiểm tra hệ điều hành: uname -a Lệnh kiểm tra phiên bản hệ điều hành (CentOS)… Read More

0 comments:

Post a Comment