Activité Installation/Configuration du service Apache

Page 1 sur 5Lecteur de document UniversityLib

Activité Installation/Configuration du service Apache

System and Network Administration · lab

Voir tous les documents en réseaux

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