Monter une DMZ avec Pfsense
Récemment j’ai refait un peu le réseau chez moi (opération durant laquelle j’ai appris les ACLs sous BIND, voire mon précédent billet) car je voulais mettre en place une DMZ.
Le firewall que j’utilise est l’excellent PfSense dans la dernière version stable 1.2.3 que je recommande chaudement. La version 2.0 est actuellement en béta et devrait être là avant la fin de l’année.
Voici donc un modeste tutoriel à destination de ceux qui souhaiteraient reproduire cette architecture.
Pour commencer il y a des prérequis matériels. Il vous 3 cartes réseau dans la machine dédiée à PfSense.
1 pour le LAN 1 pour le WAN et 1 pour la DMZ. Dans le tuto, PfSense est déjà en production avec le WAN et le LAN configurés.
Après avoir inséré la nouvelle carte et rebooté la machine il faut la déclarer sur PfSense. On se connecte alors sur la console en SSH avec le compte admin (le même que pour le GUI).
sur le menu présenté on choisit : 1) Assign Interfaces
pfSense console setup *************************** 0) Logout (SSH only) 1) Assign Interfaces 2) Set LAN IP address 3) Reset webConfigurator password 4) Reset to factory defaults 5) Reboot system 6) Halt system 7) Ping host Shell 9) PFtop 10) Filter Logs 11) Restart webConfigurator 12) pfSense Developer Shell 13) Upgrade from console 14) Disable Secure Shell (sshd)
PfSense vous pose ensuite des questions :
Valid interfaces are: em0 00:1b:21:10:5f:47 (up) rl0 00:08:54:55:1f:68 (up) em1 00:1b:21:10:5c:7a (up) tun0 0 (up) Do you want to set up VLANs first? If you are not going to use VLANs, or only for optional interfaces, you should say no here and use the webConfigurator to configure VLANs later, if required. Do you want to set up VLANs now [y|n]?n *NOTE* pfSense requires *AT LEAST* 2 assigned interfaces to function. If you do not have two interfaces you CANNOT continue. If you do not have at least two *REAL* network interface cards or one interface with multiple VLANs then pfSense *WILL NOT* function correctly. If you do not know the names of your interfaces, you may choose to use auto-detection. In that case, disconnect all interfaces now before hitting 'a' to initiate auto detection. Enter the LAN interface name or 'a' for auto-detection: em1 Enter the WAN interface name or 'a' for auto-detection: em0
em0 et em1 sont déjà configurés il s’agit des interfaces LAN et WAN. rentrez les alors à leur place respective.
Dans mon cas la nouvelle carte réseau est rl0 (FreeBSD sur lequel repose PfSense nomme les interfaces par le nom du pilote ici une Realtek)
Il faut alors rentrer rl0 quand PfSense vous demande de spécifier une interface optionnelle :
Enter the Optional 1 interface name or 'a' for auto-detection (or nothing if finished): rl0
On presse Entrée à la question :
Enter the Optional 2 interface name or 'a' for auto-detection (or nothing if finished):
On valide ensuite la configuration :
Do you want to proceed [y|n]?y
Voila on en a terminé avec l’ajout de la nouvelle carte. On se rend ensuite dans le GUI.
Après vous être logué passez la souris sur Interfaces dans la barre de menu et cliquez sur OPT1 :
.
On commence par cocher la case :
Enable Optional 1 interface
Puis on lui donne un nom ici DMZ.
Dans la partie General configuration, on choisit le type d’interface Static ou DHCP (ici Static)
On passe ensuite à la partie IP configuration et on rentre l’IP de l’interface ici 192.168.2.1.
On valide ensuite avec le bouton Save en bas de page.
On passe ensuite la souris sur Services dans la barre de menus et on clique sur DHCP Server.
Il y a 2 onglets un LAN et UN DMZ, on clique sur DMZ et on paramètre ou pas le serveur DHCP sur l’interface DMZ. En ce qui me concerne le DHCP est activé avec des réservations d’adresses ce qui me permets de cocher la case :
Deny unknown client
De cette façon aucune machine ne pourra obtenir d’IP dans la zone DMZ sans que ce soit expressément autorisé.
A ce stade votre DMZ est prête à accueillir les machines. En ce qui me concerne mon installation comporte 2 switchs un pour le LAN et un pour la DMZ.
Le plus important reste à venir à savoir le paramétrage des règles du Firewall. Sur mon installation le LAN est autorisé à communiquer avec la DMZ mais la DMZ ne peut pas aller vers le LAN alors que les machines peuvent aller sur Internet. Pour réaliser cette dernière partie on passe sa souris sur Firewall dans la barre de menu et on clique sur Rules. On clique sur l’onglet DMZ et on crée la règle suivante :
Voici les détails de la règle :
On laisse tout le reste par défaut.
Il ne vous reste plus qu’à créer les règles sur l’interface WAN pour atteindre les serveurs dans la DMZ (ici serveur web et mail). Vous pouvez passer par les règles de NAT qui peuvent créer automatiquement les règles du Firewall.