Activité Installation/Configuration du service Apache

Ce laboratoire porte sur l'installation et la configuration du serveur web Apache sur un système GNU/Linux RedHat. Il permet d'apprendre à installer Apache, configurer ses paramètres de base, gérer les pages d'accueil, contrôler l'indexation des répertoires, mettre en place des pages personnelles utilisateurs, créer et exécuter des scripts CGI, sécuriser l'accès à certains répertoires, gérer plusi

D'après le document Activité Installation/Configuration du service Apache

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Activité Installation/Configuration du service Apache

Document source

Activité Installation/Configuration du service Apache

System and Network Administration · PDF · 5 pages

Afficher l'aperçu du document

Consulter le document original →

Ce laboratoire porte sur l'installation et la configuration du serveur web Apache sur un système GNU/Linux RedHat. Il permet d'apprendre à installer Apache, configurer ses paramètres de base, gérer les pages d'accueil, contrôler l'indexation des répertoires, mettre en place des pages personnelles utilisateurs, créer et exécuter des scripts CGI, sécuriser l'accès à certains répertoires, gérer plusieurs sites virtuels sur une même machine et suivre l'activité du serveur. Pour réaliser cette activité, un accès administrateur à une machine Linux avec RedHat et le paquet httpd est nécessaire.

Objectifs

  • Installer et configurer un serveur Apache sur un PC GNU/Linux (RedHat).
  • Définir l’indexation d’un répertoire sur un site web.
  • Configurer la gestion des pages personnelles des utilisateurs.
  • Mettre en place une sécurité d’accès par authentification ou par source.
  • Implémenter plusieurs sites virtuels sur un même serveur.
  • Identifier et gérer les scripts CGI sur le serveur.

Prérequis et installation

  • Système d'exploitation GNU/Linux RedHat.
  • Paquetage Apache nommé httpd.
  • Accès administrateur pour installer et configurer le serveur.
  • Connaissances de base en administration système Linux et en configuration de serveurs web.

Installation et configuration de base

1. Vérifiez si Apache est installé et connaître sa version :

rpm -q httpd
httpd -v

Si Apache n'est pas installé, installez-le avec :

yum install httpd

Assurez-vous que le service Apache est activé aux niveaux d'exécution 3, 4 et 5 :

chkconfig --list httpd
chkconfig httpd on

Démarrez le service :

service httpd start

2. Éditez le fichier de configuration principal /etc/httpd/conf/httpd.conf et répondez aux questions :

  • Port d'écoute : Trouvez la directive qui spécifie le port TCP (par défaut 80).
  • Fichiers de configuration inclus : Identifiez les autres fichiers chargés depuis httpd.conf et leur emplacement.
  • Chargement des modules : Repérez la directive qui charge un module.
  • Identité Unix : Sous quel utilisateur et groupe le serveur s'exécute-t-il ? Donnez UID et GID.
  • Répertoire racine : Quel est le répertoire racine des documents servis ?
  • Page par défaut : Quelle page est renvoyée lorsqu'une URL correspond à un répertoire ?
  • Traitement des URLs CGI : Comment sont traitées les URLs de la forme http://serveur/cgi-bin/toto ?
  • Fichiers de logs : Quels fichiers sont générés, où sont-ils placés, quel est leur format et comment est-il contrôlé ?

Page d'accueil et pages par défaut

1. Chargez la page d'accueil du serveur Apache hébergé sur votre machine avec l'URL :

http://serveur/

2. Essayez de charger la page d'accueil des serveurs Apache des autres groupes.

3. Observez la page d'accueil : notez la version d'Apache et vérifiez si la documentation est installée.

4. Localisez cette page d'accueil dans le système de fichiers en recherchant la directive DocumentRoot dans httpd.conf.

5. Renommez la page d'accueil en index.txt :

mv /var/www/html/index.html /var/www/html/index.txt

Essayez d'accéder à http://serveur/ à nouveau. Expliquez pourquoi la page ne s'affiche plus.

6. Accédez à l'URL http://serveur/index.txt et notez le résultat. Expliquez ce comportement.

7. Remettez la page d'accueil d'origine :

mv /var/www/html/index.txt /var/www/html/index.html

8. Créez une nouvelle page HTML minimale nommée index.html à la racine du site :

echo "<html><body>Ma page d'accueil</body></html>" > /var/www/html/index.html

