Apache liefert sämtliche SymLinks aus

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Mozie
Beiträge: 31
Registriert: 20.05.2015 13:09:39

Apache liefert sämtliche SymLinks aus

Beitrag von Mozie » 30.04.2016 15:05:57

Hallo liebe Community,

ich hoffe ihr könnt mir helfen.
Ich habe einen Server, auf diesem laufen einige Programme. Unter anderem auch der Indianer (Apache2.4).
Über diesen habe ich einige vHosts konfiguriert und einigen Freunden und Bekannten gebe ich darauf auch Zugriff, damit sie ihre eigene Webseite über mein Server hosten können. Das funktioniert auch alles super.

Jedoch ist mir heute etwas gravierenden aufgefallen. Ein User kann einen SymLink zu einer beliebigen Datei erstellen zum Beispiel (/etc/apache2/... oder... einfach überall außer /) und der Indianer tut seinen Dienst und liefert natürlich auch diese Datei.

Die einfachste Möglichkeit wäre, FollowSymLinks zu deaktivieren, jedoch benötigen es einige CMS-Systeme meiner Freunde. Ich habe auch nicht unbedingt Angst, dass meine Freunde damit "Schindluder" auf meinem Server treiben aber es geht allgem. um die Sicherheit des Servers (Was ist, wenn ein Dritter auf einmal Zugang erlangt).

Auch die Möglichkeit von SymLinksIfOwnerMatch kann hier nicht Anwendung finden, da dies über .htaccess leicht wieder geändert werden kann.

Meine vHost Dateien sehen bei jedem ähnlich aus:

Code: Alles auswählen

[...]
<Directory />
    Order deny,allow
    deny from all
  </Directory>

  <Directory /var/www/felix>
    Order allow,deny
    allow from all
    Options -Indexes +FollowSymLinks
    AllowOverride All
  </Directory>
Ich hoffe ihr könnt mir irgendwie helfen oder Tipps geben, wie ich dieses Sicherheitsproblem lösen kann.

MFG Micha

JTH
Moderator
Beiträge: 3014
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Apache liefert sämtliche SymLinks aus

Beitrag von JTH » 01.05.2016 16:40:40

Deine Idee mit SymLinksIfOwnerMatch ist denke ich schon richtig. Du darfst den einzelnen Benutzern allerdings nicht erlauben, FollowSymLinks zu setzen, und musst dafür das AllowOverride All ändern.

Wenn ich in der Doku [1][2] da nichts übersehen habe, entspricht AllowOverride All folgendem für die erlaubten Options:

Code: Alles auswählen

AllowOverride All Options=ExecCGI,FollowSymLinks,Includes,IncludesNOEXEC,Indexes,SymLinksIfOwnerMatch
Du müsstest den Benutzern also das Setzen von FollowSymlinks verbieten (es aus der Liste bei AllowOverride entfernen) und es selber abschalten:

Code: Alles auswählen

Options -Indexes -FollowSymlinks +SymLinksIfOwnerMatch 
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,SymLinksIfOwnerMatch
[1] https://httpd.apache.org/docs/2.4/mod/c ... owoverride
[2] https://httpd.apache.org/docs/2.4/mod/core.html#options
Manchmal bekannt als Just (another) Terminal Hacker.

Mozie
Beiträge: 31
Registriert: 20.05.2015 13:09:39

Re: Apache liefert sämtliche SymLinks aus

Beitrag von Mozie » 22.05.2016 21:41:04

Hi JHT,

vielen Dank für deinen Beitrag. Ich habe mich diesbezüglich belesen und es wird davon geredet, dass SymLinksIfOwnerMatch nicht gerade sicher sein soll. Auch müsste es bei vielen CMS-Systemen per Hand geändert werden, da diese sehr oft in ihren .htaccess Dateien FollowSymlinks aktiviert haben.

Meine Idee ist es, für jeden Freund eine eigene Partition zu erstellen. Ist es dabei irgendwie möglich, Symlinks partitionsübergreifend zu verhindern?
Vielen Dank für eure Hilfe!

MFG Micha

Antworten