Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Off Topic ›

Angriffe auf Drupal Website

Eingetragen von SWMH (7)
am 29.09.2009 - 13:11 Uhr in
  • Off Topic
  • Drupal 5.x oder neuer

Hallo,

ich hatte in letzter Zeit jetzt schon mehrmals das Problem, dass meine Drupal Website wohl mutwillig angegriffen wird (?? bzw. das da irgendein wild gewordener Robot drüberrennt ??). Da dies jedes Mal meinen kompletten Server lahmlegt, suche ich nun eine Möglichkeit, wie ich das Problem in den Griff bekommen kann. Zuerst mal ein paar Infos:

Website:
Jobbörse mit ca. 70.000 Jobs. Läuft unter Drupal 5. Die Jobs (Nodes mit CCK erweitert) werden über Views aufgelistet (jeweils 25 pro Seite, präsentiert als Teaser). Von der Performance her sind diese Job-auflistenden Views die Schwachstelle meines Systems (bezüglich Anzahl der Datenbankabfragen und Ladezeit). Im normalen Betrieb (ca. 500 – 1000 Besucher pro Tag) gibt es keine Probleme, durchaus aber bei mehreren 100 Anfragen pro Sekunde. Genau auf diese Job-auflistenden Views zielt immer der externe Angriff.

Der Angriff:
Zur exakt gleichen Zeit werden ca. 100 – 150 Verbindungen auf verschiedene Unterseiten meiner Job-auflistenden Views aufgebaut (jede Verbindung ruft eine andere Unterseite auf). Jede Sekunde werden dann neue 100 – 150 Verbindungen aufgebaut. Der Angriff dauert ca. 2 – 10 Minuten.
Der Angriff läuft über mehrere unterschiedliche IPs, wobei jede IP ca. 10 – 20 Verbindungen pro Sekunde aufbaut. Die IPs, die ich überprüft habe, liegen wohl alle auf dedicated.hosteurope.de – Systemen.
Obwohl es unterschiedliche IPs sind, haben alle die gleiche Betriebssystem / Browser Kennzeichnung:
"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1"

Was passiert auf meinem Server:
- max. Anzahl an Apache Servern laufend
- Alle möglichen MySQL Verbindungen (max. 200) werden ausgenutzt
- Warnung: [error] server reached MaxClients setting, consider raising the MaxClients setting
- Mehrmalige Warnung: [notice] child pid XXXXX exit signal Segmentation fault (11)
- Server Load steigt von üblichen 0,2 – 0,5 auf 100 – 200
- Sehr hohe CPU IOWait Werte
- Server unerreichbar, komme selbst über SSH nur ganz schwer drauf

Die große Frage nun:
Was kann man machen um solche Angriffe (sofern es einer war) automatisch abzuwehren?
Gibt es eine Möglichkeit, die Anzahl der ausgelieferten Drupal Views oder die Anzahl der Datenbankverbindungen für Views zu limitieren?
Ist übrigens ein eigener Rootserver, kann also am System beliebige Änderungen durchführen.

Was ich schon gemacht habe:
- Generelle Einstellungen Apache2: KeepAliveTimeout sehr niedrig gesetzt.
- IPTables recent: Clients sperren, die pro 30 Sekunden mehr als 25 Zugriffe haben (bringt wenig, weil die Angreifer ja über mehrere IPs agieren, außerdem kann dies Besucher sperren, die über große Proxys ins Internet gehen)
- Generelle Server Absicherung: mod_security2, Suhosin für PHP
- Server Debian 4 auf dem aktuellsten Stand
- Drupal 5 und alle Module auf dem neuesten Stand

‹ up-to-date comparisons DVD ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Schon einen Abuse Report an

Eingetragen von Alexander Langer (3416)
am 29.09.2009 - 13:58 Uhr

Schon einen Abuse Report an Hosteurope geschickt?

--
mortendk: everytime you use contemplate... Thor is striking down from above with his mighty hammer - crushing and killing a kitten!

webseiter.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

Cache

Eingetragen von stBorchert (6003)
am 29.09.2009 - 14:03 Uhr

Moin.
Wir haben das Thema gerade mal kurz im IRC diskutiert: wie siehts denn bei Dir mit Caching aus? Das sind doch alles nicht angemeldete Benutzer, also sollte da eigentlich die komplette Seite zu cachen sein. Notfalls noch XCache oder MemCache dahintergepackt und schon sollte der Server spürbar weniger zu tun haben.

Nichtsdestotrotz würde ich auch den von Alex vorgschlagenen Report bei HostEurope machen.

hth,

 Stefan

--
sei nett zu Deinem Themer

  • Anmelden oder Registrieren um Kommentare zu schreiben

@ Alexander Langer Habe ich

Eingetragen von SWMH (7)
am 29.09.2009 - 14:35 Uhr

@ Alexander Langer

Habe ich noch nicht gemacht. Werde es gleich mal machen.
Seit einer Woche waren das jetzt 3 Angriffe.

  • Anmelden oder Registrieren um Kommentare zu schreiben

