Zone démilitarisée (DMZ)

Publié le par BORY DIALLO

En informatique, une zone démilitarisée, ou DMZ est un sous-réseau séparé du réseau local et isolé de celui-ci et 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.
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 firewall. 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.

 

Architecutre

Explication de l’architecture
Cette architecture est assez éloquente pour être expliquée en détails. Néanmoins, voici donc ses fondamentaux :
Sur notre architecture, le Firewall est relié à trois réseaux : DMZ, le LAN et INTERNET.

  • L’interface enp0s9 est celle qui est connectée à internet avec l’adresse réseau 192.168.0.0/16
  • L’interface enp0s3 qui est connectée au LAN dont l’adresse réseau est 172.16.0.0/16. Ce pendant, la passerelle de toutes les machines du LAN est 172.16.0.254/16
  • L’interface enp0s8 connectée à la DMZ dont l’adresse réseau est 169.10.0.0/16 . Elle est donc la passerelle des serveurs WEB et Asterisk de la DMZ. Son adresse est 168.18.0.254/16

Présentation des règles qui doivent être fixées sur le firewall
Le réseau (LAN) contient les machines du réseau local, pour leur sécurité, le firewall

  • Les connexions depuis internet vers le LAN sont interdites
  • Les connexions depuis la DMZ vers le LAN sont interdites 
  • Les connexions depuis le LAN vers la DMZ sont autorisées
  • Les connexions depuis le LAN vers internet sont autorisées
  • Les connexions depuis internet vers la DMZ sont autorisées
  • Les connexions depuis la DMZ vers internet sont autorisées 

Une machine sur INTERNET doit pouvoir accéder aux bastions se trouvant dans la DMZ. Pour des raisons de sécurité, on ne souhaite pas que la machine sur INTERNET accède directement aux différents serveurs, avec son adresse IP.

Pour cela, il faut mettre en place un ré-routage de ports ou port forwarding pour que toute connexion arrivant sur l'interface externe du Parefeu (firewall), soit redirigée vers le port standard ou défini du serveur concerné (dans la DMZ) par la requête.

 

Dans le sens (DMZ) vers (INTERNET) et (LAN) vers (DMZ), une translation d'adresses est nécessaire et sera réalisée !

 

Mise en oeuvre

  • Config IP du parefeu

Comme sur l’architecture, l’interface enp0s9 est celle directement connectée au réseau publique, et nous avons décidé de lui fournir des élément TCP/IP en mode DHCP et elle a une adresse IP 192.168.6.185 /16

Récap

  • enp0s3 qui a 172.16.0.254 /16 qui est directement connecté au LAN
  • enp0s8 qui a 169.18.0.254 /16 qui est directement connecté à la DMZ
  • enp0s9 qui a 192.168.6.185/16 qui est directement connecté au réseau publique (internet)

Voici les détails

Activation du routage 

Rendez-vous dans /etc/sysctl.conf pour faire ceci:

Ensuite ceci:

Étape suivante : Config IP des autres machines

Dans cette partie, la vigilance est de mise. Il faut pour chaque machine fixer sa passerelle par défaut. Donc la notion de passerelle est primordiale !

Après les différentes config IP, les machines du LAN et celles de la DMZ pourront naturellement communiquer. Preuve :

 

Mise en place des règles de filtrage et de translation d’adresses

       Du NAT pour la DMZ

Puisque les machines de la DMZ doivent accéder à internet pour pouvoir télécharger des paquets afin de mettre en place leurs services, nous allons donc faire NAT sur le firewall comme suit :

# iptables -t nat -A POSTROUTING -s 169.18.0.0/16 -o enp0s9 -j MASQUERADE

En claire :

Après cette commande sur le firewall, les machines de la DMZ ont accès à internet !
Sur le serveur WEB, on a déjà installé apache2 et ses ingrédients, nous avons ensuite héberger notre site dans un dossier du nom de dmz, Voici d'ailleurs son contenu

Pour des mesures de sécurité, nous allons changer le port d'écoute de notre serveur Web. On lui fait écouter sur le 8080 au lieu de 80.

  • Dans /etc/apache2/ports.conf
  • Dans /etc/apache2/sites-enabled/000-default.conf

# /etc/init.d/apache2 restart

Est-ce que le serveur Web écoute réellement sur le port auquel nous l'avons imposé ?

C'est claire !

