Hi!
Allgemein sehe ich aber auch nirgends Lösungshinweise, sondern nur die reine Berichterstattung.
Es gibt aufgrund der Struktur des Internets keine "richtige" Lösung - wäre mir zumindest nicht bekannt.
Es gibt durchaus viele Informationen wie man die Auswirkungen von DoS Angriffen abmindern kann, z.B.
http://www.cert.org/tech_tips/denial_of_service.html http://www.dfn-cert.de/infoserv/dib/dib-2000-01.html ...
In der letzten iX gab es auch einen Artikel "Strategien gegen DDoS-Angriffe".
Worauf man achten sollte ist dass das System möglichst keine Fehler enthält, die einen DoS-Angriff erleichtern. Es gibt immer wieder Bugs im Kernel, in Webservern, in PHP, in allen möglichen Bibliotheken die es erlauben mit sehr viel weniger Aufwand das System zum Stillstand zu bekommen. Diese sollte man entsprechend also immer schnellst möglich beheben.
Je aufwändiger die "Aktion" ist, die ein Angreifer per Request auf dem Server auslöst, desto schneller ist das System am Ende. Z.B. hält ein Paketfilter der die Pakete des Angreifers direkt verwirft sehr viel mehr aus, als wenn die Requests z.B. auf sehr komplexe CGI-Scripte "durchkommen".
Auch kann man durch Konfiguration des Netzwerk-Stacks und des angegriffenen Dienstes die Folgen mindern, eben durch solche Sachen wie Timeouts herabsetzen, Begrenzungen für Anzahl Clients hochsetzen, SYN-Cookies... Man kann einige Pakete die auf dem Server eigentlich nicht vorkommen, und oft für irgendwelche Angriffe ausgenutzt werden in der Kernel-Konfiguration blocken, siehe z.B. http://www.gentoo.org/doc/de/gentoo-security.xml#doc_chap10 für ein paar Beispiele (das ist so oder so ein recht guter Artikel!).
Wie gesagt, einfache Angriffe von einer IP aus sind einfach per Paketfilter zu blocken, Angriffe über gespoofte IPs kann man AFAIR auch blocken.
Aber wie gesagt, diese Maßnahmen können alle lediglich die Auswirkungen mindern, wenn der Angreifer genügend Resourcen hat, kannst Du nichts dagegen machen. Ist allerdings fraglich ob Du so ein interessantes Ziel für solche Angriffe darstellst ;-)
Ach, so ein Angriff wie von Deinem Script lässt sich sehr leicht filtern ;-)
Also heißt das eine Firewall?
In dem Fall ja.
Nanu war ihr nicht immer die einhellige Meinung "man kennt doch seine laufenden Dienste auf der Maschine - warum ein Firewall".
Weil die meisten Leute denken, ein lokaler Paketfilter sei dazu da die Ports zu schließen die man nicht braucht, und die zu öffnen die man braucht. Dazu braucht man keinen Paketfilter. Das beste ist wenn der Provider schon in seinem Netz dafür sorgt dass Pakete des Angriffs erst gar nicht bis auf Deinen Server kommen, das ist aber nicht immer möglich. Zum Filtern sollte dann eine dedizierte Firewall zwischen Deinem Server und dem Internet dienen. Wenn man sowas nicht hat dann hilft auch noch der lokale Paketfilter, denn besser dieser filtert die Pakete des Angreifers, als dass der Apache sich so schnell verabschiedet wie Du es ja selber erlebt hast.
Auch die Dokumentation des apachen spricht sich in Hinblick auf den Nutzen für Keep-Alive und wegen alter druchgeschliffener C-Code gegen ein herabsetzen des Timeout aus.
Im Manual geht es ja auch nicht darum einen DoS abzuwehren!
Sind das alles nur auf der Watte -ein jeder benimmt sich so, wie der Zweck es vorhergesehen hat- gutgemeinte Ratschläge?
Nein, nur gelten bei der Abwehr von DoS andere Voraussetzungen als im Alltag.
Also bitte ich noch mals um Hilfe: Was an Sicherheit(ssoftware) braucht nun ein Server wirklich?
Der Server sollte halt gut gesichert sein (auf aktuellem Stand, sicher konfiguriert... der obige Gentoo-Artikel beschreibt da so einige Sachen), und wenn Du Dich dann gegen DoS-Angriffe wehren willst hast Du am besten eine Firewall zwischen Server und Internet, die es Dir erlaubt entsprechende Pakete zu filtern. Ich halte eine Firewall auch im Alltag für durchaus sinnvoll, z.B. um zu verhindern dass der Server Code nachläd wenn es einen Fehler in einem PHP-Script gibt... Zum Thema Firwall findest Du auch einen Abschnitt im oben verlinkten Gentoo Linux Sicherheitsleitfaden.
Grüße Andreas
SELFHTML Tipps & Tricks: http://aktuell.de.selfhtml.org/tippstricks/