NetVision-Technik

NetVision-Technik (http://www.netvision-technik.de/forum/index.php)
-   Security (http://www.netvision-technik.de/forum/forumdisplay.php?f=32)
-   -   Anti DDos Elite (http://www.netvision-technik.de/forum/showthread.php?t=219)

TrackerPolizei 17.03.2008 08:35

Anti DDos Elite
 
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 :

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

<?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 " :

PHP-Code:

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

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

<?php 
$load 
system("uptime"); 
?>

und hier die ddosadmin.php :

PHP-Code:

<?
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 09:32

aber das
PHP-Code:

if (get_user_class() <= UC_SYSOP)
mysql_query("TRUNCATE TABLE `antiddos`"); 

würde ich eher so lösen
PHP-Code:

if (get_user_class() == UC_SYSOP)
mysql_query("TRUNCATE TABLE `antiddos`"); 


TrackerPolizei 17.03.2008 09:38

hab es mal so abgeändert

Pr1me 17.03.2008 10:32

die connect.php

Code:

include("include/connect.php");

aus der logip.php fehlt die zufällig? :)

Cerberus 17.03.2008 10:38

hmm -- scheint so -- vergessen :)
wird er sicher noch Nachliefern :)

TrackerPolizei 17.03.2008 10:50

....
 
ups sorry habs mal oben mit rein gemacht

Pr1me 17.03.2008 11:10

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

gotthummer 17.03.2008 11:59

Die turncate.php würd ich so machen dann sind keine unnötigen sachen drin

PHP-Code:

<?
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 12: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 12: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 13:52

das währen doch Sachen für die Version 2.0 ...

TrackerPolizei 17.03.2008 14:42

..
 
hab sogar gerade ein bissle versucht zwecks install script poste es gleich mal

GlasFist 01.05.2008 11: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 16:27

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

Cerberus 01.05.2008 16:36

leichtes Cache-Problem :)

Stifler 17.04.2011 07:00

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

BiGPoWeR 17.04.2011 13: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-Code:

<?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

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

Lex 17.04.2011 15: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 16:25

Zitat:

Zitat von BiGPoWeR (Beitrag 68617)
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.


Zitat:

Zitat von Lex (Beitrag 68621)
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 17.04.2011 23: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 22: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 18.04.2011 23:20

Zitat:

Zitat von pullermann (Beitrag 68649)
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 18.04.2011 23:24

ein starker server ist natürlich immer gut da gebe ich dir auch recht

D@rk-€vil™ 19.04.2011 04:13

Macht euch doch ma nach IpCop oder D-Guard schlau^^

D-Guard

IpCop

bastelfreak 27.04.2011 10:04

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:29 Uhr.

Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.