duy13
Wh------
-
15/01/2017
-
8
-
15 bài viết
Chống DDOS cho WEBSITE bằng các công cụ hỗ trợ miễn phí: vDDoS Proxy Protection, vDDoS Layer4 Mappin
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)
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ể:
- Bots xấu truy vấn
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ố:
Cách cài đặt vDDoS Proxy
Ví dụ sau máy chủ mình là CentOS 7 x86_64 và muốn cài bản vDDoS 1.x.x (chỉ gần wget về 1 file vddos-1.x.x-centos7):
(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:
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:
"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
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
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:
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:
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ột số khuyến cáo
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)
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ể:
- Bots xấu truy vấn
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...)
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.x.x (chỉ gần wget về 1 file vddos-1.x.x-centos7):
Mã:
curl -L https://github.com/duy13/vDDoS-Protection/raw/master/vddos-1.x.x-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***************************' }
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)
- 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!
Chỉnh sửa lần cuối bởi người điều hành: