Apache MPM-ITK – Rechteaufteilung unter VHosts

Hallo Leute,

in diesem Blogpost möchte ich euch erzählen, wie man auf per Vhost-Basis den Apache-Webserver mit verschiedenen Benutzerrechten ausstattet. Das ist dahingehend wichtig, da man verschiedene Webseiten voneinander trennen möchte. Sollte eine Webseite gehackt werden, so kann der Angreifer nicht sofort alle anderen Webseiten mitnehmen.

Wir werden zur Lösung dieses Problems das Modul „mpm-itk“ nutzen. Dieses lässt sich leicht installieren:

sudo apt-get install apache2-mpm-itk

Es könnte sein, dass dabei „mpm-prefork“ deinstalliert wird, aber das stört nicht weiter.

Als nächstes kann man in seinen VHost-Konfigurationsdateien folgenden Eintrag hinzufügen:

  <IfModule mpm_itk_module>
    AssignUserId USER GROUP
  </IfModule>

Wobei „USER“ der zu nutzende Benutzer und „GROUP“ die zu nutzende Gruppe ist. Gibt man diese Direktive nicht an, so werden die Standardrechte von Apache genutzt. Das kann je nach Konfiguration www-data oder root sein.

Die Ordnerstruktur kann zum Beispiel so aussehen:

/var/www/ - 775 (root:root)
-----> vhost1 - 700 (user1:user1)
--------> index.php - 777 (user1:user1)
-----> vhost2 - 700 (user2:user2)
--------> index.php - 777 (user2:user2)

Nun ist jede/r Webseite/VHost in sein eigenes Verzeichnis mit seinem eigenen Benutzer eingesperrt und Übergriffe auf andere Seiten sind nicht möglich.

~ Sebastian