1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Tìm hiểu thêm.

Hướng dẫn chống DDoS tại Layer 7 với vDDoS

Thảo luận trong 'Firewall & Security' bắt đầu bởi Nguyễn Nghệ, 10/10/17.

Lượt xem: 849

  1. Nguyễn Nghệ
    Offline

    Nguyễn Nghệ Guest

    Hướng dẫn cài đặt vDDoS Protection - Reverse Proxy Layer 7 Firewall lọc giảm các loại tấn công DOS, DDOS, SYN Floods, HTTP Floods attack

    vDDoS là gì?

    vDDoS Protection là một phần mềm miễn phí giúp bạn cài đặt lên một máy chủ Reverse Proxy Server chạy giao thức HTTP(S) hoạt động như một tường lừa Layer 7 trong mô hình OSI có tác dụng giảm thiểu sự truy vấn tràn ngập của các công cụ auto bot DOS, DDOS, SYN Floods, HTTP Floods attack... giúp đỡ bảo vệ cho Website của bạn.

    Một số tính năng cơ bản:
    • Reverse Proxy
    • Bảo vệ chống DDoS
    • Giảm thiểu truy vấn từ Robot
    • HTTP challenge/response
    • Thử thách truy vấn bằng reCaptcha
    • HTTP Denial of Service tools
    • Cookie challenge/response
    • Block/Allow Country Code bạn muốn (Status 403)
    • Limit số kết nối đến từ 1 IP address (Status 503)
    • Hỗ trợ CDN (CloudFlare, Incapsula...)
    • Whitelist cho Botsearch (Hỗ trợ các bạn cần SEO. Chỉ cho phép 1 số Botsearch: Google, Alexa, Bing, Yahoo, Yandex, Facebook... mà bạn muốn)

    Cách thức vDDoS Proxy hoạt động?

    vDDoS Protection là một autoscript hoạt động trên Linux giúp bạn dựng lên tự động các thành phần bao gồm Nginx Server và các modules phụ: HTTP/2; GeoIP; Limit Req, Testcookie; reCaptcha... Cơ chế hoạt động tương tự dịch vụ CDN Cloudflare cung cấp tuy nhiên đây là 1 phần mềm nên nó chỉ giúp bạn có thể tự dựng lấy hệ thống tường của của riêng bạn và của chính bạn mà thôi.

    Ví dụ trường hợp web của bạn hoạt động mà không có một cơ chế bất kỳ bảo vệ: (chấp nhận xử lý tất cả truy vấn)

    vDDoS-HTTP-S-DDoS-Protection-Reverse-Proxy5.png

    Như hình trên nếu bạn bị một công cụ bot truy vấn liên tục sẽ làm cho CPU, RAM, IO... của bạn đột ngột tăng và dùng hết khiến bạn lâm vào hoàn cảnh từ chối dịch vụ.

    Nếu web của bạn hoạt động mà có bảo vệ: (thách thức tất cả truy vấn)
    -Truy vấn từ con người cụ thể:

    vDDoS-HTTP-S-DDoS-Protection-Reverse-Proxy1.png

    vDDoS-HTTP-S-DDoS-Protection-Reverse-Proxy2.png


    -Bots xấu truy vấn:

    vDDoS-HTTP-S-DDoS-Protection-Reverse-Proxy3.png

    vDDoS-HTTP-S-DDoS-Protection-Reverse-Proxy4.png

    Như bạn thấy khả năng nhận diện người hoặc bots của vDDoS dựa trên 2 yếu tố:
    +Nếu là trình duyệt web thì sẽ phải có khả năng xử lý Javascript => 90% các tools DDoS đều không có khả năng này, nó chỉ biết truy vấn liên tục để gây lụt máy chủ. Đây cũng là kiểu checking của Cloudflare 5s để nhận biết người dùng dùng trình duyệt web tiêu chuẩn hay tools auto bot?
    +Yếu tố thứ 2 đó là sử dụng reCaptcha của Google cung cấp để nhận diện là người hay là bots? Rõ ràng 99% bots đều không thể giải quyết các yêu cầu đơn giản của reCaptcha (ví dụ như Hãy chọn vào ảnh có cửa hàng, biển báo giao thông, ảnh bánh kem...)

    Cách cài đặt vDDoS Proxy?

    -vDDoS Protection chỉ hỗ trợ hệ điều hành CentOS Server 5/6/7 x86_64 (http://centos.org) và CloudLinux Server 5/6/7 x86_64 (http://cloudlinux.com) nên nếu là 2 nền tảng trên thì bạn hẵn cài.
    -Sau đó bạn có thể vào trang chủ và tải về đúng phiên bản vDDoS Protection hoạt động được với hệ thống của bạn (http://vddos.voduy.com)
    -vDDoS Protection nên được cài đặt trước khi bạn định cài thứ gì hoạt động chung với nó (cPanel, VestaCP, LAMP, LEMP...)

    Cài một số gói cần thiết cho hệ điều hành:
    Code:
    Mã:
    yum -y install epel-release
    yum -y install curl wget gc gcc gcc-c++ pcre-devel zlib-devel make wget openssl-devel libxml2-devel libxslt-devel gd-devel perl-ExtUtils-Embed GeoIP-devel gperftools gperftools-devel libatomic_ops-devel perl-ExtUtils-Embed gcc automake autoconf apr-util-devel gc gcc gcc-c++ pcre-devel zlib-devel make wget openssl-devel libxml2-devel libxslt-devel gd-devel perl-ExtUtils-Embed GeoIP-devel gperftools gperftools-devel libatomic_ops-devel perl-ExtUtils-Embed
    Ví dụ sau máy chủ mình là CentOS 7 x86_64 :

    Code:
    Mã:
    curl -L https://github.com/duy13/vDDoS-Protection/raw/master/latest.sh -o latest.sh
    chmod 700 latest.sh
    bash latest.sh
    
    (vDDoS sẽ auto cài đặt hết cho bạn, việc cài đặt có thể tốn 15 phút hoặc hơn nữa)

    Giao diện và Command Line vDDoS trông như sau:

    Code:
    Mã:
    Welcome to vDDoS, a HTTP(S) DDoS Protection Reverse Proxy. Thank you for using!
                   Command Line Usage:
           vddos setup             :installing vDDoS service for the first time into /vddos
           vddos start             :start vDDoS service
           vddos stop              :stop vDDoS service
           vddos restart           :restart vDDoS service
           vddos autostart         :auto-start vDDoS services on boot
           vddos attack            :create a DDoS attacks to HTTP target (in 30 min)
           vddos stopattack        :stop "vddos attack" command
           vddos help              :display this help
                                           Please sure download vDDoS source from: vddos.voduy.com
    Cách cấu hình vDDoS bảo vệ website của bạn như thế nào?

    Bạn hãy tìm đến /vddos/conf.d và sửa file website.conf
    Ví dụ mình sửa website.conf như sau:
    Code:

    Mã:
    # nano /vddos/conf.d/website.conf
    # Website       Listen               Backend                  Cache Security SSL-Prikey   SSL-CRTkey
    default         http://0.0.0.0:80    http://127.0.0.1:8080    no    200      no           no
    your-domain.com http://0.0.0.0:80    http://127.0.0.1:8080    no    200      no           no
    default         https://0.0.0.0:443  https://127.0.0.1:8443   no    307      /vddos/ssl/your-domain.com.pri /vddos/ssl/your-domain.com.crt
    your-domain.com https://0.0.0.0:443  https://127.0.0.1:8443   no    307      /vddos/ssl/your-domain.com.pri /vddos/ssl/your-domain.com.crt
    your-domain.com https://0.0.0.0:4343 https://103.28.249.200:443 yes click    /vddos/ssl/your-domain.com.pri /vddos/ssl/your-domain.com.crt
    "your-domain.com" là tên domain trang web của mình đang chạy ở Apache backend http://127.0.0.1:8080 mà mình muốn được bảo vệ bởi vDDoS
    "default" là ý nói các trang còn lại
    /vddos/ssl/your-domain.com.pri là file SSL Private key của website (cái này chỉ cần nếu bạn chạy web HTTPS)
    /vddos/ssl/your-domain.com.crt l2 file SSL Public key của website (cái này chỉ cần nếu bạn chạy web HTTPS)
    Cache:
    variable: no, yes (Bạn chọn yes hoặc no để quyết định có proxy cache website trên vDDoS hay không, tương tự cache của CloudFlare)
    Security:
    variable: no, 307, 200, click, 5s, high, captcha (bạn chọn giá trị quy định vDDoS sẽ bảo vệ Web của bạn ở mức độ nào)
    Ghi chú, mức độ được đánh giá như sau: no < 307 < 200 < click < 5s < high < captcha
    Nhớ rằng nó như một cái cổng trường vậy, bạn càng bảo vệ quá cao thì càng chậm khi ra vào, càng ít bảo vệ thì càng nhanh nhưng nguy hiểm.

    Ảnh mô tả về các giá trị chống DDoS

    Which-Attack-Tools-vDDoS-Proxy-can%2Bblock.png

    Nhớ Restart vDDoS sau mỗi lần thay đổi cấu hình:
    Code:

    Mã:
    # vddos restart
    Cấu hình vDDoS nhận diện IP thật với traffic đến từ Proxy hoặc CDN của bạn nếu có:
    Bạn hãy sửa file cdn-ip.conf và thêm dãy IP của CDN mà bạn sử dụng vào:
    Code:
    # nano /vddos/conf.d/cdn-ip.conf
    # Cloudflare
    set_real_ip_from 103.21.244.0/22;
    ...
    Cách chặn dãy IP hoặc mã quốc gia nào đó:
    Bạn có thể sửa file blacklist-countrycode.conf và thêm mã nước đó vào:
    Code:

    Mã:
    # nano /vddos/conf.d/blacklist-countrycode.conf
    geoip_country /usr/share/GeoIP/GeoIP.dat;
    map $geoip_country_code $allowed_country {
    default yes;
    US yes;
    CN no;
    }
    deny 1.1.1.1;
    Cách cho phép IP Address vào danh sách trắng mà không cần phải thách thức và kiểm tra đối với nó:
    Nếu muốn cho một dãy IP nào đó vào danh sách trắng cần cho qua, bạn hãy sửa file whitelist-botsearch.conf và thêm IP đó vào:
    Code:

    Mã:
    # nano /vddos/conf.d/whitelist-botsearch.conf
    #Alexa Bot IP Addresses
    204.236.235.245; 75.101.186.145;
    ...
    Sử dụng Mode reCaptcha (chế độ này chỉ con người mới có thể vượt qua reCaptcha):
    Muốn sử dụng chế độ reCaptcha bạn cần phải đưa thông tin reCaptcha của Google vào vDDoS. Bạn có thể làm việc ấy bằng cách sửa file recaptcha-secretkey.conf & recaptcha-sitekey.conf để thêm vào KEY bí mật:
    Code:
    Mã:
    # nano /vddos/conf.d/recaptcha-sitekey.conf
    # WebsitereCaptcha-sitekey (View KEY in https://www.google.com/recaptcha/admin#list)
    your-domain.com      6Lcr6QkUAAAAA***************************
    your-domain.org      6Lcr6QkUAAAAA***************************
    ...
    Code:
    Mã:
    # nano /vddos/conf.d/recaptcha-secretkey.conf
    DEBUG=False
    RE_SECRETS = { 'your-domain.com': '6Lcr6QkUAAAA***************************',
                  'your-domain.org': '6LcKngoUAAAA***************************' }
    (KEY bí mật ở đâu ra? Bạn có thể vào trang https://www.google.com/recaptcha/admin#list đăng ký domain và lấy thông tin đó bỏ vào đấy)

    Một số khuyến cáo:
    -Khuyên bạn nên dùng vDDoS với CloudFlare Free/Pro (Ẩn IP Address thật của trang web bạn)
    (CloudFlare sẽ bảo vệ bạn ở Layer 3-4)
    (vDDoS Protection sẽ bảo vệ ở bạn Layer 7)
    -Chỉ Download vDDoS Protection packages từ trang vDDoS HomePages, không dùng một nguồn khác.
    -Chỉ sử dụng phần mềm này để testing hoặc demo!

    Để tăng cường chống DDoS với Layer3, 4 khi sử dụng vDDoS, bạn vui lòng tham khảo thêm bài viết Hướng dẫn chống DDoS tại Layer 3,4 với vDDoS

    vDDoS Protection chỉ đơn giản vậy thôi! Chúc bạn bảo vệ website thành công!
    Nguồn: Võ Duy

     
    Chính sửa cuối: 22/7/18
    ExpertVN thích bài này.
  2. Đang tải...


Chia sẻ trang này