Une Zone DMZ
Une zone DMZ (Demilitarized Zone) est un sous-réseau isolé qui sépare votre réseau interne des réseaux non fiables. Elle héberge les serveurs accessibles depuis Internet tout en protégeant votre infrastructure interne des attaques directes.
Introduction
Qu'est-ce qu'une zone démilitarisée (DMZ) ?
Nous allons aborder sur le sujet sur ce que c’est une zone DMZ ou Zone Démilitarisée dans le domaine du réseau informatique.
En informatique, une zone démilitarisée, ou DMZ (en anglais, demilitarized zone) est un sous-réseau séparé du réseau local et isolé de celui-ci ainsi que d'Internet (ou d'un autre réseau) par un pare-feu. Ce sous-réseau contient les machines étant susceptibles d'être accédées depuis Internet, et qui n'ont pas besoin d'accéder au réseau local.
Elle agit comme une zone tampon avec les réseaux non sécurisés tels qu'Internet.
Les services susceptibles d'être accédés depuis Internet seront situés en DMZ, et tous les flux en provenance d'Internet sont redirigés par défaut vers la DMZ par le pare-feu. Le pare-feu bloquera donc les accès au réseau local à partir de la DMZ pour garantir la sécurité. En cas de compromission d'un des services dans la DMZ, le pirate n'aura accès qu'aux machines de la DMZ et non au réseau local.
Le nom provient à l'origine de la zone coréenne démilitarisée.
La figure ci-dessous représente une architecture DMZ avec un pare-feu à trois interfaces.
L'inconvénient est que si cet unique pare-feu est compromis, plus rien n'est contrôlé. Il est cependant possible d'utiliser deux pare-feux en cascade afin d'éliminer ce risque. Il existe aussi des architectures de DMZ où celle-ci est située entre le réseau Internet et le réseau local, séparée de chacun de ces réseaux par un pare-feu.
Les DMZ ont pour objectif de renforcer le niveau de sécurité du réseau local de l'entreprise. Dans ce système, un nœud de réseau protégé et surveillé, tourné vers l'extérieur, a accès aux éléments exposés au sein de la zone dématérialisée tandis que le reste du réseau est protégé par un pare-feu.
Lorsqu'elles sont correctement mises en œuvre, les DMZ aident les entreprises à détecter et corriger les failles de sécurité avant qu'elles n'atteignent le réseau interne, où sont stockées les ressources les plus précieuses.
Objectif des zones démilitarisées
Les DMZ visent avant tout à protéger les hôtes les plus exposés aux attaques. Parmi ces hôtes, on trouve généralement des services accessibles aux utilisateurs en dehors du réseau local, tels que la messagerie, les serveurs Web et les serveurs DNS. En raison de leur vulnérabilité, ceux-ci sont placés dans un sous-réseau surveillé, afin que le reste du réseau soit protégé en cas d'attaque.
Les hôtes hébergés dans la DMZ peuvent uniquement posséder des autorisations d'accès extrêmement restreintes aux autres services du réseau interne, car le niveau de sécurité des données transmises dans cette zone fait parfois défaut. Par ailleurs, les communications entre les hôtes hébergés dans la DMZ et le réseau externe sont également limitées afin d'étendre autant que possible cette zone tampon. Cette pratique permet aux hôtes situés dans le réseau protégé d'interagir avec les réseaux interne et externe tandis que le pare-feu se charge de répartir et de gérer le trafic partagé entre la DMZ et le réseau interne. En général, un pare-feu complémentaire sera utilisé pour protéger la DMZ de toute menace émanant du réseau externe.
Tous les services accessibles aux utilisateurs depuis un réseau externe devront être placés dans la zone DMZ. Parmi les services les plus souvent rencontrés, on retrouvera :
- Les serveurs Web : les serveurs Web utilisés à des fins de communication avec un serveur de base de données interne peuvent être placés dans une DMZ afin de protéger la base de données interne, qui contient généralement des informations sensibles. Les serveurs Web peuvent alors interagir, directement ou par l'intermédiaire d'un pare-feu pour applications, avec le serveur de base de données interne tandis que leur sécurité est assurée par la DMZ.
- Serveurs de messagerie : les e-mails ainsi que la base de données utilisateur qui accueille les informations d'identification et les messages personnels sont généralement stockés sur des serveurs dépourvus d'accès direct à Internet. C'est pourquoi les serveurs de messagerie sont généralement construits ou placés dans la DMZ, afin qu'il soit possible d'accéder à la base de données de messagerie et d'interagir avec sans qu'elle ne soit directement exposée à un trafic susceptible de représenter un danger.
- Serveurs FTP : ce type de serveur peut héberger des contenus sensibles sur le site Web d'une entreprise tout en permettant une interaction directe avec les fichiers. Les serveurs FTP doivent donc être partiellement isolés des systèmes internes critiques.
Si les DMZ offrent une sécurité supplémentaire contre les attaques externes, elles ne protègent toutefois pas des attaques internes comme les attaques par reniflage via un analyseur de paquets ou le spoofing par e-mail.
Conception d'un réseau avec une DMZ
Il existe de multiples façons de concevoir un réseau intégrant une zone démilitarisée. Deux méthodes sont fréquemment employées : l'utilisation d'un pare-feu unique (parfois appelé « pare-feu à trois interfaces ») et l'utilisation de deux pare-feux. Chacun de ces systèmes peut être étendu afin de créer des architectures complexes répondant aux exigences du réseau :
- Pare-feu unique : une approche plus modeste de l'architecture réseau consiste à utiliser un pare-feu unique incluant au moins trois interfaces réseau. La zone démilitarisée sera alors placée à l'intérieur de ce pare-feu. Son fonctionnement est le suivant : le périphérique réseau externe établit la connexion à partir du FAI, le réseau interne est connecté par le deuxième périphérique, puis les connexions établies dans la DMZ sont gérées par le troisième périphérique réseau.
- Deux pare-feux : l'approche la plus sécurisée consiste à utiliser deux pare-feux pour créer la DMZ. Le premier pare-feu (appelé pare-feu « frontal ») est configuré de façon à n'autoriser que le trafic destiné à la DMZ. Le second pare-feu (appelé pare-feu « principal ») est uniquement responsable du trafic entre la DMZ et le réseau interne. Pour renforcer le niveau de protection, il est possible d'utiliser des pare-feux développés par deux fournisseurs distincts, qui seront alors moins susceptibles de présenter les mêmes vulnérabilités. S'il est plus performant, ce modèle peut toutefois s'avérer plus coûteux à mettre en œuvre dans un réseau étendu.
Dans quelle mesure les DMZ sont-elles importantes ?
Dans de nombreux réseaux domestiques, les périphériques connectés à Internet sont construits autour d'un même réseau local, qui accède à Internet à partir d'un routeur haut débit. Ce routeur sert alors à la fois de point de connexion et de pare-feu, automatisant ainsi le filtrage du trafic afin de garantir que seuls les messages sécurisés pénètrent dans le réseau local. Dans un tel réseau, une zone démilitarisée peut être construite en ajoutant un pare-feu dédié qui isolera le réseau local du routeur. Quoique plus onéreuse, cette structure peut permettre de protéger les périphériques internes des attaques extérieures complexes.
Cas pratique
Nous allons mettre en place une Zone DMZ, pour que vous puissiez dans la pratique, le fonctionnement d'une DMZ ; pour cela nous aurons besoin de quatre serveurs, de deux ordinateurs, d'un pare-feu (serveur ASA), de deux Switch et d'un routeur.
| Equipement | Adresse IP | Remarque |
|---|---|---|
| PC-1 | 192.168.1.1/24 | Configuration manuellement |
| PC-2 | 192.168.1.2/24 | Configuration manuellement |
| Switch-2 | Commutateur LAN | Inside |
| Serveur-ASA gig1/1 | 192.168.1.254/24 | Inside |
| Serveur-ASA gig1/2 | 192.168.3.254/24 | DMZ |
| Serveur-ASA gig1/3 | 192.168.2.254/24 | outside |
| Switch-1 | Commutateur - LAN | DMZ |
| Serveur - A | 192.168.3/.1/24 | Serveur DNS |
| Serveur - B | 192.168.3.2/24 | Serveur messagerie |
| Serveur - C | 192.168.3.3/24 | Serveur Web |
| Routeur fa0/0 | 192.168.2.200/24 | Outside |
| Router fa0/1 | 172.16.1.254/16 | Internet |
| Serveur - D | 172.16.1.1/16 | Serveur - externe |
Réinitialisation du serveur ASA
Dans un premier temps, nous allons remettre à zéro la configuration du serveur ASA, en utilisant ces commandes ci-dessous :
! ── Passer en mode privilégié ─────────────────────────
ciscoasa> enable
! ── Entrer en mode de configuration globale ───────────
ciscoasa# configure terminal
! ── Suppression de la configuration DHCP par défaut ───────────
ciscoasa(config)# no dhcpd address 192.168.1.5-192.168.1.36 inside
ciscoasa(config)# no dhcpd enable inside
! ── Suppression de l'adresse IP sur le vlan1 ───────────
ciscoasa(config)# interface vlan1
ciscoasa(config-if)# no ip address 192.168.1.1 255.255.255.0
Configuration d'un Vlan pour l'inside
Maintenant, nous allons configurer un Vlan dans le pare-feu (Serveur ASA)
! ── Passer en mode privilégié ─────────────────────────
ciscoasa> enable
! ── Entrer en mode de configuration globale ───────────
ciscoasa# configure terminal
! ── Création du Vlan 1 - inside ───────────
ciscoasa(config)# interface vlan1
! ── configuration de l'interface - LAN par défaut le niveau est à 100 ───────────
ciscoasa(config-if)# nameif inside
ciscoasa(config-if)#security-level 100
! ── adressage IP à l'interface ───────────
ciscoasa(config-if)# ip address 192.168.1.254 255.255.255.0
! ── Activation de l'interface ───────────
ciscoasa(config-if)# no shutdown
! ── Quitter l'interface ───────────
ciscoasa(config-if)# exit
! ── Configuration de l'interface gig1/1 ───────────
ciscoasa(config)# interface gigabitEthernet 1/1
ciscoasa(config-if)# switchport access vlan 1
Configuration du Vlan 2 pour l'outside
Nous allons configurer l'interface gig1/3, celui qui nous permet d'aller sur Internet.
! ── Passer en mode privilégié ─────────────────────────
ciscoasa> enable
! ── Entrer en mode de configuration globale ───────────
ciscoasa# configure terminal
! ── Création du Vlan 2 - outside ───────────
ciscoasa(config)# interface vlan2
! ── Adressage ip de l'interface outside ───────────
ciscoasa(config-if)# ip address 192.168.2.254 255.255.255.0
! ── Configuration de l'interface outside par défaut le niveau est à 0 ───────────
ciscoasa(config-if)# nameif outside
ciscoasa(config-if)# security-level 0
! ── Activation de l'interface ───────────
ciscoasa(config-if)# no shutdown
! ── Quitter l'interface ───────────
ciscoasa(config-if)# exit
! ── Configuration de l'interface gig1/3 ───────────
ciscoasa(config)# interface gigabitEthernet 1/3
ciscoasa(config-if)# switchport access vlan 2
Mise en place du DMZ-Vlan 3
Nous attaquons le plus intéressant : c'est la configuration de la Zone DMZ dans le serveur ASA — pare-feu.
! ── Passer en mode privilégié ─────────────────────────
ciscoasa> enable
! ── Entrer en mode de configuration globale ───────────
ciscoasa# configure terminal
! ── Création du Vlan3 - DMZ ───────────
ciscoasa(config)# interface vlan3
! ── MEP l'interface DMZ ───────────
ciscoasa(config-if)# no forward interface vlan1
! ── MEP l'interface DMZ par défaut le niveau est à 0 ───────────
ciscoasa(config-if)# nameif dmz
ciscoasa(config-if)# security-level 50
! ── Adressage ip de l'interface DMZ ───────────
ciscoasa(config-if)# ip address 192.168.3.254 255.255.255.0
! ── Activation de l'interface ───────────
ciscoasa(config-if)# no shutdown
! ── Quitter l'interface ───────────
ciscoasa(config-if)# exit
! ── Configuration de l'interface gig1/2 ───────────
ciscoasa(config)# interface gigabitEthernet 1/2
ciscoasa(config-if)# switchport access vlan 3
Vérification de la configuration
Nous allons vérifier avec quelques commandes dans le pare-feu que tout est bien paramétré pour toutes les interfaces et adresses IP renseignées.
! ── vérifcation des Vlans ─────────────────────────
ciscoasa(config)# show switch vlan
! ── vérifcation des IP adresse ─────────────────────────
ciscoasa(config)# show ip address
! ── vérifcation des interface ─────────────────────────
ciscoasa(config)# show interface ip brief
Mise en place d'une route par défaut plus NAT
Mise en place d'une route par défaut.
! ── route par défaut ─────────────────────────
ciscoasa(config)# route outside 0.0.0.0 0.0.0.0 192.168.2.200
! ── Configuration du NAT ─────────────────────────
ciscoasa(config)# object network INTERNET
! ── Configuration de l'object ─────────────────────────
ciscoasa(config-network-object)# subnet 192.168.1.0 255.255.255.0
ciscoasa(config-network-object)# nat (inside,outside) dynamic interface
ciscoasa(config-network-object)# exit
! ── Configuration du serveur asa ─────────────────────────
ciscoasa(config)# object network SERVER
! ── Configuration de l'object ─────────────────────────
ciscoasa(config-network-object)# subnet 192.168.3.0 255.255.255.0
ciscoasa(config-network-object)# nat (dmz,outside) dynamic interface
! ── Configuration de ACL ─────────────────────────
ciscoasa(config)# access-list OUTSIDE_IN extended permit tcp any any eq 80
ciscoasa(config)# access-list OUTSIDE_IN extended permit icmp any any
ciscoasa(config)# access-group OUTSIDE_IN in interface outside
ciscoasa(config)# exit
NAT statique — Accès entrant vers les serveurs DMZ
Le NAT dynamique (PAT) configuré précédemment permet aux serveurs DMZ d'initier des connexions vers l'extérieur. Pour que des clients externes puissent atteindre les serveurs (Web, DNS, Mail), il faut ajouter du NAT statique inbound pour chaque service.
! ── NAT statique : Serveur Web (TCP 80) ─────────────────────────
ciscoasa(config)# object network SRV-WEB
ciscoasa(config-network-object)# host 192.168.3.3
ciscoasa(config-network-object)# nat (dmz,outside) static interface service tcp 80 80
ciscoasa(config-network-object)# exit
! ── NAT statique : Serveur DNS (UDP 53) ─────────────────────────
ciscoasa(config)# object network SRV-DNS
ciscoasa(config-network-object)# host 192.168.3.1
ciscoasa(config-network-object)# nat (dmz,outside) static interface service udp 53 53
ciscoasa(config-network-object)# exit
! ── NAT statique : Serveur Mail (TCP 25) ─────────────────────────
ciscoasa(config)# object network SRV-MAIL
ciscoasa(config-network-object)# host 192.168.3.2
ciscoasa(config-network-object)# nat (dmz,outside) static interface service tcp 25 25
ciscoasa(config-network-object)# exit
ACL — Autoriser le réseau Inside vers la DMZ
Par défaut, l'ASA autorise le trafic des interfaces de sécurité haute vers basse. Dès qu'une ACL est appliquée sur l'interface inside, cette règle implicite est supprimée. Il faut donc explicitement autoriser les PC internes à communiquer avec les serveurs DMZ.
! ── ACL : Inside → DMZ ─────────────────────────
ciscoasa(config)# access-list INSIDE_DMZ extended permit ip 192.168.1.0 255.255.255.0 192.168.3.0 255.255.255.0
ciscoasa(config)# access-list INSIDE_DMZ extended permit icmp any any
ciscoasa(config)# access-group INSIDE_DMZ in interface inside
Configuration du routeur externe
Il nous reste plus qu'à configurer le routeur externe et tout sera opérationnel.
! ── Passer en mode privilégié ─────────────────────────
router> enable
! ── Entrer en mode de configuration globale ───────────
router# configure terminal
! ── Configuration de l'interface fa0/0 — vers l'ASA (Outside) ─────────────
router(config)# interface FastEthernet 0/0
router(config-if)# ip address 192.168.2.200 255.255.255.0
router(config-if)# no shutdown
router(config-if)# exit
! ── Configuration de l'interface fa0/1 — vers Internet ─────────────────────
router(config)# interface FastEthernet 0/1
router(config-if)# ip address 172.16.1.254 255.255.0.0
router(config-if)# no shutdown
router(config-if)# exit
! ── Activation du protocole RIP version 2 ──────────────────────────────────
router(config)# router rip
router(config-router)# version 2
router(config-router)# network 172.16.0.0
router(config-router)# network 192.168.2.0
router(config-router)# no auto-summary
router(config-router)# exit
Vérifications end-to-end
Une fois toutes les configurations appliquées, il est indispensable de tester la connectivité sur l'ensemble de l'architecture pour valider le bon fonctionnement de la DMZ.
! ── Depuis un PC interne (PC-1 ou PC-2) ────────────────────────────────────
C:\> ping 192.168.1.254
! Passerelle inside ASA — doit répondre
C:\> ping 192.168.3.1
! Serveur DNS en DMZ — doit répondre
C:\> ping 192.168.3.3
! Serveur Web en DMZ — doit répondre
C:\> ping 172.16.1.1
! Serveur externe (Internet) — doit répondre via NAT
! ── Depuis le pare-feu ASA ──────────────────────────────────────────────────
ciscoasa# ping outside 192.168.2.200
! Routeur externe — doit répondre
ciscoasa# ping outside 172.16.1.1
! Serveur externe — doit répondre
! ── Vérification des ACL (compteurs de hits) ────────────────────────────────
ciscoasa# show access-list
! ── Vérification des règles NAT actives ─────────────────────────────────────
ciscoasa# show nat detail
! ── Vérification des connexions actives ─────────────────────────────────────
ciscoasa# show conn
! ── Vérification de la table de routage ─────────────────────────────────────
ciscoasa# show route
Récapitulatif des flux autorisés
Le tableau ci-dessous résume l'ensemble des communications autorisées ou bloquées par l'ASA dans cette architecture DMZ.
| Source | Destination | Port / Proto | Autorisé ? |
|---|---|---|---|
| Inside | DMZ | Tous | ✅ Oui (ACL INSIDE_DMZ) |
| Inside | Outside | Tous | ✅ Oui (NAT PAT) |
| Outside | DMZ — Serveur Web | TCP 80 | ✅ Oui (ACL OUTSIDE_IN) |
| Outside | DMZ — Serveur DNS | UDP 53 | ✅ Oui (ACL OUTSIDE_IN) |
| Outside | DMZ — Serveur Mail | TCP 25 | ✅ Oui (ACL OUTSIDE_IN) |
| Outside | Inside | Tous | ❌ Non (bloqué par ASA) |
| DMZ | Inside | Tous | ❌ Non (no forward vlan1) |
| DMZ | Outside | Tous | ✅ Oui (NAT PAT) |
Conclusion
Les DMZ sont un composant essentiel de tout système de sécurité des réseaux et permettent de protéger les utilisateurs individuels comme les grandes entreprises. Ces zones offrent un niveau de protection supplémentaire en restreignant l'accès distant aux serveurs et aux informations internes, dont la violation serait particulièrement préjudiciable.
Dans ce cas pratique, nous avons mis en place une architecture DMZ complète sur un pare-feu Cisco ASA avec trois zones distinctes : Inside (réseau interne), DMZ (serveurs exposés) et Outside (Internet). Nous avons configuré le NAT dynamique (PAT) pour permettre aux réseaux internes et DMZ d'accéder à Internet, le NAT statique inbound pour rendre les serveurs DMZ accessibles depuis l'extérieur, ainsi que des ACL précises pour contrôler chaque flux entre les zones.
Il est important de garder à l'esprit que la DMZ ne protège pas contre toutes les menaces. Les attaques internes comme le sniffing de paquets ou le spoofing par e-mail ne sont pas bloquées par ce dispositif. Une DMZ est une couche de sécurité parmi d'autres, qui doit être combinée avec d'autres mécanismes : surveillance des logs, mises à jour régulières des services exposés, et segmentation fine du réseau interne.
Pour aller plus loin, l'architecture à deux pare-feux présentée en introduction est fortement recommandée en environnement de production. Elle élimine le point de défaillance unique de notre maquette : si le premier pare-feu est compromis, le second continue de protéger le réseau interne. L'utilisation de deux équipements de marques différentes renforce encore davantage cette protection en évitant qu'une même vulnérabilité ne touche les deux appareils simultanément.
Pour approfondir ce sujet, je t'invite à explorer les notions suivantes : les ACL avancées pour affiner le filtrage, le MPF (Modular Policy Framework) sur ASA pour l'inspection applicative en profondeur, ainsi que la mise en place du HTTPS/TLS sur les serveurs Web exposés en DMZ. Ces compétences sont également au programme de la certification CCNA Security de Cisco.