HTTP: Un serveur: Apache

Les documentations du serveur HTTP Apache sont disponibles en ligne. Vous pouvez soit vous connecter aux US (http://www.apache.org/docs/) soit utiliser le miroir à l'essi (http://www.essi.fr/apache/) ou en local dans /u/I3S/buffa/www/cours/internet/DocsApache/docs/*

Vous allez installer un serveur sur votre machine, qui va tourner sur le port 8080, le port 80 (et tous les ports de nº inférieurs à 1024) n'étant accessibles qu'aux process tournant sous l'user ID root.

Compilation et installation

La première chose à faire est de récupérer le programme et les documentations de base. Elles sont installées en local pour éviter le délai du à la lenteur du réseau mais le format est identique à ce que vous auriez trouvé sur le site officiel. Vous êtes donc dans les conditions réelles d'utilisation. Voici le mode opératoire :

mkdir $HOME/my_dir
cd my_dir
cp /u/I3S/buffa/www/cours/internet/apache_1.0.0.tar.gz .
gunzip -c apache_1.0.0.tar.gz | tar xovf -
Remarque : vous pouvez aussi télécharger apache_1.0.0.tar.gz

Débrouillez vous maintenant pour compiler le programme (commencez par lire le fichier README). Vous n'avez normalement pas à changer les fichiers de configuration, mais vous pouvez y jeter un oeil quand même.

Notes importantes pour la suite :

Configuration du serveur

Votre nouvel employeur vous a demandé d'installer un serveur qui vérifie les spécifications suivantes :

  1. La base de toute l'arborescence des documents doit être my_dir/Docs/.

  2. Les logs et les fichiers de configuration doivent être dans my_dir/logs/ et my_dir/conf.

  3. Les accès seront dans logs/acces.log, les erreurs dans logs/erreur.log, les clients utilisés dans logs/client.log.

  4. Le sous-directory my_dir/Docs/private/my-machine/ ne pourra être accédé que par votre propre machine et aucune autre (voir "authentification" dans la doc)

  5. Le sous-directory my_dir/Docs/private/me/ ne pourra être accédé que par vous (avec mot de passe, donc "authentification").

  6. L'administrateur du serveur devra être vous-même, joignable à une adresse e-mail valide.

  7. Les requêtes pour les URL http://votre-machine.essi.fr:8080/inria/* devront être redirigées vers les pages correspondantes à l'INRIA (http://www.inria.fr/*).

  8. Les images présentes dans le directory my_dir/images/ devront être accessibles par http://votre-machine.essi.fr:8080/images/.

  9. Les fichiers présents dans le sous-directory my_dir/images devront avoir le type image/gif par défaut.

  10. Les utilisateurs auront leur espace utilisateur accessible par http://votre-machine.essi.fr/~login/, qui devra correspondre au directory Unix ~login/www/.

  11. Une requête erronée (404) doit avoir une réponse en francais du type Ce fichier n'existe pas. Vous pouvez envoyer un mail à votre-login@essi.fr

  12. Une requête non autorisée doit être redirigée sur la page de garde de l'essi (http://www.essi.fr/).

  13. Les scripts CGI seront dans my_dir/Docs/misc/cgi-bin et accessibles de manière indifférenciée par http://votre-machine.essi.fr:8080/cgi-bin/nom-du-script ou http://votre-machine.essi.fr:8080/htbin/nom-du-script.

  14. Est il ici possible de lire le source d'un script cgi-bin ? Qu'en pensez vous ? (Pirates ou hackers furieux).

  15. Les fichiers dans my_dir/Docs/as-is/ sont destinés à être envoyés tels que, sans que le serveur ne rajoute d'entête. Quelles sont les utilisations possibles de tels fichiers ? Pour les hackers.

  16. Votre machine n'ayant pas d'alias DNS (c-à-d qu'elle ne possède pas plusieurs noms équivalents comme jessica.essi.fr et www.essi.fr), il n'est pas possible que le serveur se comporte différemment si il est accédé par www.societe1.fr ou par www.societe2.fr. Comment faudrait il faire, si les alias DNS existaient ? Quels sont les avantages d'une telle pratique ? Connaissez vous des serveurs "virtuels" ? Pour les véritables Hackers.
Si vous n'êtes pas arrivés au bout, rien de grave. Essayez quand même d'avoir une bonne idée des possibilités offertes par un serveur. Si vous avez à lancer un serveur en tant que root, n'oubliez surtout pas de changer son uid à autre chose que root (au fait, pourquoi ?).