Relancez le service Apache :

service httpd restart

9. Accédez à votre page web via http://serveur/. Vérifiez si elle est accessible depuis une autre machine et notez l'URL utilisée.

10. Observez les logs pour vérifier que l'accès est bien enregistré :

tail -f /var/log/httpd/access_log

Contrôler l'indexation d'un répertoire

1. Si l'indexation est désactivée dans un répertoire et qu'aucun fichier par défaut n'est présent, une erreur s'affiche. Si elle est activée, le contenu du répertoire est listé.

2. Renommez la page d'accueil :

mv /var/www/html/index.html /var/www/html/index.html.old
mv /var/www/html/index.txt /var/www/html/index.txt

Essayez de lister le répertoire racine via http://serveur/. Notez si la liste s'affiche.

3. Recherchez la clause contrôlant l'indexation :

grep -n "<Directory /var/www/html>" /etc/httpd/conf/httpd.conf

Dans cette section, commentez la ligne commençant par Options et ajoutez :

Options Indexes FollowSymLinks

Enregistrez, redémarrez Apache et vérifiez l'effet. Puis remettez la configuration initiale pour bloquer l'indexation.

4. Créez un sous-répertoire webftp :

mkdir /var/www/html/webftp

Pour autoriser uniquement ce répertoire à être indexé, ajoutez dans httpd.conf :

<Directory /var/www/html/webftp>
Options Indexes
order allow,deny
allow from all
</Directory>

Placez des pages HTML dans ce répertoire et vérifiez que l'affichage et la navigation sont autorisés depuis toutes les stations du réseau.

Gestion des pages personnelles

1. Vérifiez la présence de la directive :

UserDir public_html

Elle permet aux utilisateurs de publier leurs pages personnelles dans un répertoire public_html situé dans leur dossier personnel.

2. Vérifiez ou ajoutez la section suivante dans httpd.conf :

