Previous Up

4  Atelier "virtualisation"

Pour ce dernier atelier, vous allez utiliser des machines virtuelles. Chaque binôme doit avoir ses propres machines virtuelles serveurs Web et mandataire Web inverse.

Nous irons un peu plus loin, dans cet atelier, concernant la configuration des serveurs Web puisqu’ils devront être sécurisés. Nous aborderons aussi les notions d’équilibrage de charge et de haute disponibilité.

4.1  Architecture réseau

Les machines virtuelles mandataire Web inverse doivent avoir deux interfaces réseau : une dans le VLAN TP-NET3 et une dans le VLAN STUDENTS-INFO. La première interface permet l’accès en provenance d’Internet et l’interface STUDENTS-INFO permet la communication avec les serveurs Web. Comme adresse dans le VLAN TP-NET3 193.48.65.128/26 vous pouvez utiliser toutes les adresses possibles sauf les trois dernières. Comme adresse de passerelle utilisez la dernière adresse valide du réseau. Le VLAN TP-NET3 est accessible de tout Internet.

Pour les adresses dans le VLAN STUDENTS-INFO, vous utilisez des adresses IPv4 non utilisées.

Comme adresse IPv4 de serveur DNS vous pouvez utiliser 193.48.57.34.

4.2  Machines virtuelles

Vous devez créer des machines virtuelles sur le serveur physique chassiron.insecserv.deule.net (mot de passe administrateur habituel). Tous vos objets (serveurs virtuels et partitions logiques) doivent être préfixés par gis4- puis, par binôme, par un nom pris dans un thème commun à la promotion. D’un point de vue réseau les ponts virtuels à utiliser sont bridgeInternet et bridgeInfoStud.

Commencez par vous créer une partition virtuelle avec la commande lvcreate. Attention à spécifier un nom de partition contenant le nom de votre machine virtuelle pour pouvoir facilement la retrouver.

La création des machines virtuelles se fait par la commande xen-create-image. Il faut préciser à cet utilitaire le nom de votre machine (option --hostname), la configuration réseau (option --dhcp dans un premier temps) et votre partition virtuelle (option --noswap --image-dev). Une fois la machine créée, modifiez son fichier /etc/network/interfaces pour y implanter la configuration réseau correcte. Utilisez ping pour tester la connexion réseau entre votre machine virtuelle, le serveur mandataire et votre machine de TP. Attention la création d’un groupe de volume LVM est à votre charge, prenez garde à ne pas impacter le système du serveur de virtualisation.

Installez des serveurs ssh et Web (paquetages openssh-server et apache2) dans vos serveurs. Créez un petit site Web sur vos serveurs virtuels comme pour les ateliers précédents.

4.3  Certificat X509

Maintenant, il s’agit de sécuriser vos sites en utilisant HTTPS. Pour cela vous allez utiliser l’autorité de certification "Let’s Encrypt" : https://letsencrypt.org/. La version stretch de la distribution Debian comprend un paquetage letsencrypt. Le certificat X509 s’obtient très facilement avec la commande letsencrypt certonly avec la méthode --webroot. Attention cependant cette méthode doit être utilisée sur vos serveurs Web alors que le certificat est requis sur le serveur de redirection.

4.4  Configuration sécurisée

Modifiez les configurations Apache en utilisant les directives SSL* pour utiliser le protocole HTTPS comme indiqué dans le cours. Attention vous ne pourrez définir de multiples sites sécurisés avec Apache que si votre version d’Apache implante le protocole SNI (Server Name Indication, RFC 4366). La plupart des navigateurs font confiance aux certificats de "Let’s Encrypt", vous ne devriez donc pas avoir à inclure d’autorité de certification dans votre navigateur.

4.5  Procédure de test

Vérifiez que votre site est opérationnel, en particulier qu’il est accessible en dehors de l’école. Faites aussi un test en https, faites afficher le certificat X509 de votre site à votre navigateur.

4.6  Equilibrage de charge

Vous venez de créer une ferme de sites Web sécurisés mais que va-t-il se passer en cas de succès ? Vos serveurs Web vont devoir supporter une charge de plus en plus importante et éventuellement refuser des connexions. Vous allez donc dupliquer vos serveurs Web. Vérifiez que votre machine de projet est configurée comme hyperviseur Xen. Ensuite copiez les fichiers de vos machines virtuelles sur votre machine de projet. N’oubliez pas de mettre à jour adresses Ethernet et IPv4 (utilisez des IPv4 non déjà en activité). Pour modifier le nom de vos nouvelles machines, éditez les fichiers /etc/hostname, /etc/mailname et /etc/hosts. Vous devriez obtenir des clones fonctionnels de vos serveurs Web. Sur le serveur mandataire Web inverse, ajoutez les modules Apache d’équilibrage de charge proxy_balancer et lbmethod_byrequests. Enfin déclarez les deux sites Web dans chaque définition de site virtuel en utilisant les balises Proxy. Vous pouvez tester le gestionnaire de répartition qui peut être intégré au serveur de redirection.

4.7  Haute disponibilité

Ceux qui veulent aller plus loin constateront une faille dans l’architecture de notre système. Si le serveur mandataire inverse tombe, les sites Web deviennent indisponibles. Il est proposé de créer un système résistant aux pannes en couplant des serveurs mandataires inverse. Pour cela il faut définir les sites virtuels sur les deux serveurs mandataire et privilégier une des deux adresses IPv4 routées. Il faut aussi installer un système de gestion d’adresse virtuelle avec le paquetage heartbeat. Le serveur de redirection actif s’attribuera l’adresse IPv4 routée. Si jamais il tombe, le serveur de secours s’appropriera cette adresse. La configuration d’heartbeat s’effectue dans 3 fichiers du répertoire /etc/ha.d/. Ces fichiers de configuration sont ha.cf, haresources et authkeys. Des exemples sont disponibles dans le répertoire /usr/share/doc/heartbeat ou sur Internet.

4.8  Utilisation d’OpenStack

Utilisez OpenStack pour réaliser une ferme de serveurs Web. Une instance avec une adresse IP flottante doit transmettre les requêtes HTTP à des instances privées tout en assurant un équilibrage de charge. Pour cette maquette, une image de type Debian va être nécessaire.

Votre système doit permettre un ajout automatique d’instance privée. Vous devez pouvoir générer un cliché (snapshot) de votre instance implantant un serveur Web privé, ajouter une instance à partir de ce cliché et faire en sorte que cette nouvelle instance soit automatiquement prise en compte. Il suffit qu’au lancement de l’instance un script modifie la configuration apache2 de votre instance d’équilibrage de charge et relance le service.

Un contrôle du bon fonctionnement du système doit pouvoir se faire en utilisant le gestionnaire apache2 de l’équilibrage de charge (voir 4.6).


Previous Up