Re: Memory Problem ?

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Wed, 14 Apr 2004 15:47:52 +0200 (CEST)

Hannes Widmer <h.widmer(at)cybernet.ch> wrote:
> Ich leg meine hand ins feuer dass mein provider nichts
> gebastelt hat (ist meine ex bude) und ich auch ganz
> sicher nicht.

Der Kernel saugt sich solche Meldungen aber nicht aus den
Fingern. Da muß was gewesen sein.

> Ich hab ne Bridge als Firewall, könnte
> das was damit zu tun haben?...

Schwer zu sagen; bei sowas ist eine Ferndiagnose per Mail
sehr schwierig, ohne selbst das betroffene System unter-
suchen zu können.

Fakt ist jedenfalls, daß eine Bridge _kein_ Router ist und
daher zwei Netze nicht trennt, sondern sie verbindet.

> Eine Attacke könnte es
> ja nicht sein da dieser nicht im gleichen netz ist,
> oder?....

Kannst Du ausschließen, daß ein Angriff aus dem gleichen
Netz kam? Kannst Du überhaupt ausschließen, daß Dein
Rechner selbst nicht bereits gehackt wurde? In dem Fall
wären diese ganzen Überlegungen eh Makulatur. Und wenn
Du bisher eine hinreichend alte Version von Apache (und
wer weiß, von was noch) hattest, ist das durchaus im Be-
reich des Möglichen.

Ich will Dir aber keine Angst machen. Ist alles nur Spe-
kulation. :-)

(PS: Bitte beim Quoten von E-Mails eine "Attribution"-
Zeile einfügen, damit man nachvollziehen kann, wer was
geschrieben hat. Die meiste Mailer können das schon;
man muß es nur enablen.)

> [ Oliver Fromme schrieb: ]
> > Bist Du sicher, daß zu dem jeweiligen Zeitpunkt ein Apache
> > lief? Denkbar wäre auch, daß zu dem jeweiligen Zeitpunkt ein
> > DoS-Angriff lief und Dein Aapache vielleicht wegen
> > Überlastung keine Verbindung mehr annehmen konnte. Aber das
> > ist jetzt nur reine Spekulation.
>
> Würde sagen ja und dann währen doch mmer die gleichen ip's
> geloggt, oder?... Sind immer andere....und auch solche nicht
> aus europa was mit unsere site nicht viel anfangen können..
> würd ich mal meinen :-)

Mehrere mögliche Erklärungen:

 - Die IPs könnten samt und sonders gespooft sein.

 - Es könnte ein DDOS-Angriff sein, d.h. ein verteilter
   (koordinierter oder unkoordinierter) Angriff.

 - Du könntest geslashdottet worden sein -- D.h. eine URL
   von Deinem Server wurde irgendwo auf einem beliebten
   Portal (Slashdot, Heise, sonstwas) veröffentlicht, so
   daß die Anzahl der »Zuklicker« plötzlich sprunghaft
   angestiegen ist.

Es gibt sicher noch mehr Möglichkeiten.

> Wie gesagt, der server lief 378 Tage ununterbrochen.
> Okay, die last stieg aber trotzdem nicht so. Wie möchte
> einer eine DoS Attacke fahren, wenn er den MySQL nicht
> direkt erreicht?. Port 3306 ist geschlossen und der apache
> (php) ist der einzige der dort einträge in die db macht.

OK, dann fällt die Möglichkeit aus (Du erwähntest das nicht
in Deiner ersten Mail). Übrigens würde ich generell dazu
raten, PostgreSQL statt mysql zu verwenden. Neben diversen
anderen Vorteilen ist es auch resourcenschonender, was den
Speicherbedarf betrifft. (Ja, man kann auch mysql so kon-
figurieren, daß es sich mit weniger begnügt, was aber spür-
bar auf die Performance drückt.)

> > [...] Du solltest
> > unbedingt Deine Apache-Konfiguration überprüfen und die
> > Anzahl der maximalen Child-Prozesse herabsetzen. Außerdem
> > solltest Du die Prozeß-Limits für den User, unter dem Dein
> > Apache läuft (wohl UID 80), geeigent einstellen, so daß
> > dieser gar nicht erst so viele System-Resourcen verbrauchen
> > kann (Speicher und Anzahl Prozesse).
>
> Childs, hab ich nun mal, was ich so gelesen habe, auf
> empfohlene 50 gesetzt. Ist dies in Ordnung?...

Das müßtest Du besser wissen als ich. :-) Für einen
»kleinen« Server (z.B. für private Zwecke) ist das aber
mehr als genug.

> Wie muss ich dies berechnen?...

Naja, wieviele parallele Connections willst Du gleichzeitig
zu Deinem Webserver zulassen? Bedenke, daß viele Browser
mehrere gleichzeitige Verbindunge aufmachen; typischerweise
acht. Du könntest Dir auch überlegen, nicht mehr als X
Verbindungen von derselben IP zuzulassen, so daß nicht ein
einzelner asozialer Client alle Verbindungsresourcen bei
Dir aufbrauchen kann. Und frag mich jetzt bitte nicht, wie
hoch X sein sollte. :-)

> Kannst du mir noch nen kleinen Tipp geben wo ich suchen
> muss um prozesse für einen user zu limitieren?

/etc/login.conf (hat auch 'ne manpage)

> > Das sagt ja bereits alles (ist außerdem eine FAQ).
> > Die genannte manpage hast Du sicherlich schon gelesen.
> > »netstat -m« sagt Dir die aktuelle Belegung; der Peak-Wert
> > sollte nie in die Nähe des Max-Wertes geraten.
>
> Aber dies passierte nur weill der apache bzw. mysql prozess
> so aufgeblasen wurde, oder?.

Ja, das war wahrscheinlich in Folge.

> Was für einen Wert würdest du empfehlen?... 4096 ?

Auch das kann ich Dir nicht beantworten, weil ich Dein
System und Deine Anforderungen nicht kenne. Du könntest
die Ausgabe von »netstat -m« mal über einen längeren
Zeitraum beobachten, insbesondere auch, wenn das System
mal etwas Netzlast aushalten muß. Wenn der Peak-Wert
immer deutlich unter dem Max-Wert bleibt, ist alles OK.

(Im Zweifelsfall nimm etwas mehr -- das ist besser als
zu wenig. Aber bedenke, daß ein übermäßig hoher Wert
auch viel Kernel-Memory verschwendet.)

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"Clear perl code is better than unclear awk code; but NOTHING
comes close to unclear perl code"  (taken from comp.lang.awk FAQ)
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 14 Apr 2004 - 15:48:36 CEST

search this site