Mon réseau d’entreprise
17.1 Le serveur web
Choisir son serveur web sérieusement n’est pas facile. Il faut commencer par établir ses critères. Si nous prenons la sécurité comme critère, alors il faut choisir un serveur utilisant une licence libre. Il faut aussi que le code soit vivant, c’est à dire qu’il a le support d’une grande communauté et que les problèmes soient rapidement corrigés. En 2018, trois serveurs répondent à ces critères : apache, nginx et lighttpd.
Le serveur apache est le plus lourd des trois, mais aussi le plus complet et le plus facile à configurer. Les serveurs nginx et lighttpd sont plus rapides mais disposent de moins de fonctionnalités et sont un peu moins faciles à configurer.
Pour la plupart des installation, le serveur web ne chargera pas la machine. De plus, la configuration sera simple. Donc, les trois sont équivalents. Un usage avancé, pour coupler performance et fonctionnalité consiste à mettre un serveur nginx ou lighttpd en frontal. Ce serveur distribura la charge vers des serveurs apache pour les applications demandant des fonctionnalités avancées et des serveurs nginx ou lighttpd pour gagner en performance sur les autres. Mais c’est pour des utilisations très avancées.
Un autre usage consiste à installer des serveurs web pour configurer des matériels embarqués, comme un téléphone ou un Arduino. Dans ce cas, le critère devient l’encombrement mémoire.
17.1.1 Installation d’Apache
Apache est un des logiciels de la fondation Apache. Comme la fondation Apache héberge de nombreux projets, le serveur web porte le nom d’Apache HTTP Server.
C’est souvent une bonne idée de l’installer dans une machine virtuelle. Mais ce n’est pas obligatoire. Il faut :
-
1. Installer apache v2 (apt-get install apache2) ;
-
2. Vérifier que apache tourne : la commande pgrep -l apache doit lister plusieurs processus
$ pgrep -l apache2 2561 apache2 2562 apache2 2563 apache2
-
3. Installer elinks ;
-
4. Lancer la commande elinks http://localhost/ vous devez avoir une page par défaut (figure 17.1) ;
-
5. Si le serveur est accessible depuis une station graphique, il est possible d’utiliser un navigateur plus lourd, comme dans la figure 17.2.
-
6. Lire cette page, elle contient toutes les informations utiles pour débuter ;
-
7. Regarder les fichiers de configuration d’apache (/etc/apache2) ;
-
8. Trouver, parmi ces fichiers où est mentionné le DocumentRoot
grep -r DocumentRoot /etc/apache2
C’est une variable indiquant où apache va chercher les fichiers du serveur web.
Les noms des répertoires où sont placés les fichiers dépendent de la version installée et aussi de la distribution. Par contre, ces noms sont toujours définis dans un fichier de configuration.
-
9. Créer un fichier index.html dans /var/www, changer DocumentRoot ;
-
10. Relancer apache (systemctl restart apache2 ). Il convient de relancer tout serveur dont on vient de modifier la configuration.
-
11. Vérifiez que votre page est bien en place avec elinks.
Le premier(?) serveur web sous GNU/Linux vient d’être créé, vous pouvez ajouter du contenu.
17.1.2 Les modules d’apache
Les modules d’apache sont rangés dans le répertoire /etc/apache2/mods-available (modules disponibles). Pour les activer, il faut que le module soit présent dans le répertoire conf-enabled (mis en service).
Pour activer un module, il est possible d’utiliser la commande a2enmod :
# cd /etc/apache2/
# ls mods-*/userdir.conf
mods-available/userdir.conf
# a2enmod userdir
Enabling module userdir.
To activate the new configuration, you need to run:
systemctl restart apache2
# service apache2 restart
# ls mods-*/userdir.conf
mods-available/userdir.conf mods-enabled/userdir.conf
# ls -l mods-*/userdir.conf
-rw-r--r-- 1 root root 324 avril 5 20:32 mods-available/userdir.conf
lrwxrwxrwx 1 root root 30 sept. 4 14:28 mods-enabled/userdir.conf \
-> ../mods-available/userdir.conf
Nous voyons que le fichier est apparut dans le répertoire des modules en service. C’est un lien symbolique.
Le serveur apache permet de diffuser des fichiers sur Internet.
Diffuser de l’information, c’est une bonne chose. Néanmoins sur un serveur il est préférable de ne pas tout diffuser, comme le fichier des mots de passe, par exemple. La configuration du serveur web peut être altérée pour permettre la diffusion d’informations
sensibles. Il faut donc faire très attention et limiter les données présentes sur l’ordinateur qui héberge le service.
C’est pour cela qu’apache limite la diffusion des fichiers aux seuls répertoires définis (au début DocumentRoot). Il est possible, comme le propose la dosi de permettre aux utilisateurs de créer leur propre site internet. Pour cela, l’utilisateur (qui n’est pas root !) peut créer un répertoire public_html qui hébergera les fichiers diffusables. À Luminy, il faut suivre la procédure établie par l’université.
L’activation que nous avons présentée ici fournit l’accès à tous les utilisateurs. Pour l’utilisateur stud, si nous avons configuré apache sur l’ordinateur goblin, il faut faire :
stud@goblin:~$ mkdir public_html stud@goblin:~$ cd public_html/ stud@goblin:~/public_html$ echo la page de moi > index.html stud@goblin:~/public_html$
Puis pointer le navigateur sur l’utilisateur stud dans la figure 17.3.
17.1.3 Chiffrer les connexions
Les données circulent en clair, elles peuvent donc être interceptées. Un malfrat peut ainsi récupérer les mots de passe. Firefox rale en affichant quelque chose similaire à la figure 17.4.
Pour résoudre ce problème, il faut activer l’utilisation de ssl pour passer en https. Ceci sera traité plus tard…



