Table des matières
Résumé
Rares sont les serveurs Apache qui ne sont pas accompagnés du module PHP permettant d'interpréter des scripts sur le serveur. Après avoir lu le chapitre traitant des questions générales de sécurité (Chapitre 1, Principes généraux), les mots « scripts » et « serveur » dans une même phrase doivent inquiéter. A juste titre. PHP est probablement l'un des vecteurs de nuisances les plus utilisés aujourd'hui. Même s'il est parfois impossible de controller la qualité du code PHP déposée sur votre serveur, on pourra prendre un certain nombre de mesures afin de « limiter les dégats » en cas d'exploitation de ce code. Ce chapitre en présente quelques unes.
PHP fonctionne comme module d'Apache. L'installation de PHP consiste donc à installer ce module et à configurer Apache pour l'utiliser.
root@ubuntu:~#apt-get install libapache2-mod-php5
Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Reading state information... Fait Les paquets supplémentaires suivants seront installés : libxml2 php5-common Paquets suggérés : php-pear Paquets recommandés : xml-core Les NOUVEAUX paquets suivants seront installés : libapache2-mod-php5 libxml2 php5-common 0 mis à jour, 3 nouvellement installés, 0 à enlever et 8... Il est nécessaire de prendre 2754ko/3515ko dans les archives. Après dépaquetage, 7782ko d'espace disque supplémentaire... Souhaitez-vous continuer [O/n] ?O
Réception de : 1 http://security.ubuntu.com feisty-security/main php5-... Réception de : 2 http://security.ubuntu.com feisty-security/main libap.. 2754ko réceptionnés en 1m5s (41,9ko/s) Sélection du paquet libxml2 précédemment désélectionné. (Lecture de la base de données... 16145 fichiers et répertoires déjà install... Dépaquetage de libxml2 (à partir de .../libxml2_2.6.27.dfsg-1ubuntu3_i386.de... Sélection du paquet php5-common précédemment désélectionné. Dépaquetage de php5-common (à partir de .../php5-common_5.2.1-0ubuntu1.2_i38... Sélection du paquet libapache2-mod-php5 précédemment désélectionné. Dépaquetage de libapache2-mod-php5 (à partir de .../libapache2-mod-php5_5.2.... Paramétrage de libxml2 (2.6.27.dfsg-1ubuntu3) ... Paramétrage de php5-common (5.2.1-0ubuntu1.2) ... Paramétrage de libapache2-mod-php5 (5.2.1-0ubuntu1.2) ... Creating config file /etc/php5/apache2/php.ini with new version * Forcing reload of web server (apache2)... [ OK ] root@ubuntu:~#
Lors de l'installation, les fichiers de configuration Apache permettant de
charger le module PHP sont installés dans répertoire
/etc/apache2/modules-available/
.
Il suffit donc d'activer le module comme vu précédemment :
root@ubuntu:~# a2enmod php5
Module php5 installed; run /etc/init.d/apache2 force-reload to enable.
root@ubuntu:~# /etc/init.d/apache2 force-reload
* Forcing reload of web server (apache2)... [ OK ]
root@ubuntu:~#
On pourra vérifier simplement que PHP est bien installé et fonctionne correctement en créant une page dynamique PHP à la racine du site avec la simple commande :
echo "<? phpinfo(); ?>" > /var/www/index.php
Il suffira ensuite de faire pointer un navigateur sur l'URL
http://<ip_serveur>/info.php
pour obtenir
une page d'information sur le
serveur Apache/PHP.
Il conviendra de supprimer cette page (ou d'en restreindre l'accès).
Les données renvoyées par phpinfo()
sont très prisées
par les personnes à la recherche de vecteurs de nuisances. Pour la même raison, on
évitera de créér une URL info.php
contenant un appel
à phpinfo()
, car cette URL est souvent testée afin d'obtenir
des informations sur les version et configurations déployées.