PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache - User darf Ordner nicht verlassen?



Stormsam
04.01.05, 16:48
HI@all,

habe momentan ein kleines Problem.
Habe einen Debian Rechner mit APache und PHP.
Nun gibt es Tools wie z.B.: phpMyServer, womit man über den Browser die komplette Festplatte sehen kann.
Wie kann ich das ändern?
Bei mir ist der htdocs unter /usr/local/apache/htdocs und dort befindet sich ein user, phpMyServer wurde nun in dem ordner hochgeladen also unter:
/usr/local/apache/htdocs/user/phpMyServer

Wie kann ich Apache (oder PHP?) so einstellen, dass der User nur aus seinem Ordner "user" herrauskommt und sich die ganze festplatte anschauen kann?
Gibts da evt. eine option?

MfG
Stormsam

Retsiem
04.01.05, 17:35
salut

auf der phpmyserver homepage ist eine relative umfangreiche anleitung wie man phpmyserver einstellen muss. unter anderem auch sicherheitskonfiguration:
http://www.phpmyserver.de/dokumentation.php#5

mfg Retsiem

Stormsam
04.01.05, 17:41
danke für deine antwort.
phpmyserver war jetzt nur ein Beispiel. Würde das gerne von Seiten des Server einschränken.
Ich habe halt ein paar User auf dem Debian-rechner und möchte verhindern das diese sich alle Datein anschauen können (z.b. indem sie phpmyserver oder ähnliche tools aufspielen).

Würde es gerne so einstellen, das sie keine skripte ausführen können, welche über ihren ordner "hinaus" gehen.
Ist dies im Apache (oder php) möglich? (Sollte eigentlich!)

MfG
Stormsam

Pingu
04.01.05, 18:15
Würde es gerne so einstellen, das sie keine skripte ausführen können, welche über ihren ordner "hinaus" gehen.
Ist dies im Apache (oder php) möglich? (Sollte eigentlich!)
Dafür gibt es ein Manual (http://www.php.net/manual/de/) bei php.net (http://www.php.net). In diesem Manual (http://www.php.net/manual/de/) gibt es sogar ein ganzes Kapitel zum Thema Sicherheit (http://www.php.net/manual/de/security.php).

So nebenbei gibt es so etwas natürlich auch für den Apachen bei httpd.apache.org (http://httpd.apache.org). Auch hier enthält das Manual (http://httpd.apache.org/docs/) ein eigenes Kapitel zum Thema Sicherheit (http://httpd.apache.org/docs/misc/security_tips.html).

Pingu

Stormsam
04.01.05, 22:52
hallo,

danke für deine webseiten.
habe mir diese mal angeschaut.
auf php.net fand ich nicht wirklich was hilfreiches, dort wurde das thema zwar angesprochen, allerdings sehen die die sicherheitslücke beim programmieren im skript und nicht in der conf.
Bei der apache seite habe ich was gefunden und zwar steht da:


For instance, consider the following example:

# cd /; ln -s / public_html
Accessing http://localhost/~root/
This would allow clients to walk through the entire filesystem. To work around this, add the following block to your server's configuration:

<Directory />
Order Deny,Allow
Deny from all
</Directory>


das ist ja mein Problem, dass man mittels php auf der festplatte rumgucken kann. Doch ich habe genau diesen eintrag in meine httpd.conf. wieso kann man dann trotzdem sich die festplatte anschauen? für / habe ich deny und nur für htdocs allow, trotzdem kann ein php-skript aus seinem hauptordner "raus".

Der rest hatte mir auch nicht weiterhelfen können.
Mittels entsprechender php codes, kann ich mir auch den root ordner anschauen, obwohl user und group root gehöhren.

Was kann man da jetzt machen ?!
mfg
stormsam

Stormsam
05.01.05, 20:47
öhm ... hat da keiner eine idee?

Stormsam
25.02.05, 14:52
Hallo,

bin bei diesem Problem leider immer noch nicht vorran gekommen.
Das muss ja irgendwie gehen - da ich dies schon bei anderen gesehen hatte.
Wie kann ich unterbinden das man mittels php-befehle von order zu ordner springen kann?

mfg
stormsam

whistle
25.02.05, 14:59
Hi,
bei php sollte open_basedir in der php.ini dein Freund sein.
Ausführliche Infos zu Absicherung von php und apache enthält ein Linuxmagazin-Artikel: http://www.linux-magazin.de/Artikel/ausgabe/2004/10/php/php.html , der Link befindet sich übrigens auch bei den Webserver-Howtos des Forums.
Gruß
Whistle

Stormsam
26.02.05, 11:33
Hallo,

danke für den Tipp! das hat mir sehr weitergeholfen.
Ich habe nun mittels open_basedir meine wichtigsten Ordner geschutzt.
Leider gibt es noch 2 Probleme:
1) Mit open_basedir habe ich jetzt nur /srv/www geschützt. Allerdings habe ich in /srv/www noch mehrere User, welche untereinander nicht geschützt sind ( dieses problem wird auch auf deiner erwähnten Seite angesprochen). Allerdings sagen die dort man soll das für jeden User einzelnd ins virtualhost schreiben - das wäre extrem aufwändig für mich. Könnte man das evt. irgendwie automatisieren? (z.b. mit rewrite).
2) Das FileSkript-Beispiel funktioniert bei mir nun nicht mehr. Es kommt halt wie gesagt der fehler:
Warning: Unknown(): open_basedir restriction in effect. File(/srv/www....) is not within the allowed path(s): (/srv/www...) in Unknown on line 0
Dieses "einfache" Skript funktioniert nicht mehr - allerdings komplexe Skripts wie z.B.: phpMyServer können immer noch die komplette Festplatte durchstöbern !!

MfG
Stormsam