Hướng dẫn Cài đặt vDDoS Proxy Protection - chống DDoS cho máy chủ chạy Website, Blog, Forum...

Discussion in 'Tài liệu Hosting' started by duy13, Dec 28, 2016.

  1. duy13

    duy13 Cộng Sự Nhiệt Tình Leecher

    Joined:
    Dec 28, 2016
    Messages:
    9
    Likes Received:
    20
    Trophy Points:
    3
    Gender:
    Male
    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)
    [​IMG]

    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 :
    [​IMG]

    [​IMG]


    -Bots xấu truy vấn:
    [​IMG]

    [​IMG]

    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:
    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 và muốn cài bản vDDoS 1.10.1 (chỉ gần wget về 1 file vddos-1.10.1-centos7):
    Code:
    curl -L https://github.com/duy13/vDDoS-Protection/raw/master/vddos-1.10.1-centos7 -o /usr/bin/vddos
    chmod 700 /usr/bin/vddos
    /usr/bin/vddos help
    /usr/bin/vddos setup
    (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:
       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:
    # 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ớ Restart vDDoS sau mỗi lần thay đổi cấu hình:
    Code:
    # 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:
    # 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:
    # 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:
    # 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:
    # 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!


    vDDoS Protection chỉ đơn giản vậy thôi! Chúc bạn bảo vệ website thành công!
     
  2. cuonghv

    cuonghv Cộng Sự Đắc Lực Staff Member

    Joined:
    Aug 15, 2015
    Messages:
    388
    Likes Received:
    354
    Trophy Points:
    63
    Gender:
    Male
    Location:
    4r truyện kiếm hiệp
    Home Page:
    Log của nó thì sao hả bạn?
     
    THB likes this.
  3. KienVHT

    KienVHT Thượng Đế

    Joined:
    Apr 14, 2016
    Messages:
    24
    Likes Received:
    3
    Trophy Points:
    3
    Con này so sánh như thế nào với CSF Firewall?
    Thấy chức năng cũng tương tự
     
  4. duy13

    duy13 Cộng Sự Nhiệt Tình Leecher

    Joined:
    Dec 28, 2016
    Messages:
    9
    Likes Received:
    20
    Trophy Points:
    3
    Gender:
    Male
    Log là sao bạn? Ý bạn là ghi log thì bạn vào /vddos/conf.d/logs.conf để cấu hình cách ghi và vào thư mục này để xem /var/log/vddos

    CSF Firewall chỉ chặn được Layer 3-4 với sự phân biệt TCP/UDP thôi nhé bạn, còn cái này là tường lửa của ứng dụng HTTP Layer 7.
    -CSF nó dựa vào hành vi gửi gói tin TCP/UDP của client để đưa ra quyết định chặn
    -vDDoS nó dựa vào hành vi gửi truy vấn HTTP (bên trong gói tin TCP) để đưa ra quyết định chặn hoặc cho phục vụ. vDDoS thì nó can thiệp vào sâu hơn, chặn chính xác hơn. Ví dụ client đi qua cloudfalre để truy cập web port 80, CSF nó chỉ thấy được dãy IP truy cập từ Cloudflare nhưng vDDoS nó thấy được IP của client thật sự đằng sau Cloudflare. GIả sử client đó tấn công, CSF sẽ quyết định khóa IP Cloudflare còn vDDoS sẽ khóa IP thật sự của client, bên cạnh đó nếu bạn đọc kỹ một vài tính năng vDDoS cung cấp đưa ra recaptcha kiểm tra và check được javascript... cái này thì CSF thua tại nó ở tầng Layer 3-4

    [​IMG]
     
    THB likes this.
  5. duy13

    duy13 Cộng Sự Nhiệt Tình Leecher

    Joined:
    Dec 28, 2016
    Messages:
    9
    Likes Received:
    20
    Trophy Points:
    3
    Gender:
    Male
    Tiếp theo: Chống DDOS cho WEBSITE bằng vDDoS Proxy Protection kết hợp vDDoS Layer4 Mapping

    Xin chào các bạn, trong phần hướng dẫn tiếp theo này mình sẽ sử dụng 2 máy chủ: một máy giả lập thành kẻ tấn công từ chối dịch vụ (attacker) và một máy làm mục tiêu bị tấn công (victim).

    Trên máy làm mục tiêu tấn công, mình có 4 trường hợp về việc chạy website như sau: (4 domain cùng trỏ vào 1 hosting LAMP chạy source web Joomla CMS)

    1. http://cloudflare-vddos-web.i-com.cf:80 (Traffic proxy đi thông qua Cloudflare's CDN & vDDoS Proxy)
    2. http://cloudflare-web.i-com.cf:8080 (Traffic proxy đi thông qua Cloudflare's CDN)
    3. http://vddos-web.i-com.cf:8081 (Traffic proxy đi thông qua vDDoS Proxy)
    4. http://direct-web.i-com.cf:8082 (Kết nối trực tiếp vào Web Server Apache)

    Code:
    [root@www ]# netstat -lntup
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      864/httpd
    tcp        0      0 0.0.0.0:8082            0.0.0.0:*               LISTEN      864/httpd
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      5747/nginx: master
    tcp        0      0 0.0.0.0:8081            0.0.0.0:*               LISTEN      5747/nginx: master
    [​IMG]

    OK, Ở bước 1: tại máy của kẻ tấn công attacker sẽ dò tìm xem mục tiêu cần tấn công có những thông tin gì bằng công cụ curl:

    4. http://direct-web.i-com.cf:8082 (Kết nối trực tiếp vào Web Server Apache)
    Code:
    [root@attacker ~ ]# curl -L http://direct-web.i-com.cf:8082
    
    
    
    
            
                    
    
            
            Home