Page 1 of 1

Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-06 23:43
by agent_k
Hallo,

gibt es eine Möglichkeit entweder im Nachhinein oder für die Zukunft herauszufinden, welches Script eine Datei in /tmp angelegt hat? Ich gehe stark davon aus, dass irgendeine Sicherheitslücke von irgendeinem PHP Script auf dem Webserver (z.B. ein ungepatchtes phpBB Forum) ausgenutzt wird um "nette" .pl Dateien im /tmp Verzeichnis abzulegen. Um die Ursache zu beseitigen und nach Mühsamen neu aufsetzen und neu einrichten der Accounts am Wochenende nicht wieder vor dem gleichen Problem zu stehen. Die "netten Zeitgenossen" sitzen ja oft in der ersten Reihe, sprich: Sind angemeldete User des Webservers.

Danke im Voraus für Eure Hilfe.

mfg k

Re: Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-06 23:52
by flo
Hi,

mounte doch /tmp einfach sicherer - noexec,nosuid,nodev - damit umgehst Du schon mal das Problem.

Haben die User bei Dir Shell-Zugriff?

flo.

Re: Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-07 00:00
by agent_k
Hallo,

das tmp Verzeichnis liegt auf der gleichen Partition wie auch alles andere (ja, ich weiss.. ist aber leider so vorkonfiguriert gewesen. Da ich jetzt schon einiges mehr an Ahnung habe was Linux betrifft, werde ich mir ein sauberes Debian selbst aufsetzen.)

Kann ich das trotzdem irgendwie hintricksen?
Warum schreien die PHP Applikationen wenn ich dem /tmp Verzeichnis die Execute Rechte wegnehme? Die werden für die Session Daten doch eigentlich nicht gebraucht, oder?

mfg k

edit: Nein die User haben keinen Shellzugriff, ich hab aber schon so nette PHP Scripts gesehen welche eine Shell simulieren...

Re: Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-07 01:21
by caput
agent_k wrote:edit: Nein die User haben keinen Shellzugriff, ich hab aber schon so nette PHP Scripts gesehen welche eine Shell simulieren...
Wie wäre es mit php-(f)cgi? Und die Manual von PHP Safe Mode sollte man nicht ausser acht lassen, vor allem disable_functions.. :x

Re: Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-07 07:55
by flo
agent_k wrote:das tmp Verzeichnis liegt auf der gleichen Partition wie auch alles andere
Dann mounte ein kleines ISO über Loopback ;-)
(Ich vergesse auch jedesmal wieder, meinem Home-Server eine Temp-Partition zu geben)
agent_k wrote: Warum schreien die PHP Applikationen wenn ich dem /tmp Verzeichnis die Execute Rechte wegnehme?
Sollte nicht sein - ich benutze allerdings auch einen phptemp-Ordner im Home des Benutzers, aber auch auf dem Heimserver arbeitet das einwandfrei.

flo.

Re: Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-07 10:33
by Joe User

Code: Select all

/etc/fstab:

tmpfs   /tmp   tmpfs   nodev,noexec,nosuid   0 0

Re: Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-07 11:59
by andreask2
agent_k wrote:Warum schreien die PHP Applikationen wenn ich dem /tmp Verzeichnis die Execute Rechte wegnehme? Die werden für die Session Daten doch eigentlich nicht gebraucht, oder?
Du kannst einem Verzeichnis keine Execute-Rechte wegnehmen, weil es nicht ausgeführt werden kann. Wenn Du dieses Recht wegnimmst, kommt man nicht mehr in das Verzeichnis.

http://www.selflinux.org/selflinux-deve ... l#d20e1256

Re: Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-07 12:06
by andreask2
caput wrote:Wie wäre es mit php-(f)cgi? Und die Manual von PHP Safe Mode sollte man nicht ausser acht lassen, vor allem disable_functions.. :x
Das bringt Dir aber nur dann was, wenn Du kein CGI erlaubst, denn damit kann man das alles umgehen.

Und man sollte in Zusammenhang mit Safe-Mode folgendes Statement des Entwickler-Teams kennen: http://de3.php.net/security-note.php

Safe-Mode ist nicht die Lösung dieses Problems, es ist ein Workaround für einen Teil der Probleme - der zudem löcherig ist.

Re: Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-07 19:50
by agent_k
Hallo,

danke für die zahlreichen Antworten.

@Joe User:
Da ich auch verstehen möchte was ich auf meiner Kiste mache, tut sich die Frage auf was dein Eintrag in der fstab bewirken würde.. Kann ich diesen Eintrag machen wenn das /tmp Verzeichnis auf der gleichen Partition liegt? Ich bin durch das tmpfs etwas verwirrt da am Anfang doch normalerweise das Device/die Partition steht... Für man fstab oder Ã?hnliches hab ich grad keine Zeit da mich scheinbar wirklich jemand nicht mag:

Code: Select all

 6175 nobody    17   0  2712 2184 2152 R 19.1  0.4 116:05.54 proftpd
 6148 nobody    17   0  2708 2172 2140 R 18.8  0.4 116:50.64 proftpd
13638 nobody    16   0  2712 2192 2160 R 18.8  0.4  50:43.31 proftpd
14615 nobody    16   0  2712 2192 2160 R 18.8  0.4  44:36.35 proftpd
CPU Last alles in allem 100%, alle 4 Prozesse stehen bei PASSWD, daher gehe ich davon aus dass es sich um eine Bruteforce Attacke handelt. Gibt es eine Möglichkeit mit proftpd z.B. nach x fehlgeschlagenen Anmeldeversuchen die Quell IP für z.B. 15 Min zu sperren? Dieses Problem werde ich durch neuaufsetzen des Servers ja wohl nicht loswerden.

