PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anti DDos Elite


TrackerPolizei
17.03.2008, 09:35
Mit diesem Script könnt Ihr Euren Tracker Sicher machen ....

Wenn Ihr DDos Attacken bekommt Crasht der Server nicht mehr und fährt in U-Boot Modus und zeigt dann eine Meldung das der Server unter DDos Attacke ist und die IP geloggt wird.
" WAS ES AUCH WIRD "

Wenn die DDos Attacke dann vorbei ist geht der Tracker dann wieder und Ihr könnt die IP´s Bannen

Ist noch eine Beta... werde es noch so machen das der Anbieter des Angreifers ABUSE MAILS bekommt und der Angreifer sofort per IP gebannt wird ...
Was jetzt erst manuel geht !!!

Erstellt einen SQL Table :

CREATE TABLE `antiddos` (
`ips` char(255) NOT NULL default '',
`load` int(2) default '0',
KEY `ips` (`ips`)
) TYPE=MyISAM;dann erstellt euch eine " logip.php " :

<?php
include("include/connect.php");
$load = file_get_contents("".$url."");
preg_match("/averages?: ([0-9\.]+),[\s]+([0-9\.]+),[\s]+([0-9\.]+)/",$load,$avgs);
$current=$avgs[1];
//echo $current;
if($current >20)
{
include("include/connect.php");
$ip = getip();
mysql_query("INSERT INTO `antiddos` (`ips`,`load`) VALUES ('$ip','$current')") or sqlerr(__FILE__, __LINE__);
echo "Der Server Load ist zu hoch, wir stehen unter einer DoS attacke. AllE IP AKTIVIT. WERDEN IN DIESER ZEIT GELOGGT";
exit;
}
else{
echo "";
}
?>und eine " turncate.php " :

<?
require "include/bittorrent.php";
dbconn(false);
loggedinorreturn();
if (get_user_class() < UC_SYSOP)
stderr("Error", "Permission denied.");
{

}
if (get_user_class() == UC_SYSOP)
mysql_query("TRUNCATE TABLE `antiddos`");
?>
<?
stderr("Clean Database", "Database Cleared!");
?>*edit* die vergessene connect.php

<?php
mysql_connect("localhost","DATABASE_USER","DB_PASS"); // Edit this line to match your SQL Login
mysql_select_db("DB_DATABASE"); // this too.
$url = "http://www.Your-URL.com/tb/server_info.php"; // edit this to your the full file path of server_info.php
?>ihr müsst noch Datenbankname und Passwort sowie die anderen angeben anpassen

und ladet es in den include ordner rein

die " server_info.php "

<?php
$load = system("uptime");
?>und hier die ddosadmin.php :

<?
require "include/bittorrent.php";
dbconn(false);
loggedinorreturn();
if (get_user_class() < UC_SYSOP)
stderr("Sorry", "Access Denied");
stdhead("ERROR");
?>
<p align="center"><a href="turncate.php">Clear Database</a><br />
<em>Its HIGHLY recomended that you clear the database on a daily basis. </em></p>
<div align="center">
<table width="622" border="1">
<tr>
<td width="571"><div align="center" class="style1">Anti-DDoS Elite</div></td>
</tr>
</table>
<table width="622" border="1">
<tr>
<td width="571"><div align="center">IP Address</div></td>
<td width="571"><div align="center">Number Times accessed</div></td>
</tr>
<?php
include("include/connect.php");
$result = mysql_query("SELECT ips, COUNT(ips) AS NumOccurrences FROM antiddos GROUP BY ips HAVING ( COUNT(ips) > 1 ) order by NumOccurrences desc");
while($r=mysql_fetch_array($result))
{
$ips=$r["ips"];
$NumOccurrences=$r["NumOccurrences"];
echo "<tr><td>$ips</td><td>[$NumOccurrences]</td></tr>";
}
?>
</table>
</div>
<?
stdfoot();
?>