Règles de filtrage et de redirection

Naturellement, ces règles sont à appliquer sur le parefeu

  • Redirection de toutes les connexions HTTP provenant du LAN vers le serveur Web de la DMZ

On appelle cela du forwarding

# iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 80 -j DNAT --to-destination 169.18.0.2:8080 

En claire :

Pas besoin de commentaires !

 

Test de bon fonctionnement

Depuis un navigateur du LAN, tentons d’accéder au serveur. Il faudra juste saisir l’adresse IP de la passerelle du LAN

Résultat

ça marche comme sur des roulettes

  • Interdiction des connexions depuis la DMZ vers le LAN

Voici la règle qui gère cette partie

Test de bon fonctionnement

Depuis le serveur Web de la DMZ, tentons de joindre une machine du LAN

Voilà ! Les connexions depuis la DMZ vers le LAN sont interdites. C'est de la sécurité à l'état pur !

  • Accessibilité du service Web depuis internet

Puisque les machines du LAN ne sont pas directement accessibles depuis le réseau publique, c’est pourquoi c’est l’interface externe du firewall qui va recevoir les requêtes pour les rediriger vers le serveur adéquat.
Pour mettre cette option en place, nous allons faire du port forwarding (redirection de ports). Celà consiste à rediriger toutes les connexions web reçues sur l’interface externe du firewall (enp0s9) vers la machine 169.18.0.2 (le serveur Web dans la DMZ).

Voici la règle qui s'occupe de ça :

# iptables -t nat -A PREROUTING -i enp0s9 -p tcp --dport 80 -j DNAT --to-destination 169.18.0.2:8080

Facilitons les choses ...
Sur le serveur WEB, on se rend dans le dossier /etc/apache2/sites-available et créer un fichier que je nomme dmz.conf pour y mettre ceci :
<VirtualHost 169.18.0.2>
          ServerAdmin      admin@localhost
          DocumentRoot   /var/www/html/dmz
          DirectoryIndex index.html
</VirtualHost>

 

  • Activer le site virtuel

# a2ensite dmz.conf

  • Recharger le serveur

# /etc/init.d/apache2 reload

 

Test de bon fonctionnement
Sur une machine du réseau publique, on a qu’a saisir l’adresse IP de l’interface externe du firewall pour accéder au site héberger sur le serveur Web dans la DMZ.  
😉

 

  • Autorisation d'accès à internet aux machines du LAN

La règle suivante pourrait s'occuper de ça :

# iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -o enp0s9 -j MASQUERADE

Preuve :

Accès libre à internet !

Remarque: Les machines depuis l'extérieur ne pourront pas accéder au machines du LAN, parce que tout simplement nous n'avons pas fait du NAT dans ce sens. Le principe même de la DMZ nous interdit de le faire !

  • Redirection des requêtes du port 5060 (la téléphonie) sur son serveur adéquat

Dans cette partie, nous allons mettre en place un serveur de téléphonie Asterisk sur la machine 169.18.0.1.(Censée être le serveur de téléphonie). Tous les paquets sont déjà installés, puisqu’elle a accès à internet !

Config basique du serveur de téléphonie

  • On crée deux comptes dans  /etc/asterisk/sip.conf
  • On définie le plan de numérotation dans /etc/asterisk/extensions.conf

 

Après avoir redémarrer le serveur de téléphonie, il faut maintenant faire la redirection de ports sur le firewall

 

  • Configuration sur le firewall
    Rediriger toutes les connexions udp du port 5060 arrivant sur l’interface enp0s9 vers la machine 169.18.0.1 sur le même port.

Voici la règle qui gère cela :

# iptables -t nat -A PREROUTING -i enp0s9 -p udp --dport 5060 -j DNAT --to-destination 169.18.0.1:5060

En claire :

 

Test de bon fonctionnement

  • Connexion du compte 1000

 

  • Connexion du compte 1001
  • Communication entre les deux clients
  • Réaction du serveur

 

Comme nous l’avons constaté, les connexions arrivent sur l’interface externe du firewall qui sont ensuite redirigées vers le serveur adéquat. C’est ça le port forwarding.

 

Le principe de la DMZ se résume à ceci : Accéder aux serveurs de l'entreprise depuis l'extérieur tout en gardant les données sensibles de celle-ci  à l'abris des "bandits digitaux" !

Publié dans Sécurité

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article