das Thema wurde hier zwar schon ein paarmal besprochen, aber ich versuche es trotzdem nochmal, das aufzuwaermen und hoffe trotzalledem auf Anteilnahme von Euch. ;-)
Bin mit meiner Apache-Config (es laufen fuer verschiedene Benutzer VHosts, die nicht aufeinander oder sonstwo ausserhalb des Webspaces zugreifen sollen) inzwischen recht zufrieden was Sicherheit anbelangt. PHP loese ich momentan mit den safe_mode etc. Geschichten, was zwar nicht ganz optimal ist wie man hier in verschiedenen Threads lesen kann, aber damit mach ich erst weiter, wenn ich gravierendere Probleme geloest habe, die ich hier schildern will.
Ich setze suEXEC ein, hier habe ich mich am DebianHowto orientiert. Rewrite ueber .htaccess scheint auch gut zu funktionieren, dh Rewrites auf ausserhalb des eigenen Webdirs funktionieren nicht. Allerdings habe ich das Problem, dass sich z.B. AuthUserFile recht seltsam verhaelt. Gebe ich das File so an "AuthUserFile /var/www/webdir/.htpasswd" dann wird das File auch gefunden. Gebe ich es so an "AuthUserFile .htpasswd" dann sucht er das File laut Logfile in /etc/apache. Laut Apache-Docs ist das wohl auch richtig so, aber wie kann ich das korrigieren? Kenne das von frueher als einfacher Benutzer gar nicht, dass man da absolute Pfade angeben muss. Was mich allerdings viel mehr stoert: Gebe ich einen absoluten Pfad an, ist es egal, wo ich den Apachen das File suchen lasse. Er oeffnet es naemlich von ueberall, egal ob es in /etc/, /usr/ oder in einem anderen Webspace liegt. 8O
Auch aeusserst stoerend finde ich das Verhalten von Perl. Mit suEXEC habe ich es zwar in den Griff bekommen, dass u.g. Script nicht mehr auf Inhalte anderer Webspaces zugreifen kann, aber z.B. /etc/passwd wird immer noch brav angezeigt. :evil:
Gut, mit mod_security kann ich das Problem wohl umschiffen indem man den Apachen chrootet (20 minuetige Beschaeftigung mit dem Tool haben dazu gefuehrt, dass sich der Apache mehrfach verabschiedete), aber die super Loesung scheint es ja nicht zu sein. Ansonsten kam hier im Forum noch die Idee, irgendwie / mit chmod zu bearbeiten und man hat das Problem so irgendwie geloest, was mir allerdings noch nicht so ganz klar ist. Sehe glaube ich den Wald vor lauter Baeumen nicht...
Wie macht Ihr denn das?
Vielen Dank und viele Gruesse,
Martin
Code: Select all
#!/usr/bin/perl -T
$htmlfile = "/etc/motd";
print "Content-type: text/htmlnn";
open(FILE,"$htmlfile");
while(<FILE>) {
print $_;
}
exit;