[Discussion] Xin tư vấn cách chống ddos hiệu quả hơn |
25/04/2014 20:19:08 (+0700) | #1 | 280448 |
meomeo1133
Member
|
0 |
|
|
Joined: 17/04/2014 12:17:14
Messages: 6
Offline
|
|
Chào các anh chị
Em xin nói trước là e là tay ngang nên trình độ của e còn hạn chế. Secure server thì toàn học lóm là chính.
E xin trình bày tình trạng hiện tại:
1. Server
Processor Name Intel(R) Xeon(TM) CPU 2.80GHz (x4)
Vendor ID GenuineIntel
Processor Speed (MHz) 2787.471
Total Memory 4025548 kB
Service đang chạy:
Apache 2.4.7
DirectAdmin
Exim
MySQL
dovecot
pure-ftpd
Php
Server e chủ yếu là share hosting tầm khoảng 25 websites
Hiện tại 1 có 1 trang nhận hàng loạt request như sau:
175.139.162.92 - - [25/Apr/2014:20:06:24 +0700] "GET / HTTP/1.1" 200 17789 "x513o3eq9cbe58.com" "Mozilla/3.0 (Slurp/si; slurp@inktomi.com; http://www.kst3ps699631.com/slurp.html)"
186.208.74.24 - - [25/Apr/2014:20:06:26 +0700] "GET / HTTP/1.1" 200 17788 "sf2c0ksxe5c.info" "Mozilla/4.0 (compatible; MSIE 5.5; AOL 4.0; Windows 98; GoBeez www.293252za9p1chx.com))"
175.139.162.92 - - [25/Apr/2014:20:06:28 +0700] "GET / HTTP/1.1" 200 17789 "29u05lmb4.biz" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7 SnapPreviewBot"
92.226.121.140 - - [25/Apr/2014:20:06:31 +0700] "GET / HTTP/1.1" 200 17789 "528t9ehy2.net" "Mozilla/5.0 (compatible; Konqueror/2.0.1; X11); Supports MD5-Digest; Supports gzip encoding"
175.139.162.92 - - [25/Apr/2014:20:06:33 +0700] "GET /gui-thong-tin-tu-van-phap-luat/view/form.html HTTP/1.1" 200 16734 "z885369a7.biz" "Mozilla/4.76 [en] (X11; U; FreeBSD 4.4-STABLE i386)"
E cố search 1 số thông tin về công cụ ddos này thì không ra, e chỉ đoán là 1 dạng botnet nào đó.
Hiện tại thì tầm khoảng > 300 ip đánh vào hằng ngày.
Trước đây thì e build Apache ở dạng prefork và PHP chạy ở mod_suphp nên bị đánh vào là server chết đứ đừ.
E có học theo cách a conmale dựng mod_security và dử dụng file 1 file block.sh để lọc IP và chặn bằng iptables như sau:
SecAction "phase:1,t:none,pass,nolog,initcol:global=global,initcol:ip=%{remote_addr}"
SecRule REQUEST_URI "^/$" "nolog,phase:1,setvar:ip.ddos=+1,deprecatevar:ip.ddos=30/60,expirevar:ip.ddos=120"
SecRule IPDOS "@gt 5" "phase:1,log,msg:'DDoS_from_%{REMOTE_ADDR}',exec:/path/to/blocker.sh"
Ngoài ra e còn chuyển apache về chế độ event, php về fastcgi
Cách này thì tạm thời hiệu quả
Số pkg vào ở port 80: 2046K
Số pkg chặn lại ở ipt_recent: 27M
Server load time ở mức 1~5%
Nhưng lỡ e mà restart lại cái iptables thì số record lưu trong ipt_recent mất sạch. Một lượng package lại tràn vào, lúc này apache & php sẽ return error 500.
Điều đó có nghĩa là mod_security không thể thực thi tiếp được.
Vậy e xin các anh chỉ bảo cách để chặn hiệu quả hơn.
Cảm ơn mọi người. |
|
|
|
|
[Discussion] Xin tư vấn cách chống ddos hiệu quả hơn |
26/04/2014 09:27:16 (+0700) | #2 | 280456 |
|
somenuchi
Member
|
0 |
|
|
Joined: 08/10/2011 09:19:02
Messages: 55
Offline
|
|
Nếu bạn không ngại thay đổi cấu trúc website thì cách đơn giản và khá phổ biến sau đây có thể xử lý được:
B1: Chuyển toàn bộ source code vào thư mục mới (new_folder) nằm dưới thư mục cũ.
B2: Tại thư mục cũ tạo một file index.html có nhiệm vụ khi người dùng click vào đường link thì sẽ wwwect vào thư mục mới.
Cách này hơi bất tiện cho người truy cập web nhưng khá đơn giản. Apache sẽ chỉ trả ra 1 file html do đó tải sever sẽ không tăng đáng kể. Trong trường hợp của bạn thì sẽ có hiệu quả.
|
|
vô thường |
|
|
|
[Discussion] Xin tư vấn cách chống ddos hiệu quả hơn |
26/04/2014 13:23:37 (+0700) | #3 | 280461 |
meomeo1133
Member
|
0 |
|
|
Joined: 17/04/2014 12:17:14
Messages: 6
Offline
|
|
somenuchi wrote:
Nếu bạn không ngại thay đổi cấu trúc website thì cách đơn giản và khá phổ biến sau đây có thể xử lý được:
B1: Chuyển toàn bộ source code vào thư mục mới (new_folder) nằm dưới thư mục cũ.
B2: Tại thư mục cũ tạo một file index.html có nhiệm vụ khi người dùng click vào đường link thì sẽ wwwect vào thư mục mới.
Cách này hơi bất tiện cho người truy cập web nhưng khá đơn giản. Apache sẽ chỉ trả ra 1 file html do đó tải sever sẽ không tăng đáng kể. Trong trường hợp của bạn thì sẽ có hiệu quả.
Cảm ơn cách của bạn nhưng cách này không ổn.
Chuyển folder đồng nghĩa với việc SEO của site bị mất hết.
Với lại e muốn tìm cách chặn ngày từ tầng ngoài trước khi vào đến apache... |
|
|
|
|
[Discussion] Xin tư vấn cách chống ddos hiệu quả hơn |
27/04/2014 22:48:21 (+0700) | #4 | 280485 |
meomeo1133
Member
|
0 |
|
|
Joined: 17/04/2014 12:17:14
Messages: 6
Offline
|
|
Hic, dạo này diễn đàn sao ít người tư vấn dùm quá...
Hôm nay tiếp tục cài wireshark vào capture http header của mấy cái request đó thì thấy như sau:
Request Method: GET
Request URI: /tin-tuc/luat-nha-dat/2296-lam-sao-hoan-cong-nha-xay-dung-sai-phep.html
Request Version: HTTP/1.0
Host: www.xxxxxxxxxxx.com\r\n
Keep-Alive: 300\r\n
Connection: keep-alive\r\n
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; http://www.changedetection.com/bot.html ) \r\n
Referer: 4ytxb96c.net\r\n
Dựng ngay varnish và thêm 1 cái rule
if (req.http.Keep-Alive) {
return (error);
}
Vậy cho e hỏi hầu hết các browser đều không gửi kèm đoạn header này phải không ạ, lỡ giết nhầm thì khổ... |
|
|
|
|
[Discussion] Xin tư vấn cách chống ddos hiệu quả hơn |
28/04/2014 12:05:40 (+0700) | #5 | 280496 |
hoang_philong
Member
|
0 |
|
|
Joined: 09/07/2009 10:47:05
Messages: 7
Offline
|
|
hiện mình cũng đang làm 1 trang count tính lượt click chuột từ 1 ip khi nào xong úp cái demo anh em xem giúp
bị kiểm tra lỗi sql injection nhiều quá |
|
|
|
|
[Discussion] Xin tư vấn cách chống ddos hiệu quả hơn |
29/04/2014 10:44:15 (+0700) | #6 | 280501 |
|
somenuchi
Member
|
0 |
|
|
Joined: 08/10/2011 09:19:02
Messages: 55
Offline
|
|
Nếu cứ có keep-alive mà chặn thì bạn sẽ chặn nhầm rất nhiều trường hợp.
Chỉ keep-alive không thôi thì không đủ để coi đó là dấu hiệu DDoS. |
|
vô thường |
|
|
|
[Discussion] Xin tư vấn cách chống ddos hiệu quả hơn |
29/04/2014 10:55:59 (+0700) | #7 | 280502 |
meomeo1133
Member
|
0 |
|
|
Joined: 17/04/2014 12:17:14
Messages: 6
Offline
|
|
somenuchi wrote:
Nếu cứ có keep-alive mà chặn thì bạn sẽ chặn nhầm rất nhiều trường hợp.
Chỉ keep-alive không thôi thì không đủ để coi đó là dấu hiệu DDoS.
Đó là cách tạm thời để chặn mấy cái packets cố tình phá hoại...
Cho nó chạy đến tầng apache là server không chịu nổi.
Nhưng với cách này thì packet tạm thời nó chạy ào ào vào và bị chặn bởi proxy mà không cách nào chặn được ngoài iptables.
Tìm cách thực thi script trên varnish thì không thấy có tài liệu nào đề cập.
Vẫn đang tìm kiếm... |
|
|
|
|
[Discussion] Xin tư vấn cách chống ddos hiệu quả hơn |
07/05/2014 15:34:34 (+0700) | #8 | 280567 |
|
somenuchi
Member
|
0 |
|
|
Joined: 08/10/2011 09:19:02
Messages: 55
Offline
|
|
Mấy cái request dạng này đều có điểm chung nhât định. Theo như log bạn gửi lên thì nó đều chứa referer từ một site không có thực nào đó. Bạn có thể dựa vào điểm này để loại bỏ các request bất hợp lệ. VD như chỉ cho những request nào có referer được phép thì mới được truy cập, tất cả các dạng khác thì deny.
Ngoài ra bạn có thể tìm thêm một số đặc điểm nhận dạng khác để kết hợp, giảm thiểu tình trạng chặn nhầm.
|
|
vô thường |
|
|
|
[Discussion] Xin tư vấn cách chống ddos hiệu quả hơn |
12/05/2014 22:46:46 (+0700) | #9 | 280616 |
meomeo1133
Member
|
0 |
|
|
Joined: 17/04/2014 12:17:14
Messages: 6
Offline
|
|
somenuchi wrote:
Mấy cái request dạng này đều có điểm chung nhât định. Theo như log bạn gửi lên thì nó đều chứa referer từ một site không có thực nào đó. Bạn có thể dựa vào điểm này để loại bỏ các request bất hợp lệ. VD như chỉ cho những request nào có referer được phép thì mới được truy cập, tất cả các dạng khác thì deny.
Ngoài ra bạn có thể tìm thêm một số đặc điểm nhận dạng khác để kết hợp, giảm thiểu tình trạng chặn nhầm.
Theo cách này thì có phải là e lọc các referer không có http:// phải không ạ?
A có thể cho e 1 rule ví dụ để lọc các referer như vậy không ạ?
Chân thành cảm ơn anh!!!
Update: Hiện tại thêm 1 rule lọc referer vào varnish như sau:
if (req.http.referer && req.http.referer !~ "http(s)?:\\") {
return (error);
}
Kết quả khả thi là chặn hết các request theo dạng trên ở varnish...
Nhưng e vẫn sợ là mình chặn nhầm người sử dụng thực sự. Có cú pháp nào hay hơn không nhỉ??? |
|
|
|
|
[Discussion] Xin tư vấn cách chống ddos hiệu quả hơn |
16/05/2014 09:08:20 (+0700) | #10 | 280667 |
Vnalink
Member
|
0 |
|
|
Joined: 11/03/2011 04:57:46
Messages: 2
Offline
|
|
Mình nghĩ thế này:
- Khi ta phát hiện ra lưu lượng truy cập bất thường từ 1 ip nào đó, thì tiến hành buộc nhập Captcha.
- Sau đó, lưu cookie đó, để lượt truy cập sau không phải nhập
- Hỗ trợ cho nhiều link tài nguyên khác nhau trong cùng 1 site.
(giống kiểu Google đang làm thì phải)
Mình nghĩ ra có đến vậy, nhưng chưa biết làm thế nào. Ai làm rồi chỉ giúp cùng với. |
|
|
|
|
[Discussion] Xin tư vấn cách chống ddos hiệu quả hơn |
31/05/2014 23:06:31 (+0700) | #11 | 280737 |
meomeo1133
Member
|
0 |
|
|
Joined: 17/04/2014 12:17:14
Messages: 6
Offline
|
|
Chặn hơn cả tháng mà tụi nó vẫn gửi request liên tục
Load average lúc nào cũng từ 1~2 (tài nguyên server không đủ, nên giờ load web lúc nào cũng mất 5~10s)
Mở varnishstat ra xem thì thấy:
0+00:20:15
Hitrate ratio: 9 9 9
Hitrate avg: 0.3596 0.3596 0.3596
88452 63.97 72.80 client_conn - Client connections accepted
90445 64.97 74.44 client_req - Client requests received
88450 64.97 72.80 s_sess - Total Sessions
90445 64.97 74.44 s_req - Total Requests
87518 64.97 72.03 sess_closed - Session Closed
20 phút mà tận 90k req, closed hết 87k theo bộ lọc....
Capture header thì thấy vào ào ạt
GET /gui-thong-tin-tu-van-phap-luat/view/form.html HTTP/1.0\r\n
Request Method: GET
Request URI: /gui-thong-tin-tu-van-phap-luat/view/form.html
Request Version: HTTP/1.0
Host: xxxxxxxxxx.com\r\n
Keep-Alive: 300\r\n
Connection: keep-alive\r\n
User-Agent: Mozilla/4.0 (compatible; DepSpid/5.0x; +http://about.h21c1ie8.net) \r\n
Referer: 993r4fd.biz\r\n
\r\n
Haizzzz, giờ phải làm sao đây....
|
|
|
|
|
[Discussion] Xin tư vấn cách chống ddos hiệu quả hơn |
02/06/2014 01:42:02 (+0700) | #12 | 280750 |
StarGhost
Elite Member
|
0 |
|
|
Joined: 29/03/2005 20:34:22
Messages: 662
Location: The Queen
Offline
|
|
Vẫn còn capture được HTTP header thì làm sao mà chả tốn tài nguyên. Tại sao phải tốn công xử lý các kết nối mà cuối cùng sẽ bị chặn? Còn việc lo chặn nhầm người sử dụng ư, vậy sự khác nhau giữa người dùng thực sự và kẻ tấn công là gì? |
|
Mind your thought. |
|
Users currently in here |
1 Anonymous
|
|
Powered by JForum - Extended by HVAOnline
hvaonline.net | hvaforum.net | hvazone.net | hvanews.net | vnhacker.org
1999 - 2013 ©
v2012|0504|218|
|
|