PDA

View Full Version : [PHP]BLoccare DDOs Attack


4ndr34s
12-12-2009, 15:49
E' possibile che uno script in php possa bloccare degli attacchi ddos su un sito?
questo è il codice:<?php

$crlf=chr(13).chr(10);
$itime=3; //Minimum number of seconds between one-visitor visits
$imaxvisit=10; //Maximum visits in $itime x $imaxvisits seconds
$ipenalty=($itime * $imaxvisit); //Minutes for waitting
$iplogdir="./logs/";
$iplogfile="http.txt";

// Time
$today = date("Y-m-j,G");
$min = date("i");
$sec = date("s");
$r = substr(date("i"),0,1);
$m = substr(date("i"),1,1);
$minute = 0;

$to = 'balblala@asd.asdt';
$headers = 'From : Someone Tryed To DDoS.' . "\r\n";
$subject = "Warning Of Possible DDoS Attack At $today:$min:$sec";


//Warning Messages:
$message2='Please Try Again Later ... ';
//---------------------- End of Initialization ---------------------------------------

//Get file time:
$ipfile=substr(md5($_SERVER["REMOTE_ADDR"]),-3); // -3 means 4096 possible files
$oldtime=0;
if (file_exists($iplogdir.$ipfile)) $oldtime=filemtime($iplogdir.$ipfile);

//Update times:
$time=time();
if ($oldtime<$time) $oldtime=$time;
$newtime=$oldtime+$itime;

// Check human or bot:
if ($newtime>=$time+$itime*$imaxvisit)
{
// To block visitor:
touch($iplogdir.$ipfile,$time+$itime*($imaxvisit-1)+$ipenalty);
header("HTTP/1.0 503 Service Temporarily Unavailable");
header("Connection: close");
header("Content-Type: text/html");
echo '<html><head><title>--------</title></head><body><p align="center"><strong>'
.$message1.'</strong>'.$br;
echo $message2.$message3.$message4.$message6.'</p></body></html>';
// Mailing Warning Message To Owner
{
//@mail($to, $subject, $message5, $headers); /
}
// logging:
$fp=@fopen($iplogdir.$iplogfile,"a");
if ($fp!==FALSE)
{
$useragent='<unknown user agent>';
if (isset($_SERVER["HTTP_USER_AGENT"])) $useragent=$_SERVER["HTTP_USER_AGENT"];
@fputs($fp,$_SERVER["REMOTE_ADDR"].' on '.date("D, d M Y, H:i:s").' as '.$useragent.$crlf);
}
@fclose($fp);
exit();
}

//Modify file time:
touch($iplogdir.$ipfile,$newtime);
?>

cionci
12-12-2009, 17:41
Non blocca i DDoS, ma i DoS. Al massimo può bloccare un DDoS se fatto con pochi host.

In pratica cerca di bloccare l'utilizzo del sito a chi richiede molto spesso pagine dal sito, tanto spesso da poter sovraccaricare il server web.
In ogni caso non risolve il problema, perché comunque il server web deve processare comunque la pagina php, certo con un carico meno elevato perché la complessità dello script è minore.

4ndr34s
12-12-2009, 18:57
mi sapresti dire su per giù la differenza tra Dos Attack e DDos?

cionci
12-12-2009, 19:03
Distributed Denial of Service

Un DDoS è un DoS causato da molti host contemporaneamente.

BlackAuron
12-12-2009, 19:29
Se davvero vuoi bloccare un DDOS, ti conviene mettere in preventivo un po' di smanettamento sulle iptables.
Quello script è solo una soluzione temporanea e poco efficace: se processare una tua pagina "classica" richiede al server uno sforzo di 10, mentre processare quella pagina richiede al server sforzo 1, all'attaccante basta decuplicare la mole di richieste per ottenere il medesimo effetto.

4ndr34s
14-12-2009, 18:32
Sapreste dirmi se c'è un metodo efficace per bloccare questi attacchi?
Non ho ben capito ciò che ha detto BlackAuron

cionci
14-12-2009, 19:12
In pratica ti sta dicendo che per bloccare in maniera efficace un DDoS bisogna agire a livello di routing e firewall, quindi bisogna avere accesso alla rete del server.

4ndr34s
14-12-2009, 19:18
ciò si potrebbe fare con quale firewall?

cionci
14-12-2009, 19:22
ciò si potrebbe fare con quale firewall?
Col firewall del server web.

4ndr34s
14-12-2009, 19:59
ci sono delle regole precise da impostare?