Cerberus
17.03.2008, 10:32
aber das
if (get_user_class() <= UC_SYSOP)
mysql_query("TRUNCATE TABLE `antiddos`");
würde ich eher so lösen
if (get_user_class() == UC_SYSOP)
mysql_query("TRUNCATE TABLE `antiddos`");

TrackerPolizei
17.03.2008, 10:38
hab es mal so abgeändert

Pr1me
17.03.2008, 11:32
die connect.php

include("include/connect.php");
aus der logip.php fehlt die zufällig? :)

Cerberus
17.03.2008, 11:38
hmm -- scheint so -- vergessen :)
wird er sicher noch Nachliefern :)

TrackerPolizei
17.03.2008, 11:50
ups sorry habs mal oben mit rein gemacht

Pr1me
17.03.2008, 12:10
danke dir :), die server_info.php könntest du die bitte auch noch nachreichen :)

gotthummer
17.03.2008, 12:59
Die turncate.php würd ich so machen dann sind keine unnötigen sachen drin

<?
require "include/bittorrent.php";
dbconn(false);
loggedinorreturn();
if (get_user_class() < UC_SYSOP)
stderr("Error", "Permission denied.");

mysql_query("TRUNCATE TABLE `antiddos`");
stderr("Clean Database", "Database Cleared!");
?>

TrackerPolizei
17.03.2008, 13:10
kannst es ja mal umschreiben wie du es machen würdest

... ist ja auch erstmal nen ansatz von der ganzen sache

gotthummer
17.03.2008, 13:14
Ist sonst eigentlich soweit ganz ok würd vielleicht noch die turncate.php weglassen und mit in die ddosadmin.php einbaun genau wie die server_info.php aber sonst seh ich so auf anhieb nix was mann ändern/verbessern könnte

EDIT: vielleicht noch die connect.php weglassen und das mit in die logip.php einarbeiten aber ansonsten ist das so schon ganz gut und ne feine sache

Cerberus
17.03.2008, 14:52
das währen doch Sachen für die Version 2.0 ...

TrackerPolizei
17.03.2008, 15:42
hab sogar gerade ein bissle versucht zwecks install script poste es gleich mal

GlasFist
01.05.2008, 12:26
so ich hab mir das nun auch mal angeguckt.

ich kann nur sagen: MÜLL (ausser wenn dann irgentwann abuses rausgehen)

weil 1. wie soll man die IPs denn bannen ? ob man nun bei 100000 Requests an port 80 100000 mal den tracker aufgerufen bekommt oder 100000 mal ne fehlermeldung ist völlig wurscht. last entsteht trotzdem.

2. werden die IPs garnicht gebannt
3. ich finde punkt 1 reicht schon.


mfg

HaBe
01.05.2008, 17:27
die ips müssten direkt in der hw-firewall geblockt werden, um halbwegs effektiv zu schützen...

Cerberus
01.05.2008, 17:36
leichtes Cache-Problem :)

Stifler
17.04.2011, 08:00
Das Teil kann auch gelöscht oder in den Bereich, UNNÖTIG - BENUTZEN AUF EIGENE GEFAHR verschoben werden

BiGPoWeR
17.04.2011, 14:39
Ich wüsste sowieso nicht, wozu man so etwas braucht?
Bei einem richtigen DDoS wird der Server nicht nur von einigen IPs angegriffen, sondern von Millionen verschiedenen IPs. ;)
Da wird dir dann dein Script abrauchen, weil soviel kann der gar nicht in die Datenbank schreiben. :D

Für alle die trotzdem sowas verwenden wollen:

