suPHP in lighttpd konfigurieren

Achtung: Diese Seite ist nur noch Teil eines Archivs und wird in Zukunft entfernt.

Um den Webserver sicherer zu machen, kann man suPHP nutzen. Dieses Modul führt PHP-Skript mit den Rechten des Besitzers aus. D.h. ist ein normaler Benutzer der Besitzer einer ausgeführten Datei, kann diese nicht auf administrative Funktionen zugreifen.

Damit kann man bei der richtigen restlichen Konfiguration seinen Webserver sicherer machen.

Da das Modul selbst eigentlich nur für den Apache verfügbar ist, muss man für lighttpd selbst Hand anlegen. Über die Suche "suPHP" findet man über aptitude normal folgende zwei Pakete:
libapache2-mod-suphp
suphp-common
Erstere ist, wie schon erwähnt, für den Apache und wird daher nicht benötigt. Also wird letztere installiert.

Nun hat man die Grundfunktionen, muss diese aber noch in der Konfiguration von lighttpd aktivieren. Dazu geht man folgendermaßen vor:

Quellcode

  1. touch /etc/lighttpd/conf-available/10-suphp.conf
  2. ln -s /etc/lighttpd/conf-available/10-suphp.conf /etc/lighttpd/conf-enabled/10-suphp.conf
Damit ist die Konfigurationsdatei erstellt und wird beim nächsten Serverstart auch aktiviert. Allerdings ist sie natürlich leer, also muss man sie erst einmal bearbeiten.

Dazu empfiehlt sich folgender Inhalt:

Quellcode

  1. server.modules += ( "mod_setenv" )
  2. server.modules += ( "mod_cgi" )
  3. $HTTP["url"] =~ ".php$" {
  4. setenv.add-environment = (
  5. "SUPHP_HANDLER" => "x-httpd-php"
  6. )
  7. }
  8. $HTTP["url"] =~ ".pl|.py|.cgi$" {
  9. setenv.add-environment = (
  10. "SUPHP_HANDLER" => "x-suphp-cgi"
  11. )
  12. }
  13. cgi.assign = (
  14. ".php" => "/usr/lib/suphp/suphp",
  15. ".pl" => "/usr/lib/suphp/suphp",
  16. ".py" => "/usr/lib/suphp/suphp",
  17. ".cgi" => "/usr/lib/suphp/suphp"
  18. )
Alles anzeigen
Wie man hier in Zeile 1 und 2 sehen kann, werden die Module mod_setenv und mod_cgi geladen, welche für suPHP benötigt werden.
Neben PHP (Zeile 4-8) wird hier suPHP auch für Python, Perl und CGI-Scripte (Zeile 10-13) aktiviert.

Danach muss man lighttpd nur noch neu starten bzw. die Konfiguration neu geladen werden.

Hinweis:
Sind die Berechtigungen der Dateien wild gesetzt oder falsch, kann die Ausführung derselben durch diese Konfiguration verhindert werden und Fehler hervorrufen. Man sollte daher vorher seine Berechtigungen überprüfen. Außerdem sollte man auch danach schauen, ob man das überhaupt benötigt. Gehören alle Dateien dem Benutzer "root", so werden diese auch mit den höchsten Berechtigungen gestartet und wie Wirkung ist gleich null.
Über den Autor
Ich bin Webentwickler in Stuttgart und administriere Server seit vielen Jahren. In diesem Blog erstelle ich hauptsächlich Tutorials für andere Webentwickler, Webdesigner und Serveradministratoren.
-------------------------------------------------------------------------------------------------------------------------------------
I’m a web developer in Stuttgart, Germany, and server administrator since many years. This blog mainly contains a tutorial set for other web developer, web designer and server administrators.

466 mal gelesen

Kommentare 0

Es wurden keine Einträge gefunden.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen