Licence pro ASS&RProductionLecture : 6 min

Mise en production d'un portail B2B dans une DMZ

J'ai publié sur Internet la plateforme de commande en ligne développée par un prestataire, dans une DMZ conçue pour qu'une compromission du serveur n'ouvre pas le réseau interne.

Contexte
Production · PME, application web métier d'un prestataire externe, exposée sur Internet
Période
Août 2026
Mon rôle
Réseau, sécurité et mise en ligne ; l'application est développée par le prestataire
Outils
pfSense · Cisco IOS-XE · Windows Server · IIS · PowerShell · Wazuh

En bref

Le problème

Une application web métier devait être joignable depuis Internet sans exposer le réseau interne, et son prestataire intervenait avec un outil tiers aux sessions limitées.

Ce que j'ai fait

J'ai construit une DMZ en /30 avec cinq flux définis, gardé le serveur hors domaine, déployé l'agent Wazuh avant l'ouverture et ouvert au prestataire un accès par VPN.

Le résultat

Sept tests de validation réussis en production, note SSL Labs passée de B à A, et un serveur placé dans son propre segment, derrière le pare-feu.

B → Anote SSL Labs après désactivation de TLS 1.0 et 1.1
7/7tests de validation réussis en production
/30réseau de la DMZ : deux adresses, le pare-feu et le serveur
5flux définis vers ou depuis la DMZ

Contexte

L'entreprise voulait que ses partenaires passent commande en ligne. Un prestataire externe a développé l'application ; mon rôle était de la mettre en production sur l'infrastructure de l'entreprise.

Un serveur joignable depuis Internet se traite comme une zone de confiance nulle : même compromis, il ne doit offrir aucun accès direct au réseau interne. S'y ajoutaient quatre exigences : supervision active avant l'ouverture, accès du prestataire sans logiciel tiers sur le serveur, certificat reconnu par les navigateurs, et aucune coupure aux heures de bureau.

Ce que j'ai fait

  1. Isoler le serveurVLAN dédié sur le switch cœur, réseau /30 qui ne laisse place qu'au pare-feu et au serveur, pfSense comme unique passerelle. La VM Windows Server reste hors domaine : compromise, elle n'aurait aucune relation de confiance Kerberos avec les contrôleurs.
  2. Définir cinq fluxHTTPS entrant, sortie pour les mises à jour, agent Wazuh vers le SIEM, bureau à distance depuis deux postes d'administration et depuis le VPN.
  3. Durcir le serveurPare-feu Windows actif sur les trois profils, paquets bloqués journalisés, RDP restreint aux postes d'administration, toujours en PowerShell : la console graphique désactivait la règle modifiée sans prévenir. Agent Wazuh « Active » avant l'ouverture du portail.
  4. Encadrer le prestataireSon outil gratuit de prise en main coupait les sessions au bout de 30 à 45 minutes et aurait ouvert un tunnel sortant vers un service tiers. Je lui ai ouvert un accès par le VPN WireGuard, tracé dans Firezone ; profil et mot de passe transmis par deux canaux distincts.
  5. Publier en HTTPSDemande de certificat RSA 2048 bits générée dans IIS, la clé privée ne quittant pas le serveur. Certificat wildcard lié au port 443 avec SNI, puis TLS 1.0 et 1.1 désactivés dans SCHANNEL après un premier audit SSL Labs.
