jeu. Août 21st, 2025

DMZ avec pfSense

Qu’est-ce qu’une DMZ ?

Une DMZ (Demilitarized Zone), ou zone démilitarisée, est une zone tampon du réseau dans laquelle on place des serveurs accessibles depuis Internet (comme un serveur web ou un serveur mail), afin de protéger le réseau interne.

Plus globalement, la DMZ est un réseau isolé situé entre un réseau interne sécurisé (par exemple un réseau d’entreprise) et un réseau externe non sécurisé (comme Internet). Elle permet d’éviter qu’un pirate ayant compromis un serveur public puisse accéder directement au reste du système d’information.


Contexte de l’installation

J’ai actuellement une VM pfSense qui me permet de gérer un réseau local dans lequel se trouvent un contrôleur de domaine (AD) et un poste client tous deux intégrés au même domaine.

Je souhaite maintenant y ajouter un serveur web, mais je ne veux pas qu’il soit placé sur le réseau local, pour des raisons de sécurité. Pour cela, je vais le placer dans une DMZ.

Nous allons commencer par ajouter une nouvelle carte réseau à la machine virtuelle pfSense. Cette interface sera utilisée pour connecter la DMZ, permettant ainsi de séparer le trafic du serveur web du réseau local interne.

Le nom de la carte réseau sera DMZ, et nous choisirons un type de carte réseau interne (commutateur virtuel interne) dans Hyper-V.

Ensuite, rendez-vous dans les paramètres de la VM pfSense pour ajouter cette nouvelle carte réseau nommée DMZ.

À présent, nous avons ajouté une troisième carte réseau à notre pfSense, qui nous permettra de créer un réseau isolé dédié à la DMZ.

Pour tester cette configuration dans notre environnement, je vais installer une nouvelle VM avec un serveur web IIS (se reporter à la documentation sur la création d’une VM).

Nous allons ensuite nous connecter à l’interface web de pfSense. Une fois connecté, sélectionnez l’onglet Interfaces, puis cliquez sur Assignments.

Nous retrouvons bien nos deux réseaux existants, LAN et WAN, ainsi que la nouvelle carte réseau destinée à la DMZ. Nous allons donc cliquer sur « Add » pour l’ajouter.

Ensuite nous allons cliquer sur l’interface « OPT1 » pour commencer à configurer la DMZ.

Nous allons cocher « Enable interface » pour activer cette interface réseau, puis la nommer. Dans notre cas, le nom DMZ conviendra parfaitement.

Nous allons sélectionner « Static » pour la configuration IPv4. Ensuite, nous attribuerons l’adresse IP 192.168.100.1/30 à l’interface DMZ.

Nous choisissons un masque /30 car dans la DMZ, il n’y aura qu’un seul serveur, donc une seule machine. Ce masque limite le nombre d’adresses disponibles, ce qui renforce la sécurité en restreignant la plage d’adressage.

De plus, utiliser un masque VLSM (Variable Length Subnet Mask) est une bonne pratique pour éviter le gaspillage d’adresses IP en allouant juste ce qu’il faut.

Puis nous allons confirmer la configuration.

En retournant à l’écran d’accueil on peut vérifier que nous avons bien nos 3 interfaces.

À présent, nous allons ajouter la carte réseau DMZ à notre serveur IIS. Ensuite, sur ce serveur, nous configurerons cette carte réseau (n’oubliez pas de changer le nom de la machine avant tout).

Nous attribuerons à cette interface l’adresse IP 192.168.100.2/30, qui est la seule adresse utilisable disponible sur ce sous-réseau.

Pour la passerelle par défaut et le serveur DNS, nous indiquerons bien sûr l’adresse IP de l’interface pfSense sur la DMZ, soit 192.168.100.1.

Ensuite, nous pouvons ajouter la fonctionnalité serveur IIS sur notre serveur (se référer au support serveur IIS).

Nous allons maintenant retourner sur pfSense, dans l’onglet Firewall, puis Rules, sélectionner LAN, et ajouter une nouvelle règle.

Nous allons bloquer tous les paquets depuis notre réseau local à destination de notre DMZ.

Puis on applique les changements.

À partir de ce moment, je ne peux plus accéder à la page web de mon serveur IIS depuis mon LAN, car aucun trafic n’est autorisé par défaut. Nous allons donc ajouter une règle permettant le trafic HTTP.

Ensuite, on valide les modifications. Dès lors, depuis le LAN, il sera possible de contacter le serveur IIS uniquement via le protocole HTTP sur le port 80.

Pour l’instant, le serveur IIS n’a pas accès à Internet, nous allons donc devoir créer un ensemble de règles de pare-feu.

Toujours dans pfSense, rendez-vous dans l’onglet Firewall, puis Rules, et enfin sélectionnez l’onglet DMZ.

Nous souhaitons que le serveur IIS puisse accéder à Internet, mais de manière raisonnée. Pour cela, nous allons autoriser uniquement les protocoles HTTP, HTTPS et DNS.

Nous commençons par configurer le blocage de tous les flux émis depuis la DMZ à destination du LAN, afin de renforcer la sécurité entre les zones.

On va maintenant autoriser la DMZ à accéder à internet.

On peut pour la prochaine règle cliquer sur le bouton ci-dessous pour la dupliquer.

Et dans destination on a juste à modifier le protocole. On va ajouter HTTPS.

On peut à nouveau dupliquer la dernière règle pour ajouter le protocole DNS et il faudra bien penser à passer en TCP/UDP.

Notre serveur a désormais accès à Internet, mais avec des paramètres restreints.
À présent, si des clients souhaitent accéder à notre site Internet,
l’idéal serait de mettre en place un reverse proxy afin de sécuriser l’accès à notre serveur web.

Ce reverse proxy (comme Squid, généralement sur le port 3128) peut être installé soit sur un serveur dédié, soit directement sur pfSense.

Nous n’irons pas jusque-là. Pour une démonstration simple, nous allons simplement créer une règle de NAT (port forwarding) afin de rediriger les requêtes externes vers notre serveur IIS.

Nous allons donc configurer une règle indiquant que :
tout le trafic entrant sur l’interface WAN en TCP sur le port HTTP (port 80) doit être redirigé vers l’adresse IP 192.168.100.2 (notre serveur IIS), également sur le port HTTP.

À partir de là, si je saisis l’adresse publique de mon pare-feu (interface WAN) dans un navigateur web depuis ma machine physique, je serai redirigé vers le serveur IIS (192.168.100.2), grâce à la règle de port forwarding.

Si cela ne fonctionne pas, vérifiez que l’option suivante n’est pas activée sur l’interface WAN de pfSense :

« Block private networks and loopback addresses »
(car cette option bloque les adresses IP privées définies par la RFC 1918, à savoir :
10.0.0.0/8, 172.16.0.0/12 et 192.168.0.0/16).

Et voila vous avez un serveur web isolé dans une DMZ.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *