2 Mise en jambes
Le but de ce premier exercice est, pour chaque binôme, d'implanter un serveur web
accessible d'Internet en utilisant une seule adresse IPv4 routée pour l'ensemble
de la promotion. Dans un second temps il est demandé de sécuriser les serveurs
Web.
2.1 Architecture
L'architecture de votre système doit être composée d'un serveur virtuel de redirection
Web commun à la promotion et d'un serveur virtuel pour chaque binôme. Le serveur de
redirection doit avoir deux interfaces réseau : une dans le VLAN ALTERNATE et une dans
le VLAN INSECURE. L'interface ALTERNATE permet l'accès en provenance d'Internet et
l'interface INSECURE permet la communication avec les serveurs virtuels des binômes.
Comme adresse IPv4 dans le VLAN ALTERNATE, vous utiliserez 5.23.44.84/29 et
5.23.44.85/29 suivant le groupe de TD. Le serveur de redirection doit avoir
comme adresse de passerelle 5.23.44.81.
Pour les adresses dans le VLAN INSECURE, vous utilisez les adresses IPv4 dans la plage
172.26.79.100 à 172.26.79.139 sachant que le masque réseau est 255.255.240.0.
Comme adresse IPv4 de serveur DNS vous pouvez utiliser 193.48.57.34.
2.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 bridgeAlternate et
bridgeInsecure.
La création des machines virtuelles fera 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 le répertoire où les disques virtuels doivent
être créés (option --dir), c'est-à-dire /usr/local/xen. 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 de redirection et votre machine de TP.
Installez des serveurs ssh et Web (paquetages openssh-server et apache2) dans vos
serveurs. Créez un petit site Web sur votre serveur virtuel.
2.3 Nom DNS
Trouvez un nom pour votre serveur Web. Vous pouvez par exemple prendre le nom de votre machine
virtuelle comme nom de base. Le domaine de votre nom sera stratocumulus.org. Ce domaine
est géré par le registrar GANDI sous le compte XR206-GANDI (mot de passe habituel). Vous
utiliserez l'interface de GANDI pour ajouter un enregistrement à votre nom de serveur Web
pointant vers le serveur de redirection Web.
2.4 Configurations Web
Pour que votre site Web soit accessible, il vous faut modifier deux configurations de serveurs
Apache. Celle du serveur de redirection et celle du serveur de votre binôme. Sur le serveur
de redirection vous aurez pris soin de vérifier que les modules Apache proxy et proxy_http
soient activés. Il vous faut aussi y définir un site Web virtuel (répertoire /etc/apache2/sites-available).
Pour cela documentez-vous en trouvant des exemples d'utilisation des blocs VirtualHost
et des directives Proxy* dans les configurations Apache. Vous devez aussi configurer votre
site sur votre serveur virtuel de binôme. Pour ce dernier vous n'avez pas besoin des directives
concernant le proxy.
Vérifiez que votre site est opérationnel, en particulier qu'il est accessible en dehors de l'école.
2.5 Certificat X509
Maintenant, il s'agit de sécuriser votre site 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. Ajoutez dans le fichier de configuration
/etc/apt/sources.list une référence à cette version de la distribution Debian. Mettez à jour la
liste des paquetages avec la commande apt-get update. Installez le paquetage letsencrypt.
Pour éviter des soucis de mélange de version, retirez les références à la version stretch.
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 votre machine virtuelle de
binôme alors que le certificat est requis sur le serveur de redirection.
2.6 Configuration sécurisée
Modifiez les configurations Apache en utilisant les directives SSL* pour utiliser le protocole HTTPS.
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.
Vérifiez que votre site est opérationnel, en particulier faites afficher le certificat X509 de votre site
à votre navigateur.
2.7 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 votre serveur. Commencez par créer un ou plusieurs nouveaux
hyperviseurs sur des machines de projet. Ensuite copiez les fichiers de votre machine virtuelle sur un
des nouveaux hyperviseurs. N'oubliez pas de mettre à jour adresses Ethernet et IPv4 (utilisez des IPv4
à partir de 172.26.79.220). Pour modifier le nom de votre nouvelle machine, éditez les fichiers
/etc/hostname, /etc/mailname et /etc/hosts. Vous devriez obtenir un clone fonctionnel
de votre serveur Web. Sur le serveur de redirection, ajoutez les modules Apache d'équilibrage de charge
proxy_balancer et lbmethod_byrequests. Enfin déclarez vos deux sites Web dans votre 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.
2.8 Haute disponibilité
Ceux qui veulent aller plus loin constateront une faille dans l'architecture de notre système. Si le
serveur de redirection tombe, les sites Web deviennent indisponibles. Il est proposé de créer un
système résistant aux pannes en couplant les serveurs de redirection des deux groupes de TD. Pour
cela il faut définir les sites virtuels des deux groupes sur les deux serveurs de redirection 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.