Danke & mfg k

Re: Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-07 20:32
by Joe User
Durch die dritte Option (tmpfs) in der fstab wird /tmp in den RAM verlegt und zudem mit erweiterten sicheheitsrelevanten Mountsoptionen (nodev,noexec,nosuid) gemountet. Das erste tmpfs ist lediglich ein Bezeichner, welcher die Identifikation der "Partition" vereinfacht (siehe Manpage).

Re: Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-07 20:38
by flo
@Joe User: tmpfs ist eine gute Idee, aber einen Ã?berlauf kann man damit doch damit nicht verhindern, da sehe ich bei solchen Usern dann auch die Gefahr eines DOS - oder nicht?

flo.

Re: Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-07 20:38
by agent_k
Hallo,

danke! Ich nehm aber mal stark an dass ich dann das vorhandene tmp Verzeichnis löschen muss?

mfg k

edit: Habt ihr noch eine Hilfe bezüglich der Bruteforce Attacke? Ich bin halt grad am IP Range in der FW sperren und am Absue Mails an die Provider schicken. :(

Re: Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-07 20:47
by Joe User
agent_k wrote:Ich nehm aber mal stark an dass ich dann das vorhandene tmp Verzeichnis löschen muss?
Nein. Dir gehen beim Reboot lediglich die temporären(!) Daten in /tmp verloren. Ausserdem kannst Du mit dieser Lösung /tmp gefahrlos im laufenden Betrieb (un)mounten. Nützlich, wenn man unliebsame Gäste in /tmp hat und diese schnell loswerden muss. Desweiteren lässt sich auch noch die Grösse des tmpfs festlegen, wodurch man das Volllaufen des RAM verhindern kann...

Re: Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-07 20:49
by Joe User
flo wrote:@Joe User: tmpfs ist eine gute Idee, aber einen Ã?berlauf kann man damit doch damit nicht verhindern, da sehe ich bei solchen Usern dann auch die Gefahr eines DOS - oder nicht?
Definiere "Ã?berlauf" / Siehe oben :roll:

Re: Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-07 20:51
by agent_k
Hallo,

ok - ich habe ein mysql Socket im tmp liegen (ja schlagt mich), imho kotzt sich das ganze werk an, wenn nach einem reboot das socket weg ist. was kann ich dagegen tun? Wie kann ich die Größe festlegen? Tut mir leid wenn ich nicht selber ins man schaue aber ich kann grade wirklich nicht.

Danke
mfg k

Re: Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-07 20:55
by Joe User
Grösse = 32MB:

Code: Select all

tmpfs   /tmp   tmpfs   nodev,noexec,nosuid,size=32M   0 0
Mounten:

Code: Select all

mount tmpfs
Der Socket sollte beim Reboot/MySQL-Restart automatisch angelegt werden.

Re: Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-07 20:58
by agent_k
Ok, danke.

wenn

Code: Select all

tmpfs   /tmp   tmpfs   nodev,noexec,nosuid,size=32M   0 0
nun in der fstab steht, wirds doch eh beim nächsten reboot automatisch gemountet oder täusch ich mich da?

mfg k

Re: Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-07 21:01
by Joe User
agent_k wrote:nun in der fstab steht, wirds doch eh beim nächsten reboot automatisch gemountet
Jupp.

Re: Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-07 21:03
by agent_k
dangeee ;) Soll nochmal jemand sagen dass man hier unfreundlich behandelt wird.

mfg k

Re: Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-07 21:16
by agent_k
hallo,

noch eine frage, ist zwar schon off-topic, aber soll ich dafür einen neuen thread aufmachen?

ich könnte doch theoretisch zumindest die cpu last welcher der proftpd erzeugt senken, indem ich für netfilter die packet flow rate für port 21 begrenze, oder? was wäre denn da ein sinnvoller wert? bin grad schon am googeln aber vielleicht kann mir hier jemand gleich detailliertere infos oder links posten.

mfg k

Re: Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-13 18:16
by jeti-power
Joe User wrote:Grösse = 32MB:

Code: Select all

tmpfs   /tmp   tmpfs   nodev,noexec,nosuid,size=32M   0 0
Mounten:

Code: Select all

mount tmpfs
Der Socket sollte beim Reboot/MySQL-Restart automatisch angelegt werden.
hmm, ich stell mir gerade die Frage, in wieweit sowas sinnvoll ist und welche Probleme die Lösung hat. Könnte es vorkommen, dass es mangels Speicher (32mb sind zwar wenig, aber bei z.B. 512mb Ram doch wieder relativ viel) bei einigen Diensten zu Problemen kommt im Hosting-Betrieb? Hat da schon jemand von euch Erfahrungswerte sammeln können?

Gruss,
Jens

Re: Welches Script hat welche Datei in /tmp erstellt?

Posted: 2005-07-14 01:50
by lord_pinhead
@agent_k
Wenn du mal sagst was du dir unter Packet Flow vorstellst könnten wir dir vielleicht helfen :D Bisher kenn ich nur die Theoretischen Ansätze, aber nix wirklich brauchbares aus er Praxis.

@jeti-power
Ach, 32 Mega sollten schon langen, ich hab selten mehr als 5 im tmp liegen :D ausserdem haben die Leute eh meist Ihr phptmp und dann kann mir das egal sein. Ausserdem, wer sagt das man nicht einfach ein Container mit dd erstellen kann und dann eine Datei auf /var hat die dann das tmp enthält und dann muss man das nur erweitern :) Aber 32 MB reichen eigentlich aus.