<Directory /home/*/public_html>
order allow,deny
allow from all
</Directory>

3. Pour permettre aux utilisateurs de gérer leurs pages, ils doivent créer eux-mêmes le répertoire public_html dans leur home et y placer leurs fichiers.

4. Par exemple, l'utilisateur stagex crée :

mkdir /home/stagex/public_html
echo "<html><body>Bienvenue</body></html>" > /home/stagex/public_html/accueil.html

L'utilisateur peut-il accéder à sa page via :

http://serveur/~stagex/accueil.html

Vérifiez l'accès et corrigez les permissions si nécessaire.

Script CGI simple

1. Écrivez un script CGI en shell BASH nommé date qui renvoie la date et l'heure dans une page HTML. Placez-le dans le répertoire /var/www/cgi-bin/ :

#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "<html><body>Date et heure : $(date)</body></html>"

Rendez-le exécutable :

chmod +x /var/www/cgi-bin/date

Vérifiez que le répertoire /var/www/cgi-bin/ est configuré pour exécuter les scripts CGI dans httpd.conf.

2. Modifiez la configuration pour que tous les fichiers suffixés .sh soient considérés comme des CGI et exécutés.

3. Écrivez un script CGI listeprocs.sh qui affiche la liste des processus d'un utilisateur donné :

#!/bin/bash
echo "Content-type: text/html"
echo ""
user=$(echo $QUERY_STRING | sed -n 's/^user=\([^&]*\).*$/\1/p' | sed "s/%20/ /g")
echo "<html><body>"
echo "<h1>Processus de l'utilisateur $user</h1>"
ps -u $user
echo "</body></html>"

4. Créez une page HTML avec un formulaire simple pour saisir le nom d'utilisateur et appeler ce CGI :

<html>
<body>
<form action="/listeprocs.sh" method="get">
Nom utilisateur : <input type="text" name="user" />
<input type="submit" value="Afficher les processus" />
</form>
</body>
</html>

Protection des accès

1. Créez un répertoire secret dans l'arborescence web :

mkdir /var/www/html/secret
echo "<html><body>Zone secrète</body></html>" > /var/www/html/secret/index.html

Configurez Apache pour que ce répertoire ne soit accessible que depuis le serveur lui-même :

<Directory /var/www/html/secret>
order deny,allow
deny from all
allow from 127.0.0.1
</Directory>

Testez l'accès depuis une autre machine. Apache doit renvoyer un code d'erreur (403 Forbidden). Vérifiez les logs.

2. Pour protéger un sous-site privé /var/www/html/prive accessible uniquement à certains comptes Apache :

mkdir /var/www/html/prive
echo "<html><body>Site privé</body></html>" > /var/www/html/prive/index.html

Créez un fichier .htaccess dans ce répertoire :

AuthUserFile /etc/httpd/users
AuthName "Accès privé"
AuthType Basic
require valid-user

3. Créez un premier compte Apache :

cd /etc/httpd/
htpasswd -c users admin

Entrez et confirmez le mot de passe.

4. Vérifiez le fichier /etc/httpd/users qui contient les mots de passe cryptés.

5. Ajoutez d'autres comptes :

htpasswd users toto

6. Testez l'accès à http://serveur/prive. Si la protection ne fonctionne pas, rechargez la configuration :

service httpd reload

7. Vérifiez la section <Directory /var/www/html> dans httpd.conf et assurez-vous que :

AllowOverride None

8. Ajoutez une directive pour le répertoire privé :

<Directory /var/www/html/prive>
AllowOverride AuthConfig
Options -Indexes
</Directory>

9. Retestez l'accès avec succès. N'oubliez pas de relancer le navigateur lors du changement de compte.

10. Observez le trafic HTTP avec un outil comme ethereal lors d'un accès distant. Notez que le mot de passe est transmis en clair (non chiffré).

Serveurs virtuels

1. Donnez plusieurs noms à votre machine en modifiant /etc/hosts ou le DNS.

2. Configurez Apache pour chaque hôte virtuel avec une page d'index différente en ajoutant dans httpd.conf :

<VirtualHost *:80>
ServerName site1.exemple.com
DocumentRoot /var/www/site1
</VirtualHost>

<VirtualHost *:80>
ServerName site2.exemple.com
DocumentRoot /var/www/site2
</VirtualHost>

3. Testez la configuration en accédant aux différents noms de domaine.

4. Pour séparer les logs d'accès de chaque serveur virtuel, configurez des fichiers de log distincts :

CustomLog /var/log/httpd/site1_access.log combined
CustomLog /var/log/httpd/site2_access.log combined

Réglages d'exécution et suivi

1. Vérifiez le nombre de processus Apache au démarrage et le maximum simultané :

ps aux | grep httpd | wc -l

2. Modifiez la configuration pour limiter ces nombres à 4 et 25 respectivement dans httpd.conf (paramètres StartServers, MaxClients ou similaires).

Redémarrez Apache :

service httpd restart

Vérifiez avec :

ps aux | grep httpd | wc -l

3. Suivez le journal des accès en temps réel :

tail -f /var/log/httpd/access_log

4. Demandez à des clients (navigateurs Lynx, Konqueror, Firefox) d'accéder à votre serveur et observez les entrées dans le journal.

5. Interprétez les champs des logs, notamment les informations sur le client et les codes de retour HTTP (200 pour succès, 404 pour fichier non trouvé, etc.).

Résultats attendus

  • Apache installé et fonctionnel, écoutant sur le port 80.
  • Page d'accueil accessible via http://serveur/ et affichant la version d'Apache.
  • Indexation des répertoires contrôlée selon la configuration (affichage du contenu ou erreur).
  • Pages personnelles accessibles via http://serveur/~utilisateur/.
  • Scripts CGI exécutés et renvoyant des pages HTML dynamiques.
  • Accès restreint aux répertoires protégés par authentification ou par adresse IP.
  • Plusieurs sites virtuels fonctionnels sur une même machine avec logs séparés.
  • Nombre de processus Apache ajusté selon les ressources disponibles.
  • Logs d'accès affichant en temps réel les requêtes des clients.

Pièges courants

  • Ne pas démarrer ou activer le service Apache après installation.
  • Modifier httpd.conf sans redémarrer ou recharger le service.
  • Permissions incorrectes sur les répertoires utilisateurs ou pages web empêchant l'accès.
  • Oublier d'autoriser l'exécution des scripts CGI dans la configuration.
  • Ne pas configurer correctement les directives AllowOverride empêchant la prise en compte des fichiers .htaccess.
  • Mot de passe transmis en clair lors de l'authentification Basic, attention à la sécurité.
  • Confusion entre les chemins absolus et relatifs dans les directives Apache.
  • Ne pas vérifier les logs pour diagnostiquer les erreurs d'accès ou de configuration.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions