Activité Installation/Configuration du service Apache
Activité Installation/Configuration du service Apache
Objectifs :
– Appliquer l'installation et la configuration d'un serveur Apache sur un PC GNU/Linux
(RedHat).
– Définir l’indexation d’un répertoire sur un site.
– Appliquer la configuration de la gestion des pages personnelles.
–
– Appliquer la sécurité des accès au serveur par authentification ou par source.
–
Implémenter plusieurs sites virtuels sur un même serveur.
Identifier les scripts cgi ou autres sur le serveur.
EXERCICE 1 - Installation et configuration de base
1- Apache est livré dans le paquetage httpd. Est-il installé ? Si oui, quelle est sa version ?
Installer (si ce n’est pas déjà fait ) le paquetage httpd et assurez vous qu’il est lancé dans les
niveaux d’exécution 3, 4 et 5.
2- Le fichier de configuration principal du serveur est /etc/httpd/conf/httpd.conf
Editer ce fichier et répondre aux questions suivantes, qui se réfèrent toutes à la configuration
par défaut :
1. Quel directive spé cifie le port TCP sur lequel écouter ? Quel est le port par défaut ?
2. Il y a-t-il d’autres fichiers de configuration chargés depuis httpd.conf ? Où sont-ils
placés ? Donner leur liste.
3. Quelle est la directive chargeant un module ?
4. Sous quel identité́ unix (utilisateur et groupe) le serveur va-t-il s’exécuter ? Donner les
UID et GID correspondants.
5. Quel est le répertoire racine pour les documents (pages) servis ?
6. Quelle page Apache renvoie-t-il lorsque l’URL demandée correspond à un ré́ pertoire ?
7. Comment sont traité es les URLs de la forme http://serveur/cgi-bin/toto ?
8. Quels sont les fichiers de logs gé né ré s ? Où sont -ils placé s ? Quel est leur format et
comment est-il contrôlé́ ?
EXERCE 2 - Page d'accueil et pages par défaut
1. Comment charger cette page d'accueil du serveur Apache hébergé par votre propre
machine ?
2. Pouvez-vous charger la page d'accueil des serveurs Apache des autres groupes ?
3. Observer la page d'accueil : quelle est la version d'Apache ? la documentation
d'Apache est-elle installée ?
4. Où se trouve et comment s'appelle cette page d'accueil sur le système de fichiers ?
5. Pour la localiser, trouvez dans le fichier httpd.conf, la ligne débutant par
Publicité
DocumentRoot, puis lire la page d'accueil.
MP2L – Administration système et réseau
Page 1
Activité Installation/Configuration du service Apache
6. Renommez index.txt cette page d'accueil sur votre serveur. Pouvez vous l'obtenir
comme précédemment, à partir de la syntaxe http://serveur/ ? Savez-vous pourquoi ?
7. Qu'obtenez-vous en passant l'URL : http://serveur/index.txt ? Expliquez pourquoi.
Remettre la page d'accueil d'origine et vérifier.
8. Créez rapidement une petite page HTML portant le nom index.html et placez-la à la
racine du site. Qu'obtenez-vous en demandant : http://serveur/ ? Pourquoi ?
9. Créer une page HTML minimale et la placer à la racine de l’arborescence servie.
Lancer le service httpd. Dans quel fichier de log peut-on constater le démarrage ?
10. Accéder à votre page web. Quelle URL utiliser ? Peut-on y accéder depuis une autre
machine de la salle ? Avec quelle URL ? Observe-t-on des traces dans les logs ?
Exercive 3 - Contrôler l'indexation d'un répertoire
1. Si cette indexation est bloquée dans un répertoire, alors en l'absence d'un quelconque
des fichiers par défaut listés à la clause DirectoryIndex, on obtient une page d'erreur.
En revanche, si cette option d'indexation est activée, on obtient l'affichage du contenu
du répertoire demandé.
2. Renommez la page d'accueil en index.txt, puis votre page index.html en index.html.old.
Pouvez-vous alors lister le répertoire racine du WEB par http://serveur/ ?
3. Cherchons la clause qui contrôle cette indexation. A l'aide d'une commande grep,
rechercher le numéro de la ligne comportant "<directory /var/www/html>".
Mettre en commentaire la ligne commençant par Options et insérer la ligne Options
Indexes FollowSymLinks
Enregistrer et relancer le serveur. Vérifier l'effet. Ensuite revenir à la situation initiale et
re-bloquer l'indexation du répertoire principal /var/www/html
4. Créer un sous-répertoire à la racine du WEB /var/www/html, nommé webftp
Comment permettre à ce répertoire seulement d'être indexé ? Pour cela créer une section :
<Directory var/www/html/webftp>
Options Indexes
order allow,deny
allow from all
</Directory>
Placer des pages HTML dans ce répertoire. et vérifier alors qu'affichage et parcours
sont autorisés de toutes les stations du réseau
Exercice 4 - Les "pages personnelles"
Comme "webmaster" du site officiel de votre établissement, vous voulez publier les pages
Publicité
personnelles de vos collègues mais pas les gérer vous-mêmes, voire même les laisser gérer
eux-mêmes leur site :
1. Vérifier bien la présence de la clause UserDir public_html dans le fichier de
configuration. Trouvez ce qu'elle signifie
2. Vérifier la présence ou modifier éventuellement pour avoir une directive :
<Directory /home/*/public_html>
order allow,deny
allow from all
MP2L – Administration système et réseau
Page 2
Activité Installation/Configuration du service Apache
</Directory>
Que faut-il alors faire pour permettre à vos utilisateurs de publier et de gérer eux-
mêmes leurs "pages persos" ?
3. L'utilisateur stagex (x=1 ..10) crée lui-même le répertoire de son site web, et y place
une page d'accueil accueil.html
4. Peut-il y accéder ?
EXERCICE 5 - Script CGI simple
1- Écrire en shell BASH un script CGI nommé date qui renvoie la date et l’heure dans une
page HTML. Où placez-vous le script ? Faut-il configurer quelque chose ?
2- Modifier la configuration pour que toutes les pages suffixé es par
comme des CGI et exé cuté es.
.sh soient considé ré es
3- Ecrire un CGI qui permette d’afficher la liste des processus appartenant à un utilisateur
donné.
http://serveur/listeprocs.sh?user=toto afficherait dans une page HTML la liste des processus
de toto s’exé cutant sur le serveur.
4- Ecrire une page HTML avec un formulaire simple permettant la saisie du nom de
l’utilisateur et qui via un bouton permet de charger le cgi précédent.
EXERCICE 6 - Protection des accès
1- Créez un répertoire secret dans l’arborescence web et placez y une page HTML.
Configurez Apache afin que vous ne puissiez accéder au répertoire secret que depuis le
serveur lui même.
Quel est le code renvoyé́ par Apache lorsqu’on tente d’accéder à ce répertoire depuis une
autre machine ? Qu’observe-t-on dans les logs ?
, supposons qu’il s’agit du sous
2- Protéger l’accès au sous-site privé d’un établissement
répertoire /var/www/html/prive. Il ne devra être accessible qu
Publicité
'à un ensemble limité de
comptes Apache (et non Linux ) à créer . Une requête s’adressant à ce répertoire protégé́
provoquera l’affichage d’une boite de dialogue par laquelle l’utilisateur devra s’authentifier
(nom et mot de passe).
-
1. Créer le répertoire /var/www/html/prive, y placer quelques pages HTML.
Tester leur accessibilité pour tous. Sinon penser à modifier les permissions Linux sur
ces fichiers.
2. Créer dans ce répertoire à protéger le fichier .htaccess. En voici une é criture standard :
AuthUserFile /etc/httpd/users
AuthName "Accès privé"
AuthType Basic
require valid-user
3. Dans ces conditions où se trouvera le fichier d’authentification ?
MP2L – Administration système et réseau
Page 3
Activité Installation/Configuration du service Apache
4. Créer un premier compte Apache avec la commande htpasswd .
cd /etc/httpd/
htpasswd -c users admin
---> mot de passe demandé (admin), puis confirme.
5. Examiner le fichier /etc/httpd/users
L’utilitaire htpasswd a créé
/etc/httpd, et y a enregistré admin avec son mot de passe crypté .
(option -c) le fichier users dans le ré pertoire courant
, ici
6. Ajouter un second compte, toto, puis d’autres
htpasswd users toto
---> mot de passe demandé, puis confirmé
7. Tester l’accès au ré pertoire http ://serveur/prive. Pourquoi la protection ne semble-t-
elle pas fonctionner ? (remarque : service httpd reload permet de prendre en compte
les changements de configuration)
8. Rechercher dans le fichier de configuration la section <Directory /var/www/html> qui
fixe des directives par dé faut pour le site principal . Par sé curité mettre si né cessaire la
clause AllowOverride None
9. Ajouter une directive concernant le ré pertoire privé
<Directory /var/www/html/prive>
AllowOverride ...
Publicité
Options -Indexes
.........
<Directory>
10. Retester normalement avec succès ! N’oubliez pas de relancer le navigateur quand on
change de compte.
11. Observez le trafic HTTP avec ethereal lors d’un accès au ré pertoire privé depuis une
machine distante. Où se trouve le mot de passe ? Est-il lisible ?
EXERCICE 7 - Serveur “virtuel”
Lorsqu’une machine doit hé berger plusieurs sites webs diffé rents et même si elle ne dispose
que d’une adresse IP, on utilise la technique des “serveurs virtuels” (Virtual Hosts).
1- Donner plusieurs noms à votre machine (soit via /etc/hosts soit en modifiant le DNS de
votre réseau).
2- Configurez Apache, en donnant à chaque hôte virtuel une page d’index différente.
3- Tester votre configuration.
4- Comment sé parer les logs d’accès de chaque serveur virtuel ?
MP2L – Administration système et réseau
Page 4
Activité Installation/Configuration du service Apache
Exercice 8 - Réglages d'exécution et suivi
Modifications de paramètres d'exécution
Supposons que le serveur d'établissement soit hébergé par une machine aux ressources
limitées, et que le nombre de requêtes qui lui sont adressées n'est jamais considérable.
1. Combien y a t-il de serveurs WEB en exécution lors du démarrage d'Apache, et 150 au
maximum simultanément. Comment le vérifiez-vous ?
2. Votre capacité mémoire est limitée. Ramenez ces nombres à 4 et à 25. Redémarrez
Apache. Vérifiez avec une commande ps
Suivi du journal des accès
1. Passer la commande (à expliquer) : tail -f /var/log/httpd/access_log
2. observer le contenu de la console
3. Demander aux groupes voisins de jouer les rôles de clients WEB (avec un browser
lynx, Konqueror ou Firefox) et de passer des requetes http://serveur/, en direction de
votre serveur, et observer les lignes de access_log affichées "en direct"
4. Interpréter les champs de chaque ligne, en particulier repérer les renseignements qui
concernent le client et les codes de retour des diverses requêtes (200 réussie, 404 "not
found" ...)
MP2L – Administration système et réseau
Page 5