Mise en place et sécurisation d'un serveur web
Objectifs : Être capable d'installer et de sécuriser un serveur web.
Conditions de réalisation : Environnement : debian
Durée : 2 H
- Vous allez voir à travers ce TP, comment installer, paramétrer et sécuriser un serveur web sous linux en utilisant apache.
- Pour la réalisation de ce TP, vous aurez besoin d'une machine virtuelle debian. Vérifiez bien que votre carte réseau est en accès par pont et que vous avez bien une adresse IP sur le même réseau que la salle à l'aide de la commande ifconfig.
- 1. Pour administrer votre serveur, vous utiliserez un accès distant à l'aide de la commande ssh. Pour cela, vous pouvez taper la commande ssh root@IP_debian. On vous demande de vérifier que la signature du serveur est bien la bonne en l'acceptant puis le mot de passe de connexion. Ensuite, vous pouvez travailler comme si vous étiez sur votre serveur avec l'avantage du copier/coller.
- 2. Sur votre machine Debian, vous allez installer le serveur web apache2 ainsi que php. Vous installerez les paquets suivants : apache2, php5, libapache2-mod-php5 à l'aide de la commande apt-get.
- 3. Testez le bon fonctionnement de votre serveur en créant une page test.php dans le répertoire /var/www contenant le code suivant : (/var/www/ est le répertoire par défaut du serveur web)
<?php
phpinfo();
?>
puis en lançant votre navigateur avec l'URL :
http://@IP_serveur_web/test.php
- 4. Créer un répertoire test dans /var/www/. Copier sur votre serveur à l'aide de la commande scp, quelques fichiers images dans le répertoire /var/www/test/.
- Que se passe t il quand vous tapez directement dans votre navigateur l'URL : http://@IP_serveur_web/test/ ?
- Créer maintenant un fichier index.php vide dans /var/www/test/. Pour comprendre ce qui se passe, consulter le fichier /etc/apache2/mods-available/dir.conf
- 5. On peut sécuriser également un répertoire en jouant sur les droits. Quels droits allez vous mettre pour qu'on ne puisse pas lister le contenu d'un répertoire ?
Maintenant, on veut pouvoir protéger un répertoire à l'aide d'un identifiant et d'un mot de passe. Pour cela, vous allez utiliser les possibilités du fichier
.htaccess
- 6. Tout d'abord, il va falloir informer apache qu'il doit accepter les fichiers .htaccess.
Pour cela, éditez le fichier
/etc/apache2/sites-available/default" en modifiant la ligne
AllowOverride None par
AllowOverride AuthConfig dans la partie concernant le répertoire
/var/www/.
Il faut redémarrer le service pour prendre en compte la modification, vous devez saisir la commande :
service apache2 restart (ce mécanisme est identique quel que soit le service).
Extraits :
Par exemple, la déclaration de votre site à travers Apache :
- ServerName www.votreserveur.fr
- DocumentRoot /var/www/votreSite
<Directory /var/www/votreSite>
- Options FollowSymLinks MultiViews
- AllowOverride AuthConfig
- Order allow,deny
- allow from all
</Directory>
Votre fichier .htaccess :
AuthUserFile /var/www/votreSite/dossierPrive/.htpasswd
AuthGroupFile /dev/null
AuthName "Acces Restreint"
AuthType Basic
<Limit GET POST>
</Limit>
Créez votre fichier .htpasswd :
htpasswd -c /var/www/votreSite/dossierPrive/.htpasswd utilisateur
puis saisissez votre mot de passe
D'après un T.P. de M. Nicolas Trugeon.