Auto lock ip khi bị ddos & attacka

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

Auto lock ip khi bị ddos & attacka

Bài gửi  Admin on Sun Aug 19, 2012 7:09 pm

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

Tránh được DDos bằng tools còn botnet thì chịu nha

đầu tiền lưu nội dung sau lưu lại với tên banip.php

Mã:
Code:
<?php$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);}?>

vào file global.php nếu xài 4rum.
Cơ chế hoạt động
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.
Ví dụ : 113.22.70.69 - http://mydomain.com/4rum/index.php
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

Mã:
include 'banip.php';

Đoạn code tiếp theo

Mã:
Code:
if($last >1000) { $in = "Deny from all"."\n";

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
Code:

Mã:
Code:
<?php if(file_exists('.htaccess')) unlink('.htaccess'); if(file_exists('banip.log')) unlink('banip.log'); ?>

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 đóa.

Các bác test thử rùi cho ý kiến nha. Em test thấy good. dùng tool tự ddos site mình. ddos đc vài giây là bị lock ip .

. Nguồn Sưu Tầm...
avatar
Admin

Tổng số bài gửi : 1582
Tham gia ngày : 06/05/2012
Age : 20

Xem lý lịch thành viên http://taigame.forumvi.com

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


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