Luca Saiu: page officielle du cours « Services Réseau »

Ce cours couvre la configuration et l'administration de certains serveurs réseaux largement déployés dans un environnement Unix.

Cette page est la page web officielle du cours.

Évaluation

Envoyez-moi un rapport de votre travail par mail à la fin de chaque séance. Vous allez être évalués sur la base de votre travail au laboratoire.

Veuillez spécifier dans l'objet de votre mail [Services Réseau], et inclure votre nom et prénom.

Le travail est à réaliser en binôme, mais je vais faire des questions individuelles à chaque étudiant.

Les retards seront pénalisés. Par contre, vous avez le droit de travailler en avance sur les phases que les autres n'ont pas encore commencé, et être particulièrement rapides vous amendera des bonus sur la note finale.

Vous avez le droit de faire plus par rapport à ce qui est demandé. Toute extension raisonnable sera bien appréciée et notée positivement, si vous avez satisfait l'énoncé aussi.


Phase -1: binômes

Le projet est à développer en binôme.
Si vous êtes en nombre impair il pourra y avoir un, et un seul, trinôme, sujet à mon approuvation.

En tout cas, chaque composant d'un groupe, soit-il en binôme ou en trinôme, est responsable de tout le code soumis. « Ce code n'a pas été écrit par moi » n'est pas une excuse acceptable.

Tâche -1.0 : Envoyez-moi, par mail, un message par binôme, indiquant les noms et les adresses mail des composants.


TP 1 : Configuration d'un serveur HTTP

Phase 0 : début

Configurez le serveur HTTP Apache sur votre machine.

Tâche 0.0 : Installez, si nécessaire, le logiciel, et configurez-le. Affichiez une page HTML écrite par vous. Le code HTML doit être syntaxiquement correct, mais peut être banal. Afficher une seule phrase suffit.

Phase 1 : configuration de base, VirtualHost

Tâche 1.0 : Le serveur Apache stocke des fichiers des log. Dans quel répertoire, avec votre configuration actuelle ?

Tâche 1.1 : Modifiez la configuration pour stocker les informations de debug aussi dans vos fichiers de log.

Tâche 1.2 : Si présent dans votre installation, regardez /etc/apache2/conf-available/ et /etc/apache2/conf-enabled. Quel est l'intérêt de ces répertoires ?

Suggestions : Vous pouvez aussi lire la documentation de la distribution, si nécessaire.

Tâche 1.3 : Donnez deux noms alternatifs à votre machine, sans utiliser le service DNS. Pour cette tâche, ce suffit que le nom soit juste visible localement, ou que chaque client soit à configurer localement.

Tâche 1.4 : Configurez le VirtualHost pour chaque nom du serveur. Le serveur doit donner un site web (ici juste une page) différent selon le nom du serveur indiqué par le client dans sa requête HTTP.

Tâche 1.5 : Séparez les fichiers de log de chaque virtualhost, en les faisant apparaître dans des répertoires séparés.


Phase 2: permissions, indices

Tâche 2.1 : Donnez accès « Index » à un répertoire dans votre arborescence, visible à l'extérieur en tant que la ressource /mon-repertoire . Sur le système de fichier local ajoutez un autre répertoire au même niveau (fils du même parent) de mon-repertoire : ce répertoire ne doit pas être accessible de la même façon.
Voilà un exemple de répertoire, sur mon serveur, ayant accès Index.


Phase 3: .htaccess

Tâche 3.1 : Utilisez .htaccess pour rendre un répertoire dans l'arborescence des pages web non lisible par les clients.

Tâche 3.2 : Utilisez .htaccess pour rendre un répertoire dans l'arborescence des pages web privé, juste accessible par les clients en donnant un nom d'utilisateur et un mot de passe.

Tâche 3.3 : Utilisez .htaccess pour réaliser une rédirection HTTP. Quel est l'intérêt des rédirections ?

Tâche 3.4 : Réalisez une autre rédirection entièrement en HTML, sans utiliser .htaccess. Quels sont les avantages et le désavantages de cette alternative ?

Tâche 3.5 : Est-ce qu'on a des alternatives à .htaccess ? Quelles configuration pouvez-vous réaliser sans utiliser .htaccess? Quelle sera la différence en performances, et pourquoi ?

Tâche 3.6 : Certaines pages de votre site web ne seront pas secrètes, mais quand même vous souhaitez qu'elle ne soient pas indicisées par les moteurs de recherche.
Achevez ce changement de configuration en utilisant robots.txt .


Phase 4: modules

Tâche 4.0 : Qu'est-ce que c'est un module ? Quel est l'intérêt d'avoir des modules ? En quel langage de programmation on écrit typiquement un module ? Est ce différent par rapport au langage fourni à l'utilisateur par le module ? (certains modules permettent d'avoir des services dynamiques, avec du code exécuté sur le serveur).

Tâche 4.1 : Vous devez fournir (aussi) des pages web chiffrées. Écoutez sur le port 443 aussi, en l'utilisant pour fournir accès en HTTPS. Vous allez avoir besoin de mod_ssl.

Tâche 4.2 : Configurez et utilisez un autre module à votre plaisir. Suggestion : la réécriture des URLs est utile.


Phase 5: PHP

Les tâches 5.1a et 5.1b sont à exécuter au même temps. La tâche 5.1b vous sera utile pour développer 5.1a.

Tâche 5.1a : Activez mod_php. Écrivez une page web HTML contenant du PHP embarqué. Votre code PHP doit sommer tout nombre entre 1 et 100, et afficher le résultat dans la page web. Le calcul sera entièrement exécuté côté serveur.

Tâche 5.1b : En cas d'erreurs pendant l'exécution du code PHP, où pouvez-vous trouver les messages d'erreur ?

Tâche 5.2 : Quel est l'intérêt de PHP? Quels sont les avantages et les désavantages ? Connaissez-vous des alternatives ?


Phase 6: performances

Tâche 6.1 : Votre serveur HTTP peut adopter plusieurs politiques d'utilisation de processus et threads. Expliquez en détail les alternatives disponibles dans la version d'Apache que vous utilisez.
Changez le défaut. Comment on peut tester les performances ? Collaborez en utilisant deux ordinateurs.

Tâche 6.2 : Combien de requêtes par seconde pouvez-vous servir, en local ? Et à partir d'une autre machine en réseaux local ? Spéficiez comment vous avez obtenu votre résultat.


Autres TPs

Lien



[hacker emblem]

Luca Saiu — IUT de Villetaneuse, Département Réseaux et Télécommunications
Mis à jour le 12 mars 2019.