Architecture : Internet, le pare-feu au centre, le réseau interne à gauche, la DMZ et son serveur à droite Internet partenaires, prestataire HTTPS · VPN Pare-feu pfSense point de passage unique Agent · RDP 5 flux Réseau interne SIEM Wazuh reçoit l'agent VM WireGuard accès prestataire Postes d'admin accès RDP DMZ · /30 Serveur web Windows Server IIS, HTTPS avec SNI hors domaine agent Wazuh VLAN dédié sur le switch cœur
Fig. 1Tout flux vers ou depuis le serveur passe par le pare-feu. Le détail des cinq flux autorisés est dans les détails techniques.
Voir les détails techniques
Flux ouverts à la mise en ligne (août 2026)
Flux autoriséDétailÀ quoi il sert
Internet → serveurTCP 443 uniquement, par redirection de portPublier le portail
Serveur → InternetSortie en NATMises à jour
Serveur → SIEMPorts 1514-1515 de l'agent WazuhRemonter les événements de sécurité
Postes d'administration → serveurRDP depuis deux postes autorisésAdministrer le serveur
VPN → serveurRDP à travers le tunnel WireGuardInterventions du prestataire
Adresse dupliquée : le serveur envoie son trafic soit directement à l'interface DMZ du pare-feu, soit au switch cœur, qui le route vers une autre interface du pare-feu Serveur DMZ requête ARP Pare-feu pfSense interface DMZ liaison cœur Switch cœur interface du VLAN de la DMZ avec la même adresse Chemin prévu Chemin parasite Routé
Fig. 2Deux équipements répondaient à l'adresse de la passerelle. Selon la réponse ARP retenue, le trafic entrait dans le pare-feu par l'interface DMZ ou par sa liaison avec le switch cœur ; avec des états liés à l'interface, les retours étaient rejetés.

Cisco IOS-XE et pfSense · correction de l'adresse dupliquée

! Switch cœur : l'interface du VLAN DMZ porte-t-elle une adresse ?
SW-CORE# show ip interface brief | include Vlan<DMZ>
Vlan<DMZ>  <adresse de la passerelle DMZ>   YES manual up    up

! Avant de la retirer : rien d'autre ne dépend de cette interface
SW-CORE# show running-config interface Vlan<DMZ>
SW-CORE# show ip route | include <réseau DMZ>

! Correction : plus d'adresse, le VLAN reste actif en couche 2
SW-CORE(config)# interface Vlan<DMZ>
SW-CORE(config-if)# no ip address
SW-CORE# write memory          ! seulement après validation

# pfSense : purge des seuls états du serveur, les autres sessions restent
pfctl -k <adresse du serveur>
PowerShell Test-NetConnection depuis le serveur : packages.wazuh.com port 443 et le manager Wazuh interne port 1514, TcpTestSucceeded True dans les deux cas ; adresse IP publique résolue masquée.
Fig. 3Validation depuis le serveur en DMZ : connexions TCP réussies vers le dépôt Wazuh (443) et vers le manager Wazuh interne (1514).

PowerShell · pare-feu Windows

