Wie Du PHP5 mit Suhosin auf Mandriva 2007 Spring sicherer machen kannst

Version 1.0
Author: Falko Timme


Diese Anleitung veranschaulicht, wie man PHP5 mit Suhosin auf einem Mandriva 2007 Spring Server sicherer machen kann. Von der Suhosin Projekt Seite: "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 buffer overflows or format string vulnerabilities and the second part is a powerful PHP extension that implements all the other protections."
Diese Anleitung ist ohne jegliche Gewähr! Ich übernehme keine Garantie, dass dies auch bei Dir funktioniert!

1 Vorbemerkung

Ich habe dies auf einem Mandriva 2007 Spring Server mit der IP Adresse 192.168.0.100 getestet.

Diese Anleitung ist etwas untypisch, da Du Suhosin auf Mandriva 2007 Spring nicht installieren musst, wenn bei Dir PHP5 installiert ist, denn bei Mandrivas PHP5 ist Suhosin bereits standardmäßig integriert. Dennoch lohnt es sich diese Anleitung zu verfassen, da es die Frage beantwortet "Was muss ich tun, um Suhosin zu installieren?" - nichts, wenn PHP5 bereits installiert ist.

2 Installation von Apache2 und PHP5 (optional)

(Dieses Kapitel ist optional wenn Du Apache2 und PHP5 bereits installiert hast - um zu überprüfen, ob Suhosin in Deinem PHP5 aktiviert ist, fahre bitte mit dem nächsten Kapitel fort.)

Zunächst, falls Du Mandrivas Online-Paketdatenbanken (und nicht die Mandriva DVD) verwenden solltest, um Pakete zu installieren, solltest Du Deine Paketdatenbank aktualisieren:

urpmi.update -a

Falls Du Apache2 und PHP5 nicht auf Deinem Server installiert haben solltest, dann installiere es jetzt:

urpmi apache-mod_php libphp5_common5

Einige andere Pakete werden zusammen mit den beiden Paketen als Abhängigkeiten installiert, wie Du in der Ausgabe sehen kannst:

[root@server1 ~]# urpmi apache-mod_php libphp5_common5
To satisfy dependencies, the following packages are going to be installed:
apache-base-2.2.4-6.2mdv2007.1.i586
apache-conf-2.2.4-4mdv2007.1.i586
apache-mod_php-5.2.1-4mdv2007.1.i586
apache-modules-2.2.4-6.2mdv2007.1.i586
apache-mpm-prefork-2.2.4-6.2mdv2007.1.i586
ccp-0.4.1-1mdk.noarch
libmm14-1.4.2-1mdv2007.1.i586
libphp5_common5-5.2.1-4.2mdv2007.1.i586
php-ctype-5.2.1-1mdv2007.1.i586
php-filter-5.2.1-0.1mdv2007.1.i586
php-ftp-5.2.1-1.1mdv2007.1.i586
php-gettext-5.2.1-1mdv2007.1.i586
php-hash-5.2.1-1mdv2007.1.i586
php-ini-5.2.1-2mdv2007.1.i586
php-json-1.2.1-3mdv2007.1.i586
php-openssl-5.2.1-4.2mdv2007.1.i586
php-posix-5.2.1-1mdv2007.1.i586
php-session-5.2.1-1mdv2007.1.i586
php-simplexml-5.2.1-1mdv2007.1.i586
php-suhosin-0.9.18-4mdv2007.1.i586
php-sysvsem-5.2.1-1mdv2007.1.i586
php-sysvshm-5.2.1-1mdv2007.1.i586
php-timezonedb-2007.3-1mdv2007.1.i586
php-tokenizer-5.2.1-1mdv2007.1.i586
php-xmlreader-5.2.1-1mdv2007.1.i586
php-xmlwriter-5.2.1-1mdv2007.1.i586
php-zlib-5.2.1-4.2mdv2007.1.i586
Proceed with the installation of the 27 packages? (6 MB) (Y/n)
[...]

Wie Du siehst, wird das Paket php-suhosin automatisch installiert, also wird Dein PHP5 von Suhosin standardmäßig sicherer gemacht.

Starte dann Apache2:

/etc/init.d/httpd restart

Nun hast Du ein PHP5 mit Grundfunktionen auf Deinem Server; falls Du besondere PHP5 Module benötigst, kannst Du wie folgt nach ihnen suchen:

urpmi --fuzzy php

Wähle aus der Ausgabe die Module aus, die Du benötigst, installiere sie wie folgt und starte Apache2 neu:

urpmi php-bz2 php-calendar php-ctype php-curl php-dio php-dom php-eaccelerator php-enchant php-esmtp php-event php-exif php-fam php-ffmpeg php-fileinfo php-filepro php-ftp php-gd php-gettext php-gmp php-iconv php-id3 php-idn php-imap php-imlib2 php-mailparse php-mbstring php-mcache php-mcrypt php-mhash php-ming php-mysql php-mysqli php-ncurses php-newt php-odbc php-oggvorbis php-pam_auth php-pcntl php-pcre php-pear-Net_IDNA php-posix php-pspell php-readline php-recode php-session php-shmop php-simplexml php-snmp php-soap php-sockets php-sqlite php-ssh2 php-sysvmsg php-sysvsem php-sysvshm php-tclink php-tcpwrap php-tidy php-xml php-xmlrpc php-zip php5-ini

/etc/init.d/httpd restart


3 Informationen über Deine PHP5 Installation beziehen

Sofern Du nicht bereits virtuelle Hosts in Deiner Apache Installation erstellt hast, ist der Dokumenten-Root der Standardwebseite /var/www/html. Wir erstellen nun eine kleine PHP Datei (info.php) in diesem Verzeichnis (wenn Du virtuelle Hosts erstellt hast, setze sie in irgend einen Host, der PHP aktiviert hat) und sie in einem Browser auf. Die Datei wird viele nützliche Informationen über unsere PHP Installation liefern, wie zum Beispiel die installierte PHP Version.

vi /var/www/html/info.php


<?php
phpinfo(); ?>
Nun rufen wir diese Datei in einem Browser auf (z.B. http://192.168.0.100/info.php):


Wie Du sehen kannst, haben wir die PHP Version 5.2.1.

Wenn alles gut gegangen ist, solltest Du sehen, dass Suhosin an zwei Stellen auf der Seite erwähnt wird:



Das war's. Wenn Du magst, kannst Du Suhosin konfigurieren (siehe http://www.hardened-php.net/suhosin/configuration.html), obwohl Suhosin mit der Standardkonfiguration wunderbar funktioniert, Du solltest also ganz genau wissen, was Du tust.

4 Links

0 Kommentar(e)

Zum Posten von Kommentaren bitte