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

Thảo luận trong 'Tài liệu Hosting' bắt đầu bởi duy13, 28/12/2016.

  1. duy13

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

    Tham gia:
    28/12/2016
    Bài viết:
    9
    Đã được thích:
    20
    Điểm thành tích:
    3
    Giới tính:
    Nam
    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:
    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 và muốn cài bản vDDoS 1.10.1 (chỉ gần wget về 1 file vddos-1.10.1-centos7):
    Mã:
    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:

    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:
    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ớ Restart vDDoS sau mỗi lần thay đổi cấu hình:
    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:
    Mã:
    # 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:
    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:
    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:
    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***************************
    ...
    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!


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

    cuonghv Cộng Sự Đắc Lực Thành viên BQT

    Tham gia:
    15/08/2015
    Bài viết:
    388
    Đã được thích:
    354
    Điểm thành tích:
    63
    Giới tính:
    Nam
    Nơi ở:
    4r truyện kiếm hiệp
    Web:
    Log của nó thì sao hả bạn?
     
    THB thích bài này.
  3. KienVHT

    KienVHT Thượng Đế

    Tham gia:
    14/04/2016
    Bài viết:
    19
    Đã được thích:
    3
    Điểm thành tích:
    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

    Tham gia:
    28/12/2016
    Bài viết:
    9
    Đã được thích:
    20
    Điểm thành tích:
    3
    Giới tính:
    Nam
    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 thích bài này.
  5. duy13

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

    Tham gia:
    28/12/2016
    Bài viết:
    9
    Đã được thích:
    20
    Điểm thành tích:
    3
    Giới tính:
    Nam
    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)

    Mã:
    [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)
    Mã:
    [root@attacker ~ ]# curl -L http://direct-web.i-com.cf:8082
    
    <!DOCTYPE html>
    <html lang="en-gb" dir="ltr">
    <head>
            <meta name="viewport" content="width=device-width, initial-scale=1.0" />
                    <meta charset="utf-8" />
            <base href="http://direct-web.i-com.cf:8082/" />
            <meta name="generator" content="Joomla! - Open Source Content Management" />
            <title>Home</title>
            <link href="/index.php?format=feed&amp;type=rss" rel="alternate" type="application/rss+xml" title="RSS 2.0" />
            <link href="/index.php?format=feed&amp;type=atom" rel="alternate" type="application/atom+xml" title="Atom 1.0" />
            <link href="/templates/protostar/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon" />
            <link href="http://direct-web.i-com.cf:8082/index.php/component/search/?Itemid=435&amp;format=opensearch" rel="search" title="Search joomla" type="application/opensearchdescription+xml" />
            <link href="/templates/protostar/css/template.css?b07c885111c1b29246c60f35646efe84" rel="stylesheet" />
            <link href="//fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet" />
            <style>
    </head>
    => Bạn có thể thấy rõ mã HTML của website bằng công cụ curl get về bởi vì nó không hề bị một sự thách thức hoặc kiểm tra nào bởi vDDoS Proxy

    2. http://cloudflare-web.i-com.cf:8080 (Traffic proxy đi thông qua Cloudflare's CDN)
    Mã:
    [root@attacker ~ ]# curl -L http://cloudflare-web.i-com.cf:8080
    <!DOCTYPE html>
    <html lang="en-gb" dir="ltr">
    <head>
            <meta name="viewport" content="width=device-width, initial-scale=1.0" />
                    <meta charset="utf-8" />
            <base href="http://cloudflare-web.i-com.cf:8080/" />
            <meta name="generator" content="Joomla! - Open Source Content Management" />
            <title>Home</title>
            <link href="/index.php?format=feed&amp;type=rss" rel="alternate" type="application/rss+xml" title="RSS 2.0" />
            <link href="/index.php?format=feed&amp;type=atom" rel="alternate" type="application/atom+xml" title="Atom 1.0" />
            <link href="/templates/protostar/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon" />
            <link href="http://cloudflare-web.i-com.cf:8080/index.php/component/search/?Itemid=435&amp;format=opensearch" rel="search" title="Search joomla" type="application/opensearchdescription+xml" />
            <link href="/templates/protostar/css/template.css?b07c885111c1b29246c60f35646efe84" rel="stylesheet" />
            <link href="//fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet" />
            <style>
    </head>
    => Cloudflare mặc định thì không thử thách công cụ của bạn khi công cụ ấy tiếp xúc với website cộng với việc vDDoS Proxy cũng không có mặt để đưa ra thách thức kiểm tra thế nên bạn cũng vẫn có thể thấy source HTML của trang web bằng công cụ curl mặc dầu nó đi xuyên qua CDN của CloudFlare.

    1. http://cloudflare-vddos-web.i-com.cf:80 (Traffic proxy đi thông qua Cloudflare's CDN & vDDoS Proxy)

    Mã:
    [root@attacker ~ ]# curl -L http://cloudflare-vddos-web.i-com.cf:80
    
    <html><body><script type="text/javascript" src="/aes.min.js" ></script><script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("f9c5842006d8c3552b5dba4d25c2c8b2"),b=toNumbers("ad396baa8934584ef179ae25af75b6b2"),c=toNumbers("4d5571fddc3d46ce22abf0636806b0aa");document.cookie="vDDoS="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/";location.href="http://cloudflare-vddos-web.i-com.cf/?d=1";</script></body></html>
    => Có thể thấy trong trường hợp này bạn đã không thể vượt qua sự kiểm tra của vDDoS Proxy bởi vì curl không phải là một trình duyệt đầy đủ để mà có thể xử lý được mã javascript mà vDDoS Proxy đưa ra trong bài test: "browser hay tool?"


    3. http://vddos-web.i-com.cf:8081 (Traffic proxy đi thông qua vDDoS Proxy)
    Mã:
    [root@attacker ~ ]# curl -L http://vddos-web.i-com.cf:8081
    
    <html><body><script type="text/javascript" src="/aes.min.js" ></script><script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("7187a67c06c01ec70fa705e69c985366"),b=toNumbers("d5ae1b31d36068285e139d0823c8f490"),c=toNumbers("2849732479830475c796dd532ebee31e");document.cookie="vDDoS="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/";location.href="http://vddos-web.i-com.cf:8081/?d=1";</script></body></html>
    => Cũng tương tự kết quả ở trên bạn đã không thể vượt qua sự kiểm tra của vDDoS Proxy bởi vì curl không phải là một trình duyệt đầy đủ như đã đề cập.

    Kết thúc bước 1.

    Bước 2: chúng ta sẽ cố gắn dùng một công cụ để truy vấn liên hồi giả lập một ý định tấn công từ chối dịch vụ vào 4 website mục tiêu trên (dùng một số tools nào đó có khả năng làm việc này như HTTP benchmark hoặc DOS, SYN, HTTP flood... mà bạn vẫn thường hay sử dụng để DOS site người khác ấy ^^).
    Mình sẽ tiến hành tấn công ở mỗi trường hợp như sau và đưa ra kết quả tương ứng có tấn công được và được gì hay không:

    4. http://direct-web.i-com.cf:8082 (Kết nối trực tiếp vào Web Server Apache)
    Mã:
    [root@attacker ~ ]# Attack ->->->-> http://direct-web.i-com.cf:8082
    => Bạn sẽ thấy ngay tình trạng High load trên các tài nguyên cpu + ram + bw ... bởi vì không có một sự giảm thiểu kiểm tra hay thách thức nào từ Web Server Apache:

    [​IMG]

    2. http://cloudflare-web.i-com.cf:8080 (Traffic proxy đi thông qua Cloudflare's CDN)
    Mã:
    [root@attacker ~ ]# Attack ->->->-> http://cloudflare-web.i-com.cf:8080
    => Đối với các công cụ tấn công SYN vào Layer 3-4 cũng không có gì xảy ra, vì bạn chỉ đang tấn công vào IP của Cloudflare, tuy nhiên khi dùng công cụ tấn công Layer 7 thì tình trạng tương tự bên trên sẽ diễn ra trên trang web mục tiêu: high load trên các tài nguyên cpu + ram + bw ...

    [​IMG]

    3. http://vddos-web.i-com.cf:8081 (Traffic proxy đi thông qua vDDoS Proxy)
    Mã:
    [root@attacker ~ ]# Attack ->->->-> http://vddos-web.i-com.cf:8081
    => Công cụ tấn công không vượt qua được sự kiểm tra của vDDoS Proxy -> Apache httpd daemon không bị high load:

    [​IMG]

    1. http://cloudflare-vddos-web.i-com.cf:80 (Traffic proxy đi thông qua Cloudflare's CDN & vDDoS Proxy)
    Mã:
    [root@attacker ~ ]# Attack ->->->-> http://cloudflare-vddos-web.i-com.cf:80
    => Tương tự bên trên công cụ tấn công không vượt qua được sự kiểm tra của vDDoS Proxy -> Apache httpd daemon không bị high load:

    [​IMG]

    Nếu bạn không có công cụ nào để tấn công mình đề nghị có thể dùng ab rất đơn giản (là một tools HTTP benchmark) để test thử:
    Mã:
    ab -n100000 -c500 http://direct-web.i-com.cf:8082/ # High load
    ab -n100000 -c500 http://cloudflare-web.i-com.cf:8080/ # High load
    
    ab -n100000 -c500 http://vddos-web.i-com.cf:8081/ # Bình thường
    ab -n100000 -c500 http://cloudflare-vddos-web.i-com.cf:80/ # Bình thường

    Bước 3: Tất nhiên là những gì diễn ra bên trên nãy giờ chỉ là một bài test với trường hợp 1 Attacker Server đấu với 1 Target Server. Chuyện gì sẽ xảy ra nếu hơn >1000 Attacker Server đấu với 1 Target Server?
    Theo như nguyên lý hoạt động mình đã mô tả về vDDoS Proxy tất nhiên nó cũng sẽ không cho hơn >1000 Bots đó vượt qua bài test chỉ vì chúng quá đông, không bao giờ (trừ phi số bots đó xử lý được javascript), nhưng nếu quá nhiều bots tấn công đồng loạt vào server của bạn -> máy chủ của bạn vẫn sẽ bị high load lý do là vì dành tốn thời gian để đưa ra bài test cho cái bọn hơn >1000 con bots đó. Bởi do đó, bạn nên gửi danh sách hơn >1000 Bots (IP Address/Dãy IP Range của tụi nó) tới các công cụ ở Layer 3-4 để cho nó BLOCK/DROP nó luôn (đó có thể là Hardware Firewall, Iptables, CloudFlare Firewall... vâng vâng) tùy theo mô hình mà bạn đang muốn xây dựng.

    [​IMG]

    Làm sao có thể làm được điều trên?

    [​IMG]

    Câu trả lời là sau khi cài xong vDDoS Proxy Protection có thể cài thêm vDDoS Layer4 Mapping: https://github.com/duy13/vDDoS-Layer4-Mapping
    Công cụ này sẽ giúp cho Layer 3-4 của bạn có một danh sách IP cụ thể để DROP/CAPTCHA nó từ xa ở Layer 3-4 trước khi gói tin đó được chuyển lên các tầng trên trong mô hình OSI nữa để xử lý.

    Install vDDoS Layer4 Mapping:
    Mã:
    curl -L https://github.com/duy13/vDDoS-Layer4-Mapping/raw/master/vddos-layer4-mapping -o /usr/bin/vddos-layer4
    chmod 700 /usr/bin/vddos-layer4
    /usr/bin/vddos-layer4

    Nếu bạn đang ý định dùng CloudFlare:
    Mã:
    Đăng nhập vào CloudFlare.com > Add Your Website > Overview > Zone ID (Lấy Zone ID của bạn)
    Email > My Setting > API Key > Global API Key > View API Key (Lấy API Key của bạn)

    Nếu bạn dùng kết nối trực tiếp, chặn IP bằng CSF & Iptables:
    Homepage: https://configserver.com/cp/csf.html
    Cài CSF như sau:
    Mã:
    cd /usr/src/
    wget 'https://download.configserver.com/csf.tgz'
    tar -xvf csf.tgz
    cd csf
    sh install.sh
    chkconfig --levels 235 csf on
    chkconfig --levels 235 lfd on

    Cấu hình CSF (tùy theo cách cấu hình mà bạn vẫn hay dùng với CSF):
    Mã:
    cd /etc/csf/
    sed -i 's/TESTING = "1"/TESTING = "0"/g' /etc/csf/csf.conf

    Restart CSF:
    Mã:
    csf -r && csf -q && service lfd restart

    Để sử dụng vDDoS-Layer4-Mapping bạn gõ:
    Mã:
    /usr/bin/vddos-layer4 
    (Chọn tùy chọn 2 hoặc 5 tùy vào ý định của bạn)

    OK bây giờ, Ở bước 4: chúng ta sẽ lặp lại bước 2 một lần nữa, đó là cố gắn dùng công cụ tấn công tẩn vào các mục tiêu website xem chuyện gì sẽ xảy ra khi mà có mặt vDDoS-Layer4-Mapping đang chạy và scan:

    3. http://vddos-web.i-com.cf:8081 (Traffic proxy đi thông qua vDDoS Proxy)
    Mã:
    [root@attacker ~ ]# Attack ->->->-> http://vddos-web.i-com.cf:8081
    => Cũng vẫn như cũ: không thể vượt qua bài kiểm tra của vDDoS Proxy -> Apache httpd daemon vẫn không high load. Tuy nhiên khi kiểm tra file /etc/csf/csf.deny bạn sẽ thấy Ip của Attacker đã bị CSF khóa mất:
    Mã:
    [root@www ] cat /etc/csf/csf.deny
    54.164.194.1
    1. http://cloudflare-vddos-web.i-com.cf:80 (Traffic proxy đi thông qua Cloudflare's CDN & vDDoS Proxy)
    Mã:
    [root@attacker ~ ]# Attack ->->->-> http://cloudflare-vddos-web.i-com.cf:80
    => Cũng vẫn như cũ: không thể vượt qua bài kiểm tra của vDDoS Proxy -> Apache httpd daemon vẫn không high load. Tuy nhiên khi kiểm tra qua trang Cloudflare Firewall bạn sẽ thấy IP Address của Attacker Server đã bị vDDoS-Layer4-Mapping gửi cho CloudFlare khóa lại buộc nhập CAPTCHA mới cho qua:

    [​IMG]

    Cuối cùng bước 5: Nếu như không may, bạn đang phải nằm dưới một trận tấn công không thể tin nổi với số lượng IP tham gia tấn công lên tới vài trăm ngàn và chúng đều có thể vượt qua bài test Javascript của vDDoS Proxy => bạn có thể thử bật chức năng Captcha-All-Country Mode của vDDoS Layer4 Mapping. Nó sẽ khiến CloudFlare bật CAPTCHA cho 251 quốc gia trên toàn thế giới => việc này tuy sẽ gây một chút bất tiện cho người dùng khi vào web phải qua CAPTCHA tuy nhiên nó sẽ giúp giữ sự sống còn cho trang bạn. (Nhớ thêm Whitelist cho các botsearch).

    Chúc bạn may mắn!
     
    Chỉnh sửa cuối: 24/01/2017
    THB, cuonghv and nghienvt like this.
  6. nghienvt

    nghienvt Thượng Đế

    Tham gia:
    01/01/2017
    Bài viết:
    65
    Đã được thích:
    62
    Điểm thành tích:
    18
    Giới tính:
    Nam
    Xin chân thành cám ơn Duy đã tạo ra module này cho linux, giúp cho những người đang làm webserver bằng máy chủ vật lý có thể thêm sức mạnh để phòng ngự. Trước đây mình từng nghĩ những tính năng này phải mua và không rẻ từ một hãng chuyên security, hoặc phải dùng một máy tính khác làm gateway như cài Pfsense. Bao nhiêu thời gian xây dựng diễn đàn, là bấy nhiêu thời gian ngồi suy tư, âu lo về cách bảo vệ.

    Giờ với tính năng Vddos vừa tốt vừa miễn phí, thì khả năng chịu đựng của một cuộc tấn công cỡ 1000 máy mà mình test thử, chỉ mất khoảng 5-10 giây để server trở lại trạng thái bình chân như vại, các giây đầu trong cuộc tấn công thử thì đúng là cpu full load và ram dâng lên rất cao, rồi từ từ hạ xuống như không có gì (hai giây đầu tiên, máy chủ dâng từ 5gb ram lên gần 10gb, cpu 100%, sau đó quay trở lại xuống còn 5gb và cpu bình thường). Mình chưa thử các công cụ test nặng, vì hiện tại mình vừa đăng ký thêm bên CloudFlare gói 350k/tháng, Vddos và CloudFlare mình đang để ở mức medium/Low. Nếu cần thiết thì sẽ để ở mức Capcha và Under Attacked.

    Tuy chưa biết về sau các trường hợp nặng sẽ ra sao, nhưng ít nhất qua test thử, có hiệu quả rõ rệt & mình thật sự vui vì đã có cả hai ứng dụng tuyệt hảo bảo vệ cho server. Test thử perfomance của website thì load vẫn trong tầm 1.7s đến 2.5s, gần như là bình thường trước khi cài đặt bảo mật.

    Dù biết rằng các website lớn trên thế giới vẫn không thiếu sự phòng chống, mà vẫn bị tê liệt vì ddos hay bị hack mất trang chủ, nhưng ít nhất, hiện tại máy chủ của mình đã có thể thoát được các anh chị em dùng tool ddos để nghịch phá chứ không có ý gì khác. Giờ mình mới nghĩ lại là, nếu đợt tấn công 1000 máy vừa rồi, mà mình chưa cài Vddos, có thể máy chủ sẽ tê liệt sớm thôi, thậm chí hư luôn, khi ram cứ dâng lên và CPU fulload trong một thời gian dài mà mình không biết. Rất dễ nhầm lẫn giữa mạng chậm, và máy chủ thật sự đang hoạt động hết công suất, trừ phi mở System manager lên xem cpu & ram đang loading.

    Chân thành cám ơn Duy một lần nữa!
     
    choioioioi, THB and duy13 like this.
  7. duy13

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

    Tham gia:
    28/12/2016
    Bài viết:
    9
    Đã được thích:
    20
    Điểm thành tích:
    3
    Giới tính:
    Nam
    cám ơn bạn đã tiến hành thử nghiệm vDDOS trên hệ thống thật. Hy vọng nó sẽ bảo vệ website của bạn được tốt hơn trong tương lai Yes~~

    Theo kinh nghiệm của mình thì nếu số lượng IP > 1000 bot rồi thì rất khó khăn trong việc bảo vệ. Phải xài vDDOS+ CloudFlare. Cứ bật Captcha all country rồi remove nước mà web nhắm đến (ví dụ VN) trong Firewall của Cloudflare là ok, số lượng bot ddos tại VN không quá nhiều, vDDOS có thể đỡ được hầu hết.
    Mình đã từng ngăn chặn được 1 đợt tấn công >17000 IP với phương pháp này trên 1 VPS 1GB RAM, hầu như vDDOS đã chặn được cuộc tấn công nhưng do Layer 3-4 không chặn gói tin nên dù CPU không Highload cơ mà card mạng vẫn bị đầy, do đó nên dùng CloudFlare là tốt nhất đề chống lại việc này, (CloudFlare có thể chịu tới 400Gbps traffic lận mà)
     
    Chỉnh sửa cuối: 14/02/2017
    THB, cuonghv and nghienvt like this.
  8. nghienvt

    nghienvt Thượng Đế

    Tham gia:
    01/01/2017
    Bài viết:
    65
    Đã được thích:
    62
    Điểm thành tích:
    18
    Giới tính:
    Nam
    Tuyệt quá, nhờ Duy nói mình mới biết cpu không highload thì ko có nghĩa là ổn, vì card mạng vẫn bị đầy, mình sẽ chú ý và kiểm tra thường xuyên hơn :) Đúng là ko ra ngoài để tiếp xúc, thì còn thiếu kiến thức trầm trọng vì mấy cái này chẳng thể nào đi học bài bản cho kịp khi cần kíp, thank Duy, thank VNXF :)

    Modified: Nhờ Duy giúp mình giải thích vài vấn đề, có thể sau này giúp được các bạn khác hiểu rõ hơn luôn ^^.

    1/ Nếu mình bắt đầu đưa vào "blacklist-countrycode.conf" các country bị cấm, và "VN yes;" thì có cần phải xóa dòng "default yes;" trên cùng không Duy.

    2/ Và nội dung của "cdn-ip.conf":
    # Cloudflare
    set_real_ip_from 103.21.244.0/22;
    set_real_ip_from 103.22.200.0/22;
    set_real_ip_from 103.31.4.0/22;
    set_real_ip_from 104.16.0.0/12;
    set_real_ip_from 108.162.192.0/18;
    set_real_ip_from 131.0.72.0/22;
    set_real_ip_from 141.101.64.0/18;
    set_real_ip_from 162.158.0.0/15;
    set_real_ip_from 172.64.0.0/13;
    set_real_ip_from 173.245.48.0/20;
    set_real_ip_from 188.114.96.0/20;
    set_real_ip_from 190.93.240.0/20;
    set_real_ip_from 197.234.240.0/22;
    set_real_ip_from 198.41.128.0/17;
    set_real_ip_from 199.27.128.0/21;
    # Cái này mình thêm vào:
    set_real_ip_from 2400:cb00::/32;
    set_real_ip_from 2405:8100::/32;
    set_real_ip_from 2405:b500::/32;
    set_real_ip_from 2606:4700::/32;
    set_real_ip_from 2803:f800::/32;
    set_real_ip_from 2c0f:f248::/32;
    set_real_ip_from 2a06:98c0::/29

    Có phải để VDDoS làm việc và không chỉnh sửa phần này, do mình đang tự hỏi "set_real_ip_from" có phải là để hiển thị IP thật của server ra trình duyệt khi cần, nếu vậy chắc mình remove tùy chọn cho hiện IP này, do không có nhiều dùng người quan tâm tới IP của diễn đàn.

    3/ Sắp tới, mình sẽ phải gửi máy chủ vào Datacenter để bảo đảm ko bị cúp điện và mong rằng băng thông cao hơn line riêng đang dùng trên Cty, dù là line business chứ mình chẳng thấy nó khác gì hộ gia đình vì là gói thường thường. Bây giờ ở văn phòng thì tự tung tự tác một mình, chỉ qua VDDoS và CloudFlare, thấy mọi thứ ổn. Nhưng Duy có kinh nghiệm hay biết về việc Datacenter cũng có thể làm chậm website của mình nếu nó áp dụng thêm firewall nữa để bảo vệ các máy chủ đặt trong đó như mặc định, vì như Duy đã nhắc, bảo vệ càng nhiều thì website càng chậm...v..v..

    4/ Mong là lúc nào đó, Duy nghiên cứu giúp người dùng về một script trên linux, qua đó check log của VDDoS lặp đi lặp lại trong một khoảng thời gian nào đó, và detect là server có under attacked hay không, nếu có thể thì sendmail hay hiện warning gì đó trên máy chủ, cho người quản trị biết ngay, để họ lập tức triển khai các mức độ chặn cao hơn ngay từ lúc nó mới bắt đầu.

    Thanks Duy :)
     
    Chỉnh sửa cuối: 15/02/2017
    THB thích bài này.
  9. duy13

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

    Tham gia:
    28/12/2016
    Bài viết:
    9
    Đã được thích:
    20
    Điểm thành tích:
    3
    Giới tính:
    Nam
    default yes => có nghĩa là mặc định các nước sẽ là allow
    VN yes => có nghĩa là IP VN truy cập sẽ là allow
    CN no => có nghĩa là IP CN truy cập sẽ là deny
    Tổng cộng 3 rule trên như thế thì sẽ chỉ có CN bị chặn.
    (hoặc default no + VN yes thì chặn toàn thế giới xem như chỉ VN vào dc)

    Cái này cũng ko cần thiết lắm, trừ khi bạn muốn chặn quốc gia nào đó,

    Cái này là để vDDOS xác định IP thật của client đi thông qua từ các dãy IP Proxy của Cloudflare, nếu không có nó thì vDDOS chỉ thấy được IP CloudFlare truy xuất web. Phải thấy Ip thật của client thì mới chặn nó được ko thì sẽ chặn nhầm IP của Cloudflare, IP của Cloudflare chỉ là đi trung gian thôi.
    (set_real_ip_from 103.21.244.0/22; => thấy IP trong dãy 103.21.244.0/22 truy vấn vào web thì phải xác định IP thật từ đăng sau truy vấn đó)

    Mình vẫn đánh giá Cloudflare cao hơn hạ tầng mạng VN, có đợt 1 bạn chạy forum bị ddos mà trong datacenter nơi bạn ấy thuê hãi quá rút dây card mạng của server bạn ấy ra luôn (tất nhiên là phải làm thế vì sợ switch router bị die) bạn ấy cứ phải PM bật lại cho bạn ấy nhưng bên kia dứt khoát ko cho.

    Chào bạn mình sẽ ghi nhận điều này.
     
    THB and nghienvt like this.
  10. duy13

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

    Tham gia:
    28/12/2016
    Bài viết:
    9
    Đã được thích:
    20
    Điểm thành tích:
    3
    Giới tính:
    Nam
    Một số phản hồi của người dùng đến với mình sau một thời gian qua vDDoS được public:
    Tích cực:
    +Một số người dùng tại TQ nói với mình rằng phần mềm này tương đối hiệu quả và cản được 1 lượng IP attack khổng lồ
    +Một trang bán dịch vụ chống DDOS trụ sở tại Italy thông báo với mình họ đã kết hợp vDDos với Deflate https://github.com/jgmdev/ddos-deflate và có thể trừ khử 12.000 IP tấn công trực tiếp vào khách hàng của họ
    +Một hacker bên California, US đã dựng 3 con server vật lý làm vDDoS Proxy cho trang web backend của anh ấy và nhờ bạn của anh sử dụng botnet để tấn công thử, khả năng chịu đựng của mỗi con server là >1 triệu request (tổng 3 con là trên 3tr) vẫn còn có thể chịu đựng hơn nữa nhưng do khả năng của mạng botnet kia có hạn nên chưa test được. (tất cả request đều không xuyên được bài test javascript) dù dùng phương pháp này trước đã đánh sập được reddit
    Tiêu cực:
    +Từ lúc xuất hiện đến giờ vDDoS vẫn còn phát hiện ra thêm nhiều bug và lỗi vặt, cho nên hiện vẫn đang được update các bản vá mới
    +Một số người than phiền rằng nguồn gốc của phần mềm có vẻ đến từ VN nên không đáng tin cậy
    +Một số người (có vẻ là các hãng bán dịch vụ chống ddos) tỏ ra nghi ngờ và cho rằng không nên sử dụng
    ...
    Nói chung các bạn cũng nên test qua thôi để kiểm tra mức độ hiệu quả, không nên lập tức đem vào sử dụng, có thể có lỗi ngoài ý muốn.
     
    Chỉnh sửa cuối: 26/05/2017
    THB, nghienvt, cuonghv and 1 other person like this.
  11. nghienvt

    nghienvt Thượng Đế

    Tham gia:
    01/01/2017
    Bài viết:
    65
    Đã được thích:
    62
    Điểm thành tích:
    18
    Giới tính:
    Nam
    Duy ơi đừng ngừng lại nhe :)

    Tinh hoa của thiên nhiên, của xã hội là kết quả của năng lực, bền bỉ và một phần may mắn. Trong đó có tới 2 thứ mà Duy làm chủ được. Không bổ sung, cải tiến thì không thể phát sinh ra kế thừa tiên tiến. Nếu Duy còn theo đuổi và hoàn thiện vDDos tới khả năng cuối của nó, thì rất có khả năng nhận ra một kế thừa mới, tiên tiến tới mức mà ngày hôm nay cả Duy và mọi người chưa nghĩ ra được.

    Xin đừng từ bỏ, never give it up... nhe Duy :)
     
    THB and duy13 like this.
  12. laocainet002

    laocainet002 Thượng Đế

    Tham gia:
    30/05/2017
    Bài viết:
    1
    Đã được thích:
    1
    Điểm thành tích:
    1
    Giới tính:
    Nữ
    mình đang test
    sẽ setup cho trang khá lớn của mình
    duy có skype or phone cho mình xin tiện lien hệ hợp tác nhé.
     
    THB thích bài này.
  13. duy13

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

    Tham gia:
    28/12/2016
    Bài viết:
    9
    Đã được thích:
    20
    Điểm thành tích:
    3
    Giới tính:
    Nam
    Mọi người cần hỗ trợ có thể liên lạc qua skype: voduy13 của mình (hoặc Gmail ncc661)
     
    THB and nghienvt like this.
  14. manhh

    manhh Thượng Đế

    Tham gia:
    21/04/2018
    Bài viết:
    2
    Đã được thích:
    2
    Điểm thành tích:
    3
    Giới tính:
    Nam
    Nơi ở:
    NA
    Khi mình sử dụng l4-mapping thì có nhận thấy như sau

    - Mình curl bình thường sẽ ko bị block IP
    - Khi sử dụng ab thì đúng là bị block luôn (dùng csf)

    Nhưng check trong file deny csf thấy IP bị block như sau

    03.53.xxx.xxx
    103.53.xxx.xxxx

    Tức ở đây là IP nó add 2 lần, 1 lần thiếu 1 số đằng trước, 1 lần thì đầy đủ
     
    THB thích bài này.
  15. manhh

    manhh Thượng Đế

    Tham gia:
    21/04/2018
    Bài viết:
    2
    Đã được thích:
    2
    Điểm thành tích:
    3
    Giới tính:
    Nam
    Nơi ở:
    NA
    Đã được tác giả support giải quyết như sau, chạy lệnh dưới đây để clear csf trước khi bật lại L4

    Mã:
    /usr/sbin/csf -tf && /usr/sbin/csf -df && /usr/sbin/csf -r && /usr/sbin/csf -q && service lfd restart
    Cảm ơn bạn Võ Duy
     
    THB thích bài này.
  16. duy1313

    duy1313 Thượng Đế

    Tham gia:
    09/06/2018
    Bài viết:
    5
    Đã được thích:
    3
    Điểm thành tích:
    3
    Giới tính:
    Nam
    Nơi ở:
    HCM
    Nick cũ mình bị mất, đây là nick mới của mình bạn nào còn cần hỗ trợ vấn đề này nữa thì cứ PM mình nhé :)
     
    THB thích bài này.
  17. thanhtam1001

    thanhtam1001 Thượng Đế

    Tham gia:
    19/05/2018
    Bài viết:
    1
    Đã được thích:
    0
    Điểm thành tích:
    1
    Giới tính:
    Nam
    Nơi ở:
    Trái Đất
    Chào Duy ! cảm ơn về VDDOS,
    cho mình hỏi chút về update VDDOS :hiện tại mình đang dùng :
    /vddos/vddos -v
    nginx version: nginx/1.14.0
    Muốn nâng lên bản cao hơn có cần cài lại hay lệnh udpate phiên bản mới của VDDOS là gì nhỉ ?
    Mong Duy và các bạn chỉ giúp
     

Chia sẻ trang này