<?php
$deny = array("111.111.111", "222.222.222", "333.333.333");
if (in_array ($_SERVER['REMOTE_ADDR'], $deny)) {
header("location: http://www.google.com/");
exit();
}
?>How to Block IP Addresses with PHP (http://perishablepress.com/press/2007/07/03/how-to-block-ip-addresses-with-php/)

Daraus sollte sich was schönes basteln lassen, sonst gibt es, meine ich, auch genug Scripts für Apache oder lighttpd!#

PS: Flood Protection System (http://www.netvision-technik.de/forum/showthread.php?t=6206)

Lex
17.04.2011, 16:34
Richtig sinnvoll wäre ja eig nur ein Script das die IP´s in die iptables von linux schreibt.


Lg Lex

bl0bb
17.04.2011, 17:25
Bei einem richtigen DDoS wird der Server nicht nur von einigen IPs angegriffen, sondern von Millionen verschiedenen IPs. ;)
Da wird dir dann dein Script abrauchen, weil soviel kann der gar nicht in die Datenbank schreiben. :D

Na das halte ich für ein Gerücht, wenn einem so ein Netz zur Verfügung stehen würde, könnte man viele andere hübsche Dinge damit anstellen *fg*

In der Regel ist es ein Cluster aus maximal 100 Servern, obwohl 5-10 realistischer ist, zumindest bei kleineren/mittelgroßen Seiten. Bei den meißten Trackern jedoch reicht schon DSL 1000 zu :P Und die paar Server schicken dann eine entsprechend hohe Anzahl von Requests/Sekunde, und das können unter Umständen auch ein paar Millionen mit ein paar 100MBit sein.


Richtig sinnvoll wäre ja eig nur ein Script das die IP´s in die iptables von linux schreibt.

Jop, allerdings kein PHP Skript. Das wäre als wenn man Wasser auf brennendes Öl schüttet.
Es gibt genug fertige Firewallskripte, Servererweiterungen (mod_evasive), Third-Party-Tools (fail2ban) und und und... Da muss man als Serverbetreiber eigentlich nur noch suchen und sich nicht selber was aus den Fingern ziehen ;)

SP4C3
18.04.2011, 00:09
Wollt grad sagen, mein mod_evasive how2 fliegt hier irgendwo rum, und macht genau das...

Im Prinzip ist der Hack gegen einzelne Angreifer(sprich einzelne Rechner die flooden), garnicht verkehrt. Bei einem richtigen (D)DoS ist es jedoch eher schlecht als gut... Das gilt allerdings für alle Lösungen die unterhalbt des Webservers ansetzen (CGI,PHP etc.), da zu dem Zeitpunkt die Verbindung schon akzeptiert ist.

Ansonsten würd ich für sowas eher einen Ansatz über flat-files bzw. memcached gehen...


Stifler, Bl0bb ich wär mal für nen "security laberthread", da kann man sowas besser diskutieren, da Off-Topic hier sehr ungern gesehen ist...

pullermann
18.04.2011, 23:55
Da könnt ihr fummeln und diskutieren wie ihr wollt !
Softwaremäßig gibt es keinen guten schutz abhilfe schafft nur eine hardwarefirewall und die ist teuer

SP4C3
19.04.2011, 00:20
Da könnt ihr fummeln und diskutieren wie ihr wollt !
Softwaremäßig gibt es keinen guten schutz abhilfe schafft nur eine hardwarefirewall und die ist teuer

Das stimmt so nicht.

Die Allzweckwaffe gegen (D)DoS Attacken sind genug Resourcen(Bandbreite und Rechenleistung).
Wenn ich mehr Bandbreite auf Angriffsseite habe als du, dann hilft dir ne Hardwarefirewall wenig.

Man kann nur versuchen die Schäden einzudämmen und die Angriffsfläche zu verringern...

pullermann
19.04.2011, 00:24
ein starker server ist natürlich immer gut da gebe ich dir auch recht

D@rk-€vil™
19.04.2011, 05:13
Macht euch doch ma nach IpCop oder D-Guard schlau^^

D-Guard (http://www.d-guard.com/)

IpCop (http://www.ipcop.org/)

bastelfreak
27.04.2011, 11:04
Das IPCop Team kommt mit dem entwickeln überhaupt nicht aus dem Quark, für kleine Heimnetze emfpehle ich ipfire, ansonsten astaro.