# Pare-feu actif sur les trois profils, paquets bloqués journalisés
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
Set-NetFirewallProfile -Profile Domain,Public,Private -LogBlocked True `
    -LogFileName "%systemroot%\system32\LogFiles\Firewall\pfirewall.log"

# RDP limité aux postes d'administration (adresses masquées)
$rdp = "Bureau à distance - Mode utilisateur (TCP entrant)"
Set-NetFirewallRule -DisplayName $rdp -RemoteAddress $postesAdmin
Enable-NetFirewallRule -DisplayName $rdp

Le pare-feu traduisait-il les adresses vers la DMZ ? Si oui, la restriction RDP par adresse n'aurait servi à rien. Le journal du pare-feu Windows a tranché : les paquets arrivaient avec l'adresse réelle du poste d'administration.

Le trafic du prestataire contournait le tunnel. Les adresses autorisées (AllowedIPs) de son profil ne couvraient que le réseau interne, pas la plage de la DMZ : le trafic partait vers sa box Internet. Plage de la DMZ ajoutée dans Firezone.

Difficulté HTTPSCauseCorrection
Première demande de certificat refuséeNom commun saisi « *exemple.fr », sans le pointNouvelle demande avec « *.exemple.fr », acceptée
Le nom du portail renvoyait encore, chez certains résolveurs, vers une ancienne adresseUn ancien enregistrement générique (*) de la zone, encore en cacheAttendre l'expiration du TTL
Note B sur SSL LabsTLS 1.0 et 1.1 encore acceptésDésactivation dans le registre (SCHANNEL), puis redémarrage

PowerShell · TLS 1.0 et 1.1 refusés (extrait simplifié)

foreach ($p in 'TLS 1.0', 'TLS 1.1') {
    $k = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\$p\Server"
    New-Item $k -Force | Out-Null
    New-ItemProperty -Path $k -Name 'Enabled' -Value 0 -PropertyType DWord -Force
    New-ItemProperty -Path $k -Name 'DisabledByDefault' -Value 1 -PropertyType DWord -Force
}
# SCHANNEL ne relit ces clés qu'au redémarrage

Le serveur, installé en édition d'évaluation (180 jours), a été converti en édition Standard avec DISM, sans réinstallation, puis vérifié avec slmgr.vbs /dli.

L'incident

Le ping passe, mais aucune connexion TCP ne sort de la DMZ

Problème

Pendant plusieurs semaines avant l'ouverture, toutes les connexions TCP sortantes du serveur échouaient. Les états du pare-feu montraient ses paquets entrant tantôt par l'interface DMZ, tantôt par la liaison avec le switch cœur, et les retours étaient rejetés.

Résolution

L'interface du VLAN de la DMZ sur le switch cœur portait la même adresse que la passerelle du pare-feu. Après avoir vérifié qu'elle ne servait à rien d'autre, j'ai retiré cette adresse et purgé uniquement les états du serveur : connexions TCP rétablies, SIEM joignable.

Le diagnostic complet, étape par étape, dans un article →

Résultats

Sept tests menés en production, tous concluants : TCP vers un DNS public, vers le dépôt et vers le manager Wazuh ; passerelle à moins de 1 ms sans perte ; RDP accepté depuis un poste autorisé et refusé depuis un autre ; portail joignable en HTTPS depuis un réseau mobile 5G, certificat reconnu.

Au second audit SSL Labs, les quatre critères sont au vert : le serveur ne négocie plus qu'en TLS 1.3, avec TLS 1.2 en repli. Ce projet prolonge la DMZ pfSense montée en laboratoire pendant mon BTS, cette fois avec un service réel, et s'appuie sur le switch cœur migré en juillet.

Rapport Qualys SSL Labs : note globale B, barre Protocol Support en jaune et bandeau « This server supports TLS 1.0 and TLS 1.1. Grade capped to B » ; nom d'hôte et adresse IP masqués.
Fig. 4Avant durcissement TLS : note B sur SSL Labs, plafonnée parce que le serveur acceptait encore TLS 1.0 et 1.1.
Rapport Qualys SSL Labs : note globale A, barres Certificate, Protocol Support, Key Exchange et Cipher Strength en vert, TLS 1.3 pris en charge ; nom d'hôte et adresse IP masqués.
Fig. 5Après désactivation de TLS 1.0 et 1.1 dans SCHANNEL : note A sur SSL Labs, les quatre critères au vert.

Ce que j'améliorerais

  • Sur une prochaine DMZ, je doublerais chaque filtrage réseau d'un filtrage sur le serveur lui-même, y compris pour les accès qui arrivent par le VPN : chaque couche doit filtrer sans dépendre d'une autre.
  • Pour un prestataire, je prévoirais dès le départ des droits par utilisateur côté serveur VPN et une authentification à deux facteurs : les adresses autorisées d'un client WireGuard règlent le routage, pas l'accès.
  • Avant de configurer une passerelle, vérifier qu'aucun équipement du segment ne porte déjà son adresse (table ARP, configuration du switch cœur) : ce contrôle aurait évité plusieurs semaines de blocage.

Compétences

  • Conception de DMZ
  • pfSense et filtrage des flux
  • Diagnostic ARP et états du pare-feu
  • Windows Server et IIS
  • Certificats et durcissement TLS
  • Encadrement d'un prestataire

Pour aller plus loin