-‘๑’- [T]een [S]anh [D]ieu -‘๑’-
Chào mừng bạn đến với -‘๑’- [T]een [S]anh [D]ieu -‘๑’- all connect - kết nối không giới hạn.
» Nếu đây là lần đầu tiên bạn tham gia diễn đàn, xin mời bạn xem phần hỏi/đáp để biết cách dùng diễn đàn.
» Để có thể tham gia thảo luận, các bạn phải đăng ký làm thành viên, click vào đây để đăng ký.



Join the forum, it's quick and easy

-‘๑’- [T]een [S]anh [D]ieu -‘๑’-
Chào mừng bạn đến với -‘๑’- [T]een [S]anh [D]ieu -‘๑’- all connect - kết nối không giới hạn.
» Nếu đây là lần đầu tiên bạn tham gia diễn đàn, xin mời bạn xem phần hỏi/đáp để biết cách dùng diễn đàn.
» Để có thể tham gia thảo luận, các bạn phải đăng ký làm thành viên, click vào đây để đăng ký.

-‘๑’- [T]een [S]anh [D]ieu -‘๑’-
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Code tự động lock ip khi bị ddos attack

Go down

Code tự động lock ip khi bị ddos attack Empty Code tự động lock ip khi bị ddos attack

Bài gửi by Admin Wed Dec 02, 2009 11:06 pm

Code này mình tìm trên mạng và edit lại đôi chút. Hum nay post chia sẻ cho anh em. Có gì sai sót đừng chém em nhá



Code:
$n = 5; // Chặn ip nếu 5 lần nhanh và liên tiếp truy cập vào 1 URL
$ban = strpos($_SERVER['REQUEST_URI'], "vbshout.php")?0:1;
$in = "\n".$_SERVER['REMOTE_ADDR']." - ".$_SERVER['REQUEST_URI'];
$log = fopen('banip.log','a'); fwrite($log, $in); fclose($log);
$list = file('banip.log',FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$last = count($list) - 1;
if($last >1000) { $in = "Deny from all"."\n";
$lock = fopen('.htaccess','a'); fwrite($lock, $in); fclose($lock); }
elseif($last > $n) { for($i = 1; $i < $n; $i++) if($list[$last - $i] != $list[$last]) $ban = 0;
} else { $ban = 0; }
if($ban) { $in = "Deny from ".$_SERVER['REMOTE_ADDR']."\n";
$lock = fopen('.htaccess','a'); fwrite($lock, $in); fclose($lock);}
?>


Các bạn save đoạn code trên lại thành banip.php. Sau đó up lên thư mục gốc của site.
Sau đó thêm dòng include 'banip.php';


vào file global.php nếu xài 4rum.

Khi 1 ip gửi 1 request tới site của bạn. code sẽ tạo ra 1 file log ghi lại ip đó, và url mà ip đó truy cập.


nếu ip 113.22.70.69 truy cập nhanh và liên tiếp 5 lần vào cùng 1 url
như trên thì code sẽ lock ip 113.22.70.69 bằng cách tạo ra 1 file
htaccess và ghi lệnh deny from 113.22.70.69

Đoạn code tiếp theo




Khi 1 ip truy cập vào site. code sẽ ghi ip đó vào 1 dòng
Sau đó sẽ đếm tổng số dòng trong file log. nếu lớn hơn 1000 dòng trong
1 thời gian nhất định (Dấu hiệu bị tấn công bonet) thì sẽ ghi vào file
htaccess lệnh deny from all
Các bạn có thể lập lịch xoá file htaccess và file log theo 1 thời gian quy định bằng cron job trong cpanel của host






Save đoạn code sau lại thành reset.php và up lên thư mục gốc. sau đó
xài cron job để thực thi file reset.php theo 1 thời gian nhất định. Ví
dụ 10 phút xoá file htaccess và file log 1 lần.

Code này chống ddos khá hiệu quả. nhưng với botnet thì thua vì khi có
lệnh deny from all mặc dù apache sẽ ko kết nối đến cơ sở dữ liệu nhưng
apache vẫn trả lời các request. . đó là trả về lỗi 403.
Khi apache phải trả lời hàng trăm ngàn reqest như thế các bạn biết điều gì sẽ xảy ra rùi đó
Admin
Admin
-‘๑’-[T]hành [V]iên -‘๑’-
-‘๑’-[T]hành [V]iên -‘๑’-

Tổng số bài gửi Tổng số bài gửi : 23
Join date Join date : 24/11/2009
Tuổi Tuổi : 35
Đến từ Đến từ : HN

Về Đầu Trang Go down

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết