Đầu tiên nói trước đây chỉ là code hạn chế mức độ của DDOS và ngăn chặn các cuộc tấn công DDOS thông thường mà thôi.

Giới thiệu:
Code này dựa trên phương thức đếm số Request trong 1 khoảng thời gian nhất định do Admin chỉnh. Nếu SỐ Request vượt mức cho phép sẽ khóa truy cập từ IP đó trong 1 khoảng thời gian xác định tùy theo mức độ (Về mức độ mình sẽ nói tiếp phần sau)

Nếu IP đó có quá nhiều lần có tổng request trong thời gian quy định vượt mức cho phép thì ta sẽ dùng file htaccess khóa vĩnh viễn sự truy cập từ IP đó. Tức là hostcủa mình sẽ ko chấp nhận bất kì 1 request nào nữa ngoài việc đưa ra thông báo 403 Forbiden

Hướng dẫn và ví dụ:


Down file đính kèm về và giải nén các bạn sẽ dc các file sau:
laivt_firewall.php
laivt_firewall_conf.php
laivt_firewall_unlock.php
laivt_firewall_install.php
laivt_firewall_uninstall.php
.htaccess
Và các thư mục sau:
laivt_firewall

Các bạn mở file laivt_firewall_conf.php lên để cấu hình Firewall

PHP Code:
//--Cau hinh firewall--//
$laivt_fw_conf['max_lockcount']=10;//So lan toi da phat hien dau hieu DDOS va khoa IP do vinh vien
$laivt_fw_conf['max_connect']=15;//So ket noi toi da dc gioi han boi $laivt_fw_conf['time_limit']
$laivt_fw_conf['time_limit']=3;//Thoi gian dc thuc hien toi da $laivt_fw_conf['max_connect'] ket noi
$laivt_fw_conf['time_wait']=20;//Thoi gian cho de dc mo khoa khi IP bi khoa tam thoi
$laivt_fw_conf['email_admin']='admin@sinhvienit.net';//Email lien lac voi Admin
$laivt_fw_conf['htaccess']="../.htaccess";//Duong dan toi file htaccess tren server
//--Ket thuc cau hinh Firewall--//

SAu khi cấu hình xong, các bạn upload 3 file/thư mục sau.
laivt_firewall.php
laivt_firewall_conf.php
laivt_firewall_unlock.php
Thư mục laivt_firewall
Lên ngang hàng với file index.php của code bạn đang dùng.
Upxong thì chmod 777 cho thư mục laivt_firewall và chmod 404 cho file .htaccess trong thư mục này

Tiếp theo, đối với code vBulletin thì các bạn mở file global lên:
Chèn code sau vào dưới dấu

PHP Code:
<?php
PHP Code:
if (file_exists("laivt_firewall.php"))
include_once "laivt_firewall.php";

Nếu Xtremedia thì bạn làm tương tự với file config.php
Nếu là IPB thì các bạn mở file common.php
chèn vào bên dưới đoạn này:

PHP Code:
if ( !defined('IN_PHPBB') )
{
die("Hacking attempt");
}

Tiếp theo bạn upload file .htaccess lên thư mục gốc của site: thường là public_html đối với Cpanel, Plesk, DirectAdmin và là htdocs đối với vistapanel và chmod 666 cho nó.
Với cấu hình như trên thì nếu IP 123.456.789.159 chẳng hạn,
+ Có Số request trong vòng 3 giây vượt quá 15 thì sẽ bị khóa IP tạm thời lần thứ nhất trong vòng 20 giây.
Demo ảnh (Demo ảnh ko phải 20s vì ảnh chụo mình còniigg cao hơn):

+ Sau 20 giây này IP này sẽ dc mở khóa và trang người dùng request sẽ dc tự động reload lại mà người truy cập ko phải bấm vào bất kì link nào cả.

+ Nhưng sau khi đc mở khóa IP này lại có Số request trong vòng 3 giây vượt quá 15 thì sẽ bị khóa IP tạm thời lần thứ hai trong vòng 40 giây.

Nếu sự vi phạm cứ lặp lại như vậy thì số thời gian khóa tạm thời sẽ tăng lên theo cấp số nhân của 20 giây. Và nếu sự lặp lại vi phạm này đạt tới lần thứ 10 thì IP này sẽ bị khóa vĩnh viễn và ko thẻ truy cập đc nữa ngoài việc nhìn thấy thông báo sau vào lần bị khóa cuối cùng:

Và từ đó trở đi thì nếu IP này còn request sẽ chỉ nhận dc thông báo sau :

Còn việc tự động mở khóa cho IP bị khóa vình viễn sau 24h thì các bạn dùng Cron Job chạy file laivt_firewall_unlock.php định kì sau 24h là đc, Nếu dùng VBB các bạn có thể upload file laivt_firewall_install.php lên ngang hàng file index.php và chạy nó thay thế cho việc setup thủ công bằng tay.

download code: http://sinhvienit.net/@forum/threads/11690-laivt-firewall-1-1-code-antiddos-cho-moi-code-php-by-sinhvienit-net/

Nếu Firewall ko hoạt động các bạn thử offsafe mode của host đi nha. Khi sử dụng nếu thấy lỗi thì post lên đây mọi người cùng khắc phục
Lưu ý: TRong config thì

PHP Code:
$laivt_fw_conf['htaccess']="../.htaccess";//Duong dan toi file htaccess tren server

Là đường dẫn tới file .htaccess màu đỏ