Wie sichert man PHP5 mit Suhosin unter Debian Etch und Ubuntu

Version 1.0
Autor: Falko Timme
Stand: 29.03.2007

Diese Anleitung veranschaulicht, wie man PHP5 mit Suhosin auf Debian-Etch und Ubuntu-Servern absichern kann. Von der Suhosin-Projektseite: "Suhosin is an advanced protection system for PHP installations that was designed to protect servers and users from known and unknown flaws in PHP applications and the PHP core. Suhosin comes in two independent parts, that can be used separately or in combination. The first part is a small patch against the PHP core, that implements a few low-level protections against bufferoverflows or format string vulnerabilities and the second part is a powerful PHP extension that implements all the other protections."
Diese Anleitung ist ohne jede Garantie und ich möchte an dieser Stelle darauf hinweisen, dass dies hier nicht der einzige Weg ist, ein solches System zu installieren. Es gibt viele Möglichkeiten - ich selbst habe mich für diese entschieden. Ich kann aber nicht garantieren, dass diese Lösung bei jedem funktioniert bzw. für jeden die richtige ist!

1 Vorbemerkung

Für die folgende Installation habe ich einen Debian-Etch-Server mit der IP-Adresse 192.168.0.100 genutzt.

In dieser Anleitung werde ich beide Suhosin-Teile installieren: einen Suhosin-Patch (hierfür muss man PHP5 rekompilieren) und eine Suhosin-PHP-Erweiterung (diese ist als Debian/Ubuntu-Paket erhältlich). Möchte man einen Überblick über die Funktionen von Suhosin, empfehle ich folgenden Link: http://www.hardened-php.net/suhosin/a_feature_list.html. Die Funktionen von Suhosin-Patch sind unter Engine Protection (only with patch) aufgelistet - alle anderen Funktionen liefert der zweite Teil, die Suhosin-Erweiterung.

2 Installation von Apache2 und PHP5 (Optional)

(Dieses Kapitel ist optional! Wenn man bereits Apache2 und PHP5 installiert hat, kann man direkt im nächsten Kapitel weiterlesen.)

Wenn man Apache2 und PHP5 noch nicht auf dem Server installiert hat, installiert man sie jetzt:

apt-get install libapache2-mod-php5 php5 apache2-mpm-prefork php5-dev

Dieser Schritt installiert PHP5 mit sämtlichen Basisfunktionen - benötigt man spezielle PHP5-Module, kann man so nach ihnen suchen:

apt-cache search php5

Nun wählt man aus der Ausgabe die benötigten Module und installiert sie so:

apt-get install php5-auth-pam php5-clamavlib php5-common php5-curl php5-gd php5-idn php5-imagick php5-imap php5-json php5-ldap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-odbc php5-pgsql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-uuid php5-xapian php5-xmlrpc php5-xsl

Folgende Frage erscheint:

Continue installing libc-client without Maildir support? <-- Yes
Hat man sich für die Installation von php5-clamavlib entschieden, sollte man auch ClamAV installieren:

apt-get install clamav


3 Wie kommt man an wichtige Details zur PHP5-Installation?

Wenn man noch keine virtuellen Hosts in der Apache-Installation eingerichtet hat, erfolgt der Dokumenten-Root von der vorgegebenen Webseite /var/www. Ich werde nun eine kleine PHP-Datei (info.php) in das Datenverzeichnis einrichten und in einem Browser aufrufen (wenn man virtuelle Hosts hat, platziert man die PHP-Datei in jedem virtuellen Host, der PHP aktiviert hat). Die Datei wird viele nützliche Details für die PHP-Installation anzeigen, z.B. über die bereits installierte PHP-Version.

vi /var/www/info.php

<?php
phpinfo(); ?>
Nun kann man die Datei in einem Browser öffnen (z.B. http://192.168.0.100/info.php):


Wie man sieht, ist diese PHP-Version die 5.2.0-8+etch1.

0 Kommentar(e)

Zum Posten von Kommentaren bitte