CoursB2-12 - Services web, HTTPS et reverse proxy Traefik
Cours · Fiche de cours
B2-12 - Services web, HTTPS et reverse proxy Traefik
Sommaire
B2-12 Services web, HTTPS et reverse proxy Traefik
🎓 SIO2 · semestre 3⏱️ 5 h (cours + TP)🎯 Bloc 2 – SISRComprendre une requête HTTP, publier un site avec Apache ou Nginx, le sécuriser en HTTPS, puis placer devant tous les services web un reverse proxy Traefik configuré en fichiers dynamiques.
🎯 Objectifs
Décrire le dialogue HTTP : URL, requête, méthodes, codes de réponse.
Publier un site avec Apache ou Nginx (hôtes virtuels, journaux).
Expliquer HTTPS et choisir un certificat (autosigné, autorité interne, Let's Encrypt).
Justifier l'usage d'un reverse proxy et nommer les plus utilisés.
Configurer Traefik avec le file provider : points d'entrée, routeurs, services, middlewares, TLS.
Vérifier et dépanner un service web avec curl et les journaux.
📋 Prérequis
Résolution de noms : zone et enregistrements A.B2-11 · DNS
Administrer une machine Debian : paquets, services, fichiers de configuration.B2-14 · Debian 13
Test express des prérequis 3 questions · 2 minutes · conseillé avant de commencer
1. Quel enregistrement DNS associe le nom intranet.broceliande.lan à une adresse IPv4 ?
L'enregistrement A donne l'adresse IPv4 d'un nom (AAAA pour IPv6). MX désigne le serveur de messagerie, PTR fait la résolution inverse. À revoir : B2-11 · DNS.
2. Sous Debian, quelle commande relance le service nginx après une modification ?
Les services se pilotent avec systemctl ; reload relit la configuration sans couper les connexions. À revoir : B2-14 · Debian 13.
3. Dans un certificat, que contient-on pour permettre aux clients de chiffrer ?
Le certificat publie la clé publique et l'identité du serveur, garanties par la signature d'une autorité. La clé privée ne quitte jamais le serveur. À revoir : B3-04 · Cryptographie.
Brocéliande Logistique (entreprise fictive, 60 salariés) publie peu à peu ses outils internes : un intranet, l'application de gestion de parc GLPI, une page de supervision. Chacun a été installé « là où il y avait de la place », avec son propre port et sans chiffrement : les salariés retiennent des adresses du type http://172.16.50.20:8080 et les mots de passe circulent en clair sur le réseau.
Le responsable informatique veut une adresse lisible par service (intranet.broceliande.lan, glpi.broceliande.lan…), du HTTPS partout et un seul point d'entrée à surveiller. Il te confie la mise en place d'un serveur web propre, puis d'un reverse proxy Traefik devant l'ensemble des services.
Le coursLe dialogue HTTP, les serveurs Apache et Nginx, HTTPS et les certificats, puis le reverse proxy Traefik, sa configuration en fichiers et son dépannage.
1. Le web en une requête
Le web repose sur le protocole HTTP (HyperText Transfer Protocol) : un client (navigateur, application, commande curl) envoie une requête à un serveur, qui renvoie une réponse. HTTP fonctionne au-dessus de TCP, sur le port 80 ; HTTPS ajoute une couche de chiffrement TLS, sur le port 443.
URL (Uniform Resource Locator) : adresse complète d'une ressource. Elle indique le protocole, le nom du serveur, éventuellement le port, puis le chemin de la ressource sur le serveur : https://intranet.broceliande.lan:443/rh/conges.html.
https://Le protocole (schéma). http : en clair, port 80 par défaut ; https : chiffré, port 443 par défaut.
intranet.broceliande.lanLe nom d'hôte, que le client résout en adresse IP grâce au DNS. Il est aussi envoyé au serveur dans l'en-tête Host : c'est grâce à lui qu'un même serveur héberge plusieurs sites.
:443Le port TCP, facultatif quand c'est la valeur par défaut du protocole.
/rh/conges.htmlLe chemin de la ressource demandée sur le serveur.
Avant la moindre page, il y a toujours une résolution DNS et une connexion TCP.
500 erreur interne, 502 mauvaise passerelle (le proxy n'obtient pas de réponse valable), 503 service indisponible, 504 délai dépassé
Un code 4xx met en cause la requête (mauvaise adresse, droits) ; un code 5xx met en cause le serveur ou ce qu'il y a derrière. Derrière un reverse proxy, un 502 ou un 504 signifie presque toujours que l'application cible est arrêtée ou injoignable.
2. Apache et Nginx : publier un site
Les deux serveurs web les plus répandus sous Linux sont Apache (httpd) et Nginx. Tous deux savent servir des fichiers, exécuter une application (PHP par exemple) et héberger plusieurs sites sur une même machine grâce aux hôtes virtuels.
Apache
Nginx
Paquet Debian
apache2
nginx
Configuration des sites
/etc/apache2/sites-available/, activée par a2ensite
/etc/nginx/sites-available/, activée par un lien dans sites-enabled/
server {
listen 80;
server_name intranet.broceliande.lan; # nom attendu dans l'en-tête Host
root /var/www/intranet; # dossier des pages du site
index index.html;
access_log /var/log/nginx/intranet.access.log;
error_log /var/log/nginx/intranet.error.log;
}
Debian 13 activation du site
$ sudo ln -s /etc/nginx/sites-available/intranet /etc/nginx/sites-enabled/ $ sudo nginx -t # « syntax is ok » avant de recharger $ sudo systemctl reload nginx
Debian 13 Apache · même site/etc/apache2/sites-available/intranet.conf
172.16.20.1Adresse IP du client (ici PC-COMPTA). Derrière un reverse proxy, c'est l'adresse du proxy : la vraie adresse est transmise dans l'en-tête X-Forwarded-For.
[14/Nov/2026:09:12:44 +0100]Date et heure de la requête : d'où l'importance d'une horloge juste (NTP).
"GET /rh/conges.html HTTP/1.1"La méthode, le chemin demandé et la version du protocole.
200 5320Le code de réponse et la taille de la réponse en octets.
"Mozilla/5.0 …"Le User-Agent : navigateur ou outil utilisé par le client.
3. HTTPS et les certificats
En HTTP, tout circule en clair : un poste qui écoute le réseau lit les pages, les cookies de session et les mots de passe. HTTPS encapsule HTTP dans TLS, qui apporte trois garanties : la confidentialité (chiffrement), l'intégrité (rien n'est modifié en route) et l'authentification du serveur (on parle bien à intranet.broceliande.lan, grâce à son certificat).
Le certificat prouve l'identité du serveur ; la clé de session, elle, chiffre les échanges.
3.1 Quel certificat choisir ?
Type
Qui le signe ?
Accepté par les navigateurs ?
Usage
Autosigné
Le serveur lui-même
Non : alerte de sécurité
Tests, maquette
Autorité interne (AD CS, PKI de l'entreprise)
L'autorité de l'entreprise, déployée sur les postes par GPO
Oui, sur les postes de l'entreprise
Services internes en .lan
Let's Encrypt (ACME)
Autorité publique gratuite, certificat de 90 jours renouvelé automatiquement
Oui, partout
Services publiés sur Internet avec un vrai nom de domaine
Autorité commerciale
Autorité publique payante (validation de l'organisation)
Oui, partout
Sites institutionnels, besoins particuliers
Avant de délivrer un certificat, Let's Encrypt vérifie que tu contrôles bien le nom demandé. Défi HTTP-01 : un fichier doit être servi sur le port 80 du nom. Défi DNS-01 : un enregistrement TXT doit être créé dans la zone (seule méthode possible pour un certificat wildcard*.exemple.fr). Un nom en .lan n'existe pas sur Internet : Let's Encrypt ne peut pas le valider, d'où l'autorité interne.
Debian 13 certificat autosigné pour la maquette
$ sudo openssl req -x509 -newkey rsa:2048 -nodes -days 365 \
-keyout /etc/ssl/private/intranet.key -out /etc/ssl/certs/intranet.crt \
-subj "/CN=intranet.broceliande.lan" -addext "subjectAltName=DNS:intranet.broceliande.lan" $ openssl x509 -in /etc/ssl/certs/intranet.crt -noout -subject -dates # vérifier le nom et les dates
Les navigateurs ne regardent plus le champ CN : le nom doit figurer dans l'extension subjectAltName (SAN). Un certificat sans SAN, ou avec un autre nom que celui tapé dans la barre d'adresse, provoque l'alerte NET::ERR_CERT_COMMON_NAME_INVALID.
4. Le reverse proxy : un seul point d'entrée
Un reverse proxy (mandataire inverse) se place devant les serveurs web. Les clients ne s'adressent qu'à lui ; il lit le nom demandé (en-tête Host) et transmet la requête au bon service interne, puis renvoie la réponse. À l'inverse, un proxy classique se place devant les clients pour filtrer leurs accès à Internet.
Pour bien comprendre : l'accueil d'un immeuble
Dans un immeuble de bureaux, les visiteurs n'entrent que par une seule porte, celle de l'accueil. L'hôtesse demande qui ils viennent voir et les oriente vers le bon bureau : c'est le reverse proxy, qui lit le nom demandé et transmet au bon service.
C'est aussi à l'accueil qu'on vérifie les badges et qu'on refuse les intrus : le proxy porte les certificats HTTPS et peut filtrer. Les bureaux, eux, n'ont pas besoin d'avoir chacun leur porte sur la rue.
Clique sur une adresse tapée par un salarié pour suivre la requête jusqu'au bon service.
Les trois adresses arrivent sur la même porte : c'est le nom qui décide de la destination.
Une seule adresse IP et un seul port ouverts pour tous les services : le proxy fait l'aiguillage.
4.1 Ce qu'apporte un reverse proxy
Point d'entrée uniqueUn seul serveur exposé (ports 80 et 443), les applications restent sur le réseau interne.
Terminaison TLSLes certificats sont gérés à un seul endroit ; le proxy déchiffre puis transmet en HTTP aux services internes.
Routage par nomChaque nom (en-tête Host) mène à son application, sans numéro de port à retenir.
Répartition de chargePlusieurs serveurs identiques derrière un même nom : le proxy répartit les requêtes et écarte un serveur en panne (B2-25).
SécuritéEn-têtes de sécurité, authentification, limitation de débit ajoutés sans toucher aux applications (B3-14).
4.2 Les reverse proxy les plus connus
Logiciel
Points forts
Configuration
Nginx
Serveur web et proxy très répandu, performant
Blocs location avec proxy_pass
HAProxy
Spécialiste de la répartition de charge, très utilisé en production
Sections frontend / backend
Caddy
HTTPS automatique avec Let's Encrypt, configuration très courte
Fichier Caddyfile
Traefik
Pensé pour les environnements modernes : configuration dynamique rechargée à chaud, certificats ACME, tableau de bord
Fichiers YAML (file provider) ou découverte automatique
Au labo et dans cette fiche, on utilise Traefik, configuré uniquement par des fichiers : c'est lisible, versionnable dans Git et indépendant de la façon dont les applications sont installées (paquet, VM, conteneur).
5. Traefik : les quatre briques
Traefik traite chaque requête en suivant toujours le même chemin. Retenir ces quatre mots, c'est savoir lire n'importe quelle configuration Traefik.
Point d'entrée → routeur → middlewares → service : le même chemin pour toutes les requêtes.
5.1 Configuration statique et configuration dynamique
Configuration statique
Configuration dynamique
Fichier
/etc/traefik/traefik.yml
Fichiers du dossier /etc/traefik/dynamic/
Contenu
Points d'entrée, fournisseurs (providers), journaux, tableau de bord
Routeurs, services, middlewares, certificats
Prise en compte
Au démarrage : il faut redémarrer Traefik
À chaud : Traefik surveille le dossier et applique tout de suite
Fréquence de modification
Rare
À chaque nouveau service publié
Provider (fournisseur) : source d'où Traefik lit sa configuration dynamique. Le file provider lit des fichiers YAML ou TOML. D'autres providers découvrent les services tout seuls (Docker avec des labels, Kubernetes) : pratiques pour des conteneurs, mais la configuration est alors dispersée dans chaque application. Au labo, on garde tout dans des fichiers, un par service publié.
6. Configurer Traefik en fichiers dynamiques
6.1 La configuration statique
YAML /etc/traefik/traefik.ymllu au démarrage
entryPoints:
web:
address: ":80"
http:
redirections: # tout le trafic HTTP est renvoyé vers HTTPS (code 301)
entryPoint:
to: websecure
scheme: https
websecure:
address: ":443"
providers:
file:
directory: /etc/traefik/dynamic # un fichier par service publié
watch: true # rechargement à chaud
api:
dashboard: true # tableau de bord, publié par un routeur protégé
log:
level: INFO
accessLog: {} # journal des requêtes
6.2 Un fichier dynamique par service
YAML /etc/traefik/dynamic/intranet.ymlappliqué à chaud
http:
routers:
intranet:
rule: "Host(`intranet.broceliande.lan`)"
entryPoints: [websecure]
service: intranet
middlewares: [securite]
tls: {} # HTTPS, avec le certificat déclaré plus bas
services:
intranet:
loadBalancer:
servers:
- url: "http://127.0.0.1:8080" # l'application, joignable en HTTP interne
middlewares:
securite:
headers:
stsSeconds: 31536000 # HSTS : le navigateur n'utilisera plus que HTTPS
frameDeny: true # interdit l'affichage dans un cadre (clickjacking)
contentTypeNosniff: true
tls:
certificates:
- certFile: /etc/traefik/certs/intranet.crt
keyFile: /etc/traefik/certs/intranet.key
ruleLa condition qui sélectionne les requêtes : Host(`…`) pour un nom, PathPrefix(`/api`) pour un chemin, combinables avec &&. Attention aux accents graves autour du nom.
entryPointsLes ports sur lesquels ce routeur écoute : ici seulement websecure.
serviceLe nom du service vers lequel envoyer, défini dans la section services.
middlewaresLa liste, dans l'ordre, des traitements appliqués au passage.
tlsActive HTTPS sur ce routeur. Traefik choisit, parmi les certificats déclarés, celui dont le nom correspond.
Un service publié = un fichier dans dynamic/, qui contient son routeur, son service et ses middlewares. Pour retirer un service, on supprime son fichier : Traefik le retire aussitôt. Ces fichiers se versionnent dans Git, comme le reste de la configuration.
Complète le fichier glpi.yml qui publie GLPI (172.16.50.35, port 80) sous le nom glpi.broceliande.lan, en HTTPS. Vérifie chaque ligne avec ✓.
rule:
entryPoints:
service:
tls:
- url:
7. Sécuriser un service web
HTTPS partout : redirection 301 de HTTP vers HTTPS, puis HSTS pour que le navigateur n'essaie plus HTTP.
Exposition minimale : seuls les ports 80 et 443 du proxy sont ouverts ; les applications n'écoutent que sur le réseau interne ou sur 127.0.0.1.
En-têtes de sécurité : Strict-Transport-Security, X-Frame-Options, X-Content-Type-Options, Content-Security-Policy.
Discrétion : masquer la version du serveur (server_tokens off; dans Nginx, ServerTokens Prod dans Apache).
Interfaces d'administration (tableau de bord Traefik, phpMyAdmin) : jamais publiées sans authentification, idéalement accessibles depuis le VLAN de gestion seulement.
Mises à jour du serveur web, du proxy et des applications : la plupart des attaques web visent des versions connues comme vulnérables (B3-07).
Moindre privilège : le serveur web tourne sous un compte sans droits (www-data), les fichiers du site ne lui appartiennent pas en écriture.
Sur un réseau où l'intranet est en HTTP, un poste compromis peut se placer entre les salariés et le serveur (empoisonnement ARP) et lire les identifiants envoyés par le formulaire de connexion. En HTTPS, il ne voit qu'un flux chiffré ; s'il présente son propre certificat, le navigateur affiche une alerte, d'où la règle : ne jamais cliquer sur « Continuer quand même » sur un site de l'entreprise.
8. Vérifier et dépanner
8.1 Les outils
Commande
Ce qu'elle montre
curl -I http://intranet.broceliande.lan
Les en-têtes de la réponse : code (redirection vers HTTPS attendue : 308, car -I envoie un HEAD ; un navigateur reçoit 301), serveur, redirection
curl -vk https://intranet.broceliande.lan
Le détail de la poignée de main TLS et du certificat présenté (-k accepte un certificat autosigné)
Méthode : on remonte du client vers l'application. Le nom se résout-il (nslookup) ? Le port 443 du proxy répond-il ? Le routeur Traefik existe-t-il (tableau de bord, journaux) ? L'application répond-elle en direct, sans le proxy (curl http://127.0.0.1:8080) ?
8.2 Entraîne-toi : les tickets du support
Tu es de permanence au support de Brocéliande Logistique. Six tickets arrivent les uns après les autres : lis le message, observe le relevé, puis choisis la cause. Applique la méthode du client vers l'application.
File d'attente du support6 tickets · un à la fois · l'explication s'affiche après ta réponse
Ticket n° 1De : comptabilitéPriorité haute
« L'intranet affiche "Bad Gateway" depuis ce matin. Hier soir, tout fonctionnait. »
Cause : le code 502 vient du proxy : il a bien reçu la requête, mais n'obtient pas de réponse du service cible. Nginx est arrêté (mise à jour nocturne, erreur de configuration). Correction :sudo nginx -t, puis sudo systemctl start nginx et lecture de journalctl -u nginx pour comprendre l'arrêt.
Ticket n° 2De : directionPriorité moyenne
« Mon navigateur affiche "Votre connexion n'est pas privée" sur glpi.broceliande.lan, alors que l'intranet s'ouvre sans alerte. »
Cause : aucun certificat déclaré ne correspond au nom tapé : Traefik se rabat sur le certificat qu'il génère lui-même (TRAEFIK DEFAULT CERT), que le navigateur refuse. Correction : émettre un certificat dont le SAN contient glpi.broceliande.lan (ou un certificat qui couvre les deux noms) et l'ajouter dans la section tls.certificates d'un fichier dynamique.
Ticket n° 3De : technicienPriorité haute
« J'ai ajouté supervision.yml dans /etc/traefik/dynamic, mais la page renvoie 404 page not found. Le service de supervision répond pourtant en direct. »
Debian 13 journal de Traefik
$ sudo journalctl -u traefik --since "5 min ago"
level=error msg="Error occurred during watcher callback:
yaml: line 4: mapping values are not allowed in this context"
providerName=file
Quelle est la cause ?
Cause : un 404 renvoyé par Traefik signifie qu'aucun routeur ne correspond à la requête. Ici, le fichier n'a pas été chargé à cause de l'indentation (YAML n'accepte que des espaces, alignés). Correction : corriger la ligne 4 ; le rechargement est automatique, inutile de redémarrer.
Ticket n° 4De : responsable informatiqueSécurité
« Un stagiaire me signale qu'il ouvre l'application de supervision directement sur http://172.16.99.21:3001, sans passer par le proxy ni s'authentifier. »
Cause : le proxy protège seulement ce qui passe par lui. Correction : limiter l'écoute de l'application (à 127.0.0.1 si le proxy est sur la même machine), ou filtrer le port 3001 par pare-feu pour n'autoriser que l'adresse du proxy.
Ticket n° 5De : comptabilitéPriorité moyenne
« Quand je tape intranet.broceliande.lan, j'arrive sur une page "Welcome to nginx!" au lieu de l'intranet. »
Debian 13 SRV-WEB
$ ls /etc/nginx/sites-enabled/
default
$ ls /etc/nginx/sites-available/
default intranet
Quelle est la cause ?
Cause : le fichier existe dans sites-available mais aucun lien n'a été créé dans sites-enabled. Correction :sudo ln -s /etc/nginx/sites-available/intranet /etc/nginx/sites-enabled/, sudo nginx -t, sudo systemctl reload nginx ; on peut aussi désactiver le site default.
Ticket n° 6De : technicienQuestion
« Après avoir mis Traefik devant l'intranet, tous les accès du journal Nginx viennent de la même adresse, 127.0.0.1. Comment savoir quel poste a consulté une page ? »
Cause : vu de l'application, le client est le proxy. Traefik transmet l'adresse réelle dans X-Forwarded-For. Correction : dans Nginx, utiliser le module real_ip (set_real_ip_from 127.0.0.1; real_ip_header X-Forwarded-For;) ; le journal d'accès de Traefik contient aussi l'adresse du client.
9. À l'examen et en entreprise
Schéma attendu : client → DNS → reverse proxy (ports 80/443) → services internes, avec les noms publiés, les ports et le sens des flux.
Justifier ses choix : pourquoi un reverse proxy, pourquoi tel certificat (autorité interne pour des noms en .lan, Let's Encrypt pour un nom public), pourquoi la configuration en fichiers.
Cahier de recette : redirection HTTP → HTTPS (301), page en 200, certificat valide pour chaque nom, accès direct à l'application refusé, tableau de bord protégé.
Exploitation : où sont les journaux, comment ajouter un nouveau service (un fichier dans dynamic/), comment renouveler un certificat.
10. L'essentiel
HTTP : le client envoie une requête (méthode, chemin, en-tête Host), le serveur renvoie une réponse avec un code. Port 80 ; HTTPS = HTTP dans TLS, port 443.
Codes : 2xx succès, 3xx redirection (301), 4xx erreur du client (403, 404), 5xx erreur du serveur (500, 502, 504).
Apache et Nginx hébergent plusieurs sites grâce aux hôtes virtuels, choisis d'après le nom demandé.
Toujours tester la syntaxe (nginx -t) avant de recharger (systemctl reload).
TLS apporte confidentialité, intégrité et authentification du serveur par son certificat ; le nom doit figurer dans le SAN.
Certificat : autosigné pour tester, autorité interne pour les noms .lan, Let's Encrypt (ACME) pour un nom public.
Le reverse proxy est le point d'entrée unique : terminaison TLS, routage par nom, répartition, sécurité.
La pratiqueLe quiz noté pour vérifier tes acquis, les exercices à rendre à ton professeur, puis le fil rouge Packet Tracer et le reverse proxy au labo.
11. Quiz noté
8 questions · 10 minutesRéponds à toutes les questions, puis valide. Seule ta première tentative est enregistrée : elle compte dans ton suivi. Ensuite, tu peux t'entraîner autant que tu veux.
1. Sur quel port TCP un serveur HTTPS écoute-t-il par défaut ?
2. Le reverse proxy renvoie 502 Bad Gateway. Qu'est-ce que cela indique ?
3. Grâce à quel en-tête un serveur web héberge-t-il plusieurs sites sur une seule adresse IP ?
4. Dans Traefik, quel élément porte la règle Host(`intranet.broceliande.lan`) ?
5. Quel est l'avantage de la configuration dynamique lue par le file provider ?
6. Pourquoi ne peut-on pas obtenir un certificat Let's Encrypt pour intranet.broceliande.lan ?
7. À quoi sert l'en-tête HSTS (Strict-Transport-Security) ?
8. Le fichier /etc/nginx/sites-available/intranet existe mais Nginx affiche sa page par défaut. Que manque-t-il ?
12. Exercices : à toi de répondre
Écris ta réponse sous chaque énoncé et envoie-la à ton professeur. Quand il l'a validée, le corrigé s'affiche à la place du cadenas ; s'il te la renvoie « à revoir », lis son commentaire et corrige.
Exercice 1 – Comprendre (SIO2)
Un salarié tape http://glpi.broceliande.lan dans son navigateur. Décris, dans l'ordre, tout ce qui se passe jusqu'à l'affichage de la page GLPI en HTTPS (DNS, connexions, codes de réponse, rôle de chaque élément de Traefik).
Le corrigé s'affichera ici dès que ton professeur aura validé ta réponse. Cherche d'abord par toi-même : c'est en se trompant qu'on retient.
Exercice 2 – Configurer (SIO2)
Brocéliande installe un wiki interne qui répond en HTTP sur 172.16.50.24, port 3000. Écris le fichier dynamique Traefik qui le publie en HTTPS sous le nom wiki.broceliande.lan, avec les en-têtes de sécurité du middleware securite déjà défini dans intranet.yml. Indique où tu places ce fichier et comment tu vérifies qu'il est pris en compte.
Le corrigé s'affichera ici dès que ton professeur aura validé ta réponse. Cherche d'abord par toi-même : c'est en se trompant qu'on retient.
Exercice 3 – Dépanner (SIO2)
Un technicien a publié l'intranet avec le routeur ci-dessous. curl -I http://intranet.broceliande.lan renvoie bien la redirection 308, mais curl -kI https://intranet.broceliande.lan renvoie 404 page not found. Explique la panne et corrige.
Le corrigé s'affichera ici dès que ton professeur aura validé ta réponse. Cherche d'abord par toi-même : c'est en se trompant qu'on retient.
Exercice 4 – Concevoir (SIO2)
La direction veut que les commerciaux en déplacement accèdent à l'intranet depuis Internet. Propose une solution argumentée (une dizaine de lignes) : nom, certificat, emplacement du proxy, ports ouverts, protection des comptes. Évoque aussi l'alternative du VPN.
Le corrigé s'affichera ici dès que ton professeur aura validé ta réponse. Cherche d'abord par toi-même : c'est en se trompant qu'on retient.
13. Fil rouge : l'intranet de Brocéliande Logistique
Étape 13sur 17
Fil rouge Packet Tracer · Intranet et site webTu construis le réseau de Brocéliande Logistique fiche après fiche : chaque étape repart de la précédente.
Tu pars de ta maquette de l'étape 12 (B2-09) : FR-12-NOM-Prenom.pkt.
Tu enregistresFR-13-NOM-Prenom.pkt, point de départ de l'étape 14 (B2-26 · Téléphonie et qualité de service).
Où tu en es, où tu vas
Le tableau donne l'état des équipements concernés à l'entrée de l'étape (fin de l'étape 12, passerelle redondante HSRP) et ce que tu dois obtenir à la sortie. Les autres équipements ne changent pas. Tu n'as pas ta maquette FR-12 ? Reprends les fiches précédentes du fil rouge dans l'ordre : chaque étape repart de la sortie de la précédente.
Équipement
Modèle
À l'entrée
À la sortie
SRV-WEB
Server-PT
Absent
172.16.50.20/24, passerelle 172.16.50.254, DNS 172.16.50.10 ; services HTTP et HTTPS actifs, page d'accueil de l'intranet
SW1
2960-24TT
Fa0/18 en VLAN 998 (parking), éteint
Fa0/18 en access VLAN 50, PortFast, activé
SRV-01
Server-PT
DHCP, DNS (zone broceliande.lan), RADIUS
Enregistrement A intranet.broceliande.lan → 172.16.50.20
Inchangés : SRV-WEB utilise la passerelle virtuelle 172.16.50.254
Postes
PC-PT
Adresses DHCP, DNS 172.16.50.10
Inchangés : ils ouvrent l'intranet par son nom
Au labo, tu disposes des mêmes modèles en vrai : routeurs Cisco 1941, commutateurs Cisco 2960 et, pour le routage de niveau 3, commutateurs Cisco 3750. Dans Packet Tracer, choisis le 1941 et le 2960-24TT ; le 3750 n'y existe pas, on le remplace par le 3560-24PS. Packet Tracer ne sait pas faire de reverse proxy : Traefik se met en place au labo, en deuxième partie.
SRV-WEB rejoint le VLAN des serveurs ; les postes l'atteignent par son nom grâce au DNS de SRV-01.
Ce que tu ajoutes à cette étape
SRV-WEB dans le VLAN 50, services HTTP et HTTPS.
Le nom intranet.broceliande.lan dans le DNS de SRV-01.
Au labo : Nginx derrière un reverse proxy Traefik.
Ouvre FR-12-NOM-Prenom.pkt et enregistre-la tout de suite sous FR-13-NOM-Prenom.pkt (File → Save As).
2 Brancher et adresser SRV-WEB
Place un Server-PT nommé SRV-WEB, relie son port Fa0 au port Fa0/18 de SW1 (cuivre droit), puis, onglet Desktop → IP Configuration : 172.16.50.20, 255.255.255.0, passerelle 172.16.50.254 (adresse virtuelle HSRP), DNS 172.16.50.10.
Cisco IOS SW1 · réactiver le port du serveur
SW1(config)# interface fa0/18 SW1(config-if)# description SRV-WEB SW1(config-if)# switchport mode access SW1(config-if)# switchport access vlan 50 ! le port était dans le VLAN parking 998 SW1(config-if)# spanning-tree portfast SW1(config-if)# no shutdown SW1(config-if)# end SW1# copy running-config startup-config
Complète les commandes de SW1 (formes abrégées acceptées), puis vérifie chaque ligne avec ✓.
SW1(config)#
SW1(config-if)#
SW1(config-if)#
3 Activer le site et déclarer le nom
Sur SRV-WEB, onglet Services → HTTP : active HTTP et HTTPS, puis modifie index.html pour afficher « Intranet de Brocéliande Logistique ».
Sur SRV-01, onglet Services → DNS : ajoute l'enregistrement de type A Recordintranet.broceliande.lan → 172.16.50.20.
Depuis PC-COMPTA : Desktop → Command Prompt, nslookup intranet.broceliande.lan, puis Web Browser : http://intranet.broceliande.lan et https://intranet.broceliande.lan.
Mode Simulation, filtres DNS, TCP et HTTP : observe dans l'ordre la question DNS, la poignée de main TCP sur le port 80, puis la requête GET et la réponse.
4 Au labo : Nginx derrière Traefik
Sur la VM Debian 13 de ton pool Proxmox (page Mes serveurs et VM), tu reproduis l'intranet en vrai, avec un reverse proxy devant. Note l'adresse de ta VM : on l'appelle IP-VM ci-dessous.
Élément
Écoute sur
Rôle
Nginx
127.0.0.1:8080
Sert les pages de l'intranet, invisible depuis le réseau
Traefik
:80 et :443
Point d'entrée : redirection HTTPS, certificat, en-têtes, transmission à Nginx
Poste Windows 11
–
Client : fichier hosts pour résoudre intranet.broceliande.lan vers IP-VM
Traefik tourne sous un compte sans privilèges : sans AmbientCapabilities=CAP_NET_BIND_SERVICE, il ne peut pas écouter sur les ports 80 et 443 (inférieurs à 1024) et le journal affiche permission denied. Ne le lance surtout pas en root pour « contourner » le problème.
Résoudre le nom sur le poste Windows 11 : en administrateur, ajoute la ligne IP-VM intranet.broceliande.lan au fichier C:\Windows\System32\drivers\etc\hosts.
Tester : http://intranet.broceliande.lan doit basculer en HTTPS ; accepte l'alerte une seule fois (certificat autosigné de la maquette) et observe le certificat présenté.
Vérifier l'isolement : depuis le poste, http://IP-VM:8080 ne doit pas répondre.
5 Valider l'étape : le cahier de recette
N°
Test
Commande
Résultat attendu
OK
1
Le nom est résolu (PT)
nslookup intranet.broceliande.lan sur PC-COMPTA
Address : 172.16.50.20
2
L'intranet s'affiche (PT)
Web Browser : http://intranet.broceliande.lan
Page « Intranet de Brocéliande Logistique »
3
Le serveur passe par HSRP (PT)
tracert vers l’adresse DHCP de PC-COMPTA, depuis SRV-WEB
Premier saut : 172.16.50.252 (R1 actif)
4
Redirection vers HTTPS (labo)
curl -I http://intranet.broceliande.lan
308 (301 pour un navigateur), Location: https://…
5
HTTPS et en-têtes (labo)
curl -kI https://intranet.broceliande.lan
200, strict-transport-security présent
6
L'application n'est pas exposée (labo)
curl http://IP-VM:8080 depuis le poste
Échec attendu (connexion refusée)
Suis ta progressionConnecte-toi pour marquer les ressources comme terminées et retrouver ton avancement.