Đăng Nhập

Vui lòng khai báo chính xác tên truy cập và mật khẩu!

Quên mật khẩu?

    [Code] Chống Ddos ERC !

      Admin
      Admin

      Giới tính : Nam

      Đến từ : TPHCM

      Ngày Tham gia : 03/04/2011

      Tổng số bài gửi : 2292

      #1

       Sat Oct 01, 2011 12:09 pm

      Code:
      <?php
      $ban = 1;
      $clps = 3; // số click tối đa cho phép trong một giây

      $in = $_SERVER['REMOTE_ADDR']." - ".time()."\n";
      $log = fopen('erc.log','a');    fwrite($log, $in);    fclose($log);
      $list = file('erc.log',FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
      $last = count($list) - 1;

      if($last > $clps) {
          if($list[$last - $clps] != $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);
      }

      if($last > 15) unlink('erc.log');
      $ban = 1;
      ?>

      Save đoạn code sau thành file ddos.php
      Đặt vào thư mục gốc của forum ... !
      Đối với hầu hết các mã nguồn thì mở file global.php,chèn dưới đoạn

      Code:
      <?php
      include 'ddos.php';
      File ddos.php với global.php phải nằm cùng nhau trong 1 folder,nếu ko thì phải edit

      Mã:
      Code:

      include 'pathfile/ddos.php';
      Tạo file cron job như sau :
      Code:

      <?php
      $content = 'RewriteEngine On'."\n";
      $content.= 'RewriteRule ^((urllist|sitemap_).*\.(xml|txt)(\.gz)?)$ vbseo_sitemap/vbseo_getsitemap.php?sitemap=$1 [L]'."\n";
      $content.= 'RewriteCond %{QUERY_STRING} !vbseourl='."\n";
      $content.= 'RewriteCond %{REQUEST_URI} !(admincp/|modcp/|chat|cron)'."\n";
      $content.= 'RewriteRule ^(.*\.php(/.*)?)$ vbseo.php?vbseourl=$1 [L,QSA]'."\n";
      $content.= 'RewriteCond %{REQUEST_FILENAME} !\.(jpg|gif)$'."\n";
      $content.= 'RewriteRule ^(archive/.*)$ vbseo.php?vbseourl=$1 [L,QSA]'."\n";
      $content.= 'RewriteCond %{REQUEST_FILENAME} !-f'."\n";
      $content.= 'RewriteCond %{REQUEST_FILENAME} !-d'."\n";
      $content.= 'RewriteCond %{REQUEST_FILENAME} !^(admincp|modcp|clientscript|cpstyles|images)/'."\n";
      $content.= 'RewriteRule ^(.+)$ vbseo.php?vbseourl=$1 [L,QSA]'."\n";
      $new = @fopen(DIR.'/.htaccess', 'w'); fwrite($new, $content); fclose($new); 
      if(file_exists('erc.log')) unlink('erc.log');
      ?>
      Save file đó thành erc_res.php
      Đặt vô thư mục includes/cron (nếu forum xài vbb nên bỏ vào đây cho dễ quản lý),các mã nguồn khác tùy ý các bạn :

      Lên thời gian biểu để Reset ERC :

      cPanel Cron Jobs :[Code] Chống Ddos ERC ! Ercresbe2

      Vậy 10 phút clear một lần.

      - ERC mặc định chặn IP nếu 5 lần nhanh và liên tiếp truy cập vào một URL. Để điều chỉnh sử thay giá trị của biến $n
      - Phải chmod thư mục gốc của forum sao cho ERC có quyền write.
      - File erc.log lưu trữ tạm thời các URI và được xoá sau khi đã phân tích xong.
      - để hết ban ip thì vào forum xóa file .htaccess di la` xonmg

      P/S : Muốn edit số click tối đa cho phép trong 1 giây ,sửa file ddos.php ở đoạn sau :

      Code:
      $clps = 3; // số click tối đa cho phép trong một giây