@ stBorchert Der Angriff

Eingetragen von SWMH (7)
am 29.09.2009 - 14:41 Uhr

@ stBorchert

Der Angriff läuft über die Gast-Ebene von Drupal.

Aktuelle Caching - Funktionen:
Bei Drupal ist aktiviert:
- Caching-Modus: Normal

Auf dem Debian-System läuft:
- APC Alternative PHP Cache
- MySQl query_cache

Werde mir die anderen vorgeschlagenen Sachen mal anschauen.

Wie gesagt im normalen Zustand läuft alles super und sehr performant. Nur bei den extremen Zugriffszahlen wärhend des Angriffs wirds eng...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Views-Cache

Eingetragen von stBorchert (6003)
am 29.09.2009 - 14:43 Uhr

Ich weiss jetzt nicht genau, wie das bei D5 und Views1.x aussah, meine jedoch, dass es auch dort schon die Möglichkeit gab, die Ergebnisse des Views zu chachen.
Somit wären zumindest die "grossen" SQL-Abfragen ein wenig entschärft.

hth,

 Stefan

--
sei nett zu Deinem Themer

  • Anmelden oder Registrieren um Kommentare zu schreiben

Daran habe ich auch schon

Eingetragen von SWMH (7)
am 29.09.2009 - 15:02 Uhr

Daran habe ich auch schon gedacht. Bei Views2 gibt es auf jeden Fall einen Cache, bei Views1 habe ich das bisher allerdings noch nicht gesehen. Ich werde mal danach suchen (oder das für Ende Oktober geplanten Update auf Drupal 6 etwas vorziehen).

Ansonsten schaut auch memcached noch sehr interessant aus.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ups, sorry für die doppelte

Eingetragen von SWMH (7)
am 29.09.2009 - 15:11 Uhr

Ups, sorry für die vorherstehende doppelte Antwort.

Komischerweise war Drupalcenter gerade beim Schreiben meiner Antwort (genau wie einer meiner anderen Server bei Hetzner) für einige Sekunden nicht erreichbar.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn, wie du schreibst, jede

Eingetragen von Alexander Langer (3416)
am 29.09.2009 - 15:34 Uhr

Wenn, wie du schreibst, jede von einer einzelnen IP pro Angriff und Sekunde 10-20 Verbindungen aufgebaut werden und noch dazu der User Agent stets gleich ist, kann man mit verschiedenen Mitteln den Angreifer detektieren und aussperren.

Es gibt z.B. mod_evasive, ich weiß aber nicht, ob das auch in aktuellen Apache Versionen läuft, das DDOS Deflate Script, etc. Man kann sich auch was selbst stricken mit etwas Geskripte und fail2ban und / oder mod_security2.

Im Grunde muss man nur das Log autom. überwachen lassen (macht z.B. fail2ban) und wenn im Zeitraum x von einer einzelnen IP y Verbindungen aufgemacht werden wird autom. über die Firewall die IP für einen Zeitraum z gesperrt. So lange ist dann Ruhe und irgendwann kapiert auch der dümmste Bot, dass kein Anschluss unter dieser Nummer ist.
Das ist eingentlich schon das komplette Grundprinzip von fail2ban, nur die entsprechende Regel muss man sich einmal selbst schreiben.

--
mortendk: everytime you use contemplate... Thor is striking down from above with his mighty hammer - crushing and killing a kitten!

webseiter.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

SWMH schrieb Ups, sorry

Eingetragen von Alexander Langer (3416)
am 29.09.2009 - 15:36 Uhr
SWMH schrieb

Ups, sorry für die vorherstehende doppelte Antwort.

Komischerweise war Drupalcenter gerade beim Schreiben meiner Antwort (genau wie einer meiner anderen Server bei Hetzner) für einige Sekunden nicht erreichbar.

Ja, war ein kurzer Ausfall, entweder intern im Routing, oder seitens T-Com...

--
mortendk: everytime you use contemplate... Thor is striking down from above with his mighty hammer - crushing and killing a kitten!

webseiter.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke für die Tipps.

Eingetragen von SWMH (7)
am 29.09.2009 - 21:03 Uhr

Danke für die Tipps. Momentan herrscht schon seit Stunden wieder Ruhe und meine Websites laufen normal. Einen akuten Notfallbedarf gibt es also momentan nicht mehr.

Für die Zukunft werde ich in den nächsten Tagen wohl noch etwas an der Performance optimieren (bessere Cache Lösung) und eine der oben genannten Log-basierten Sperren einbauen.

Hosteurope.de hat auch schon geantwortet und will sich die entsprechenden Server mal genauer anschauen ...
Erreichbar sind diese übrigens nicht mehr ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 4 Tagen
  • Hey danke
    vor 1 Woche 5 Tagen
  • Update: jetzt gibt's ein
    vor 1 Woche 6 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 3 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 3 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 1 Tag
  • In der entsprechenden View
    vor 3 Wochen 1 Tag
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 1 Tag
  • gelöst
    vor 5 Wochen 4 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20451

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 26 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association