banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Messages posted by: meomeo1133  XML
Profile for meomeo1133 Messages posted by meomeo1133 [ number of posts not being displayed on this page: 0 ]
 
Chặn hơn cả tháng mà tụi nó vẫn gửi request liên tục smilie
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.... smilie

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 ạ? smilie
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... smilie
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ỉ???

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... smilie
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...
Hic, dạo này diễn đàn sao ít người tư vấn dùm quá... smilie

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ổ... smilie

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... smilie
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 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 IPsmilieDOS "@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. smilie

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.
 

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|