Comment installer pfSense dans VMWare Workstation pour créer un lab virtuel ?
Sommaire
I. Présentation
Dans ce tutoriel, nous allons apprendre à installer Pfsense au sein d'une VM VMWare Workstation dans le but de créer un lab. Cette VM assurera le rôle de routeur et pare-feu virtuel. Grâce à cette machine virtuelle Pfsense, vous allez pouvoir vous exercer sur différents sujets notamment : la gestion d'un pare-feu (autoriser ou refuser les flux du réseau local vers Internet, et inversement), faire du NAT, créer des règles de redirection de ports, monter un serveur DHCP, effectuer la mise en place d'un proxy, d'un reverse proxy, la création d'une DMZ, etc...
L'objectif va être de créer un réseau interne (192.168.100.0/24), qui pourra accéder à internet ,par l'intermédiaire du pare-feu pfSense et un réseau DMZ (192.168.200.0/24) qui hébergera un serveur web IIS qui sera accessible en dehors de notre réseau interne.
L'interface WAN, qui nous permettra de simuler l'évasion vers internet sera rattachée (en mode bridge) à une interface physique du PC sur lequel est déployé VMware Workstation. Cette interface WAN se verra attribuer une configuration IP (Adresse IP, masque de sous-réseau, passerelle et serveur DNS) par le service DHCP de notre box internet.
Pour en savoir plus sur ce qu'est une DMZ, je vous recommande à lire cet article :
Le schéma de notre lab virtuel est présenté ci-dessous :
II. Prérequis
Pour réaliser ce lab virtuel, vous aurez besoin :
- Un hôte sur lequel VMWare Workstation Pro est installé (version d'essai disponible ici).
- Le fichier d'installation de pfSense à télécharger depuis le site officiel.
- Une machine virtuelle depuis laquelle tester notre configuration réseau, sous l'OS de votre choix.
- Une machine virtuelle sous Windows Serveur 2022 pour y installer IIS.
Nous vous recommandons de lire les articles ci-dessous si vous débutez avec VMware Workstation :
III. Installer pfSense sur VMware Workstation
A. Télécharger le fichier d'installation de pfSense
Sur l'hôte où est installé VMWare Workstation Pro, ouvrez votre navigateur internet pour accéder à la page de téléchargement de pfSense.
Renseignez les paramètres de téléchargement suivants puis cliquer sur Download :
- Architecture : AMD 64 (64-bit)
- Installer : DVD Image (ISO) Installer
- Mirror : Frankfurt, Germany
Le fichier téléchargé est une archive GZ contenant l'image ISO. Décompressez l'archive GZ (à l'aide de 7-zip, par exemple) et conservez l'espace de stockage de l'image ISO récupérée.
B. Créer une machine virtuelle pour pfSense
Dans VMWare Workstation Pro, ouvrez l'assistant de création d'une machine virtuelle depuis le menu "File > New Virtual Machine".
Une fois l'assistant lancé, nous allons sélectionnez le mode de création "Typical" et cliquez sur "Suivant".
A cette étape, nous allons sélectionner l'option d'installation depuis une image ISO et renseigner l'emplacement de l'image.
Remarque : VMWare Workstation Pro a automatiquement détecté le type de système d'exploitation à utiliser pour cette VM : "FreeBSD version 10 and earlier 64-bit."
Ensuite, nous allons nommer notre machine virtuelle et définir l'emplacement où stocker les données de la VM (fichier de configuration, disque dur virtuel, etc.).
Nous allons pouvoir configurer le disque dur virtuel de la VM. Dans notre cas, nous sommes dans un lab virtuel donc je vais conserver les paramètres par défaut proposés par l'assistant de création de VM, et cliquer sur "Suivant".
Enfin, nous allons finaliser la création de la VM en s'assurant qu'elle ne démarre pas automatiquement une fois créée. Nous allons modifier sa configuration, notamment les interfaces réseaux nécessaires. Voici l'option à décocher avant de cliquer sur "Finish" :
C. Configurer la machine virtuelle et ses interfaces réseaux
Les paramètres à modifier sur notre machine virtuelle sont les suivants :
- Passer la RAM à 2 Go (2048 Mo), minimum
- Passer le nombre de cœur de CPU à 2, minimum
Nous allons créer 2 "LAN Segment" qui vont permettre d'avoir plusieurs réseaux virtuels au sein de VMWare Workstation distincts les uns des autres. Pour ce faire, lorsque vous êtes sur les paramètres d'une interface réseau, cliquez sur "LAN Segment". Ensuite, cliquer sur "Add" et nommez-le.
Dans notre cas, nous allons créer 2 LAN Segment : LAN et DMZ.
Ensuite, il faut modifier le type de connexion au réseau de la première interface afin de s'assurer qu'elle soit sur "Bridge". Ensuite, cliquez sur "Add" pour ajouter 2 interfaces réseau supplémentaires.
L'interface réseau n°2 sera rattaché au LAN Segment "LAN" et l'interface réseau n°3 a LAN Segment "DMZ".
Pour terminer, enregistrez l'ensemble des modifications.
D. Installer pfSense sur la VM VMware Workstation
Maintenant que notre VM est configurée selon notre besoin, nous allons pouvoir la démarrer. Cliquer sur "Power on this virtual machine". La VM va automatiquement démarré sur le fichier d'installation ISO de pfSense.
L'installeur de pfSense va d'abord analyser la configuration matérielle de la VM et charger l'assistant d'installation.
Une fois le chargement terminé, veuillez accepter le contrat d'utilisation de pfSense (Tapez sur Entrée).
Pour poursuive l'installation, sélectionnez "Install pfSense" et appuyez sur Entrée.
A l'étape de partitionnement du disque, nous allons utiliser le mode "Auto (ZFS)" présélectionné et appuyer sur Entrée.
A cette étape, un récapitulatif du partitionnement automatique ZFS est présenté, appuyez sur Entrée pour valider.
Au travers du système de fichier ZFS, pfSense peut-être installé sur de multiple disques pour assurer une disponibilité accrue du pare-feu. Pour en savoir plus sur le RAID, je vous invite à consulter cet article Wikipédia - un article sur IT-Connect arrive bientôt 🙂 !
Dans notre cas, nous allons faire une installation sans redondance (mode stripe). Appuyez sur Entrée.
Pour sélectionner le disque dur virtuel, appuyez sur Espace puis sur Entrée et sélectionner "Yes" (flèche gauche et Entrée).
L'installation est relativement rapide. Une fois achevé, validez le redémarrage de la VM.
E. Premier démarrage de pfSense
Au premier démarrage, pfSense détecte automatiquement les interfaces réseau. La plupart du temps, vous verrez l'interface WAN rattachée à l'interface em0 correspondant à la première interface ajoutée. L'interface LAN quant à elle sera rattachée à l'interface em1, correspondant à la deuxième interface ajoutée à la VM.
Comme on peut le voir, la configuration IP de l'interface WAN a été attribuée par le serveur DHCP de mon réseau. Nous allons configurer l'interface LAN avec sa configuration IP adéquate.
Pour modifier la configuration IP de notre interface LAN, nous allons procéder comme suit :
Choisissez l'option 2.
Ensuite, nous allons sélectionner l'interface LAN en entrant l'option 2 et indiquer que nous n'allons pas configurer l'interface via DHCP.
Enfin, nous allons définir la configuration IP de notre interface manuellement :
- Adresse IP de l'interface LAN : 192.168.100.1
- Masque de sous-réseau (en notation CIDR) : 24 = 255.255.255.0
- Pas de passerelle
- Pas de configuration IPv6
- Pas de serveur DHCP IPv4 - il pourra être configuré par la suite depuis l'interface Web
Une fois terminé, l'URL pour accéder à l'interface Web d'administration de pfSense s'affiche et faire "Entrée" pour terminer.
IV. Première connexion à l'interface d'administration de pfSense
A. Se connecter à l'interface web de PfSense
Depuis le poste client (c'est-à-dire depuis notre réseau LAN virtuel), nous allons nous connecter à l'interface Web d'administration de pfSense à l'adresse IP "https://192.168.100.1/".
Au préalable, il est nécessaire de configurer l'interface réseau de la machine virtuelle cliente comme suit :
- Adresse IPv4 : 192.168.100.2
- Masque : 255.255.255.0 ou /24
- Passerelle : 192.168.100.1
- Serveur DNS : 1.1.1.1 ou celui de votre choix
Le certificat de sécurité SSL utilisé pour la connexion HTTPS est auto-signé, il est donc normal d'avoir un avertissement de sécurité. Il est possible, selon vos besoins de définir un certificat provenant d'une autorité de certification d'entreprise ou publique.
Pour vous connecter à l'interface Web d'administration, il est nécessaire de saisir l'identifiant et le mot de passe prédéfini à l'installation. Voici les identifiants par défaut :
- Identifiant : admin
- Mot de passe : pfsense (à modifier par la suite)
B. L'assistant de configuration Web
Une fois connecté, l'assistant de configuration Web s'ouvrira. Cliquez sur "Next".
Cliquez à nouveau sur "Next" pour valider les modalités de support fourni par l'éditeur.
Ici, nous allons préciser les serveurs DNS de notre firewall pfSense, à savoir "1.1.1.1" et "8.8.8.8", et cliquer sur "Next". Adaptez ces valeurs si vous le souhaitez.
A cette étape, nous allons configurer le serveur de temps qui est important pour bénéficier de logs à jour. Sélectionnez le fuseau horaire correspondant à votre emplacement puis cliquez sur "Next".
A l'étape 4, conservez les paramètres prédéfinis par pfSense pour la configuration de l'interface WAN en veillant à décocher les 2 options suivantes : "Block private networks form entering via WAN" et "Block non-internet routed networks from entering via WAN". Ces deux paramètres, lorsque pfSense est installé dans un réseau local existant (lab virtuel), permet de ne pas bloquer le trafic reposant sur des adresses IP privée. Ici, entre notre box internet et pfSense.
A l'étape 5 de l'assistant, conservez la configuration de l'interface LAN que nous avons fait en amont.
A l'étape 6 de l'assistant, définissez un nouveau mot de passe et cliquer sur "Next".
A l'étape 7, cliquez sur "Reload" afin de recharger la configuration de pfSense avec les informations que nous venons de définir.
Après quelques secondes, nous arrivons à la fin de l'assistant de configuration. Nous pouvons cliquer sur "Finish" pour accéder au tableau de bord.
C. PfSense : ajouter une interface DMZ
Pour ajouter l'interface DMZ à PfSense, accédez au menu "Interfaces" puis "Assignments".
On constate que l'interface "em2" peut être ajoutée : cliquez sur "Add" puis "Save".
En cliquant sur le nom de l'interface sur la page précédente, nous pouvons accéder à sa configuration. Ici, nous allons activer l'interface et la nommer DMZ au lieu de OPT1 afin de l'identifier facilement. Nous allons également définir la configuration IPv4 statique.
Pour terminer, cliquer sur "Save" et "Apply Changes".
Désormais, PfSense est initialisé et les trois interfaces réseau sont prêtes. A partir des réseaux "LAN" et "DMZ" nous pouvons accéder à Internet grâce aux règles de NAT dynamiques créées par défaut par PfSense.
V. Installer un serveur Web
Comme indiqué en introduction de cet article, nous allons installer un serveur Web dans la zone DMZ.
L'installation des rôles et services de serveur Web sous Windows Serveur est présentée dans la vidéo associée à ce tutoriel, et vous pouvez également vous référer à cet article :
La suite de cet article est à adapter à votre besoin. En effet, vous pouvez aussi utiliser une distribution Linux sur laquelle vous installez Apache pour publier votre site internet.
Dans le cadre de notre lab virtuel, la configuration IP du serveur Web (pouvant être adaptée) est la suivante :
- Adresse IPv4 : 192.168.200.2
- Masque : 255.255.255.0 ou /24
- Passerelle : 192.168.200.1
- Serveur DNS : 1.1.1.1 ou celui de votre choix
VI. Les règles de pare-feu avec pfSense
Une fois votre serveur Web prêt à être utilisé, nous allons définir les règles de pare-feu permettant d'accéder à serveur Web sur pfSense. L'objectif étant de limiter les flux au strict nécessaire, notamment pour que depuis le LAN, nous puissions accéder à la DMZ uniquement pour contacter le serveur Web en HTTP.
Nous allons créer les règles de flux suivantes :
Interface | Action | Source | Destination | Protocole(s) & Port(s) |
LAN | Bloquer | LAN net | DMZ net | Tous |
LAN | Autoriser | LAN net | Serveur Web (192.168.200.2) | TCP - IPv4 - 80 (HTTP) |
DMZ | Bloquer | DMZ net | LAN net | Tous |
DMZ | Autoriser | DMZ net | Tous | TCP - IPv4 - 80 (HTTP) |
DMZ | Autoriser | DMZ net | Tous | TCP - IPv4 - 443 (HTTPS) |
DMZ | Autoriser | DMZ net | Tous | TCP/UDP - IPv4 - 53 (DNS) |
La création d'une nouvelle règle se fait depuis l'interface Web d'administration pfSense, dans le menu suivant : Firewall > Rules.
Ensuite, sélectionnez l'interface sur laquelle créer la règle puis cliquez sur "Add".
A. LAN - Bloquer les flux vers la DMZ
D'abord, sélectionnez l'interface LAN puis cliquez sur "Add", puis renseignez les paramètres de règle suivants :
- Action : Block
- Interface : LAN
- Address Family : IPv4+IPv6
- Protocol : Any
- Source : LAN net
- Destination : DMZ net
- Description : Bloquer les flux LAN vers la DMZ
Ce qui donne :
B. LAN - Autoriser l'accès au serveur Web sur la DMZ
Sélectionnez l'interface LAN puis cliquez sur "Add", puis renseignez les paramètres de règle suivants :
- Action : Pass
- Interface : LAN
- Address Family : IPv4
- Protocol : TCP
- Source : LAN net
- Destination : Single host or alias - 192.168.200.2
- Description : Accès serveur Web en DMZ depuis le LAN
Ce qui donne :
C. DMZ - Bloquer les flux vers le LAN
Cette fois-ci, sélectionnez l'interface DMZ puis cliquez sur "Add", puis renseignez les paramètres de règle suivants :
- Action : Block
- Interface : DMZ
- Address Family : IPv4+IPv6
- Protocol : any
- Source : DMZ net
- Destination : LAN net
- Description : Bloquer les flux de la DMZ vers le LAN
Ce qui donne :
D. DMZ - Autoriser l'accès à internet (HTTP)
Sélectionnez l'interface DMZ puis cliquez sur Add, puis renseignez les paramètres de règle suivants :
- Action : Pass
- Interface : DMZ
- Address Family : IPv4
- Protocol : TCP
- Source : DMZ net
- Destination : any - HTTP (80)
- Description : Autoriser l'accès à internet depuis la DMZ
Ce qui donne :
E. DMZ - Autoriser l'accès à internet (HTTPS)
Sélectionnez l'interface DMZ puis cliquez sur Add, puis renseignez les paramètres de règle suivants :
- Action : Pass
- Interface : DMZ
- Address Family : IPv4
- Protocol : TCP
- Source : DMZ net
- Destination : any - HTTPS (443)
- Description : Autoriser l'accès à internet depuis la DMZ (HTTPS)
Ce qui donne :
F. DMZ - Autoriser la résolution DNS
Pour que notre serveur web puisse accéder à Internet, il doit pouvoir effectuer de la résolution de noms vers Internet (si l'on utilise un résolveur DNS externe). Sélectionnez l'interface DMZ puis cliquez sur "Add", puis renseignez les paramètres de règle suivants :
- Action : Pass
- Interface : DMZ
- Address Family : IPv4
- Protocol : TCP/UDP
- Source : DMZ net
- Destination : any - DNS (53)
- Description : Autoriser la résolution DNS depuis la DMZ
L'ensemble de ces règles vont nous permettre de gérer les flux de façon stricte entre nos trois réseaux, conformément au tableau présenté ci-dessus.
VII. La règle de NAT pour le serveur Web
Dans cette dernière partie, nous allons mettre en place une règle de NAT pour permettre l'accès au serveur Web hébergé sur notre DMZ depuis l'extérieur du réseau local de notre lab virtuel, au travers de l'interface WAN. Cette règle doit être adaptée en fonction de l'adresse IP du serveur web et du port utilisé (HTTP / HTTPS / ou numéro de port exotique).
Si vous avez besoin d'approfondir la notion de NAT, lisez cet article :
Pour ce faire, naviguez dans le menu "Firewall > NAT" puis cliquez sur "Add".
Voici la configuration de notre règle de NAT :
- Type de règle : Port Forward
- Interface : WAN
- Adress Family : IPv4
- Protocol : TCP
- Destination : WAN address
- Destination port range : HTTP (80)
- Redirect target IP : Adress or Alias - 192.168.200.2
- Redirect target port : HTTP
Ce qui donne :
Suite à la mise en place de cette règle de NAT, une machine située à l'extérieur du réseau de notre Lab (côté WAN, donc votre machine physique, par exemple) doit pouvoir accéder au serveur Web ! Dans le navigateur, il faut indiquer l'adresse IP de l'interface WAN du Pfsense et grâce à la règle de NAT, le flux sera redirigé vers le serveur Web.
Ci-dessous, nous pouvons voir que j'ai bien accès à la page par défaut du serveur web IIS.
VIII. Conclusion
Nous arrivons à la fin de ce tutoriel dans lequel nous avons vu comment mettre en place un firewall virtuel avec VMWare Workstation Pro sur un environnement de Lab. Ensuite, nous avons configuré pfSense, les règles de firewall et de NAT afin de rendre disponible le serveur Web en DMZ depuis l'extérieur.
N'hésitez pas à partager vos remarques et questions en commentaire, et vous pouvez regarder la vidéo YouTube sur le même sujet réalisée par Florian 🙂 !
j’admets que je n’y connais rien (ou pas grand-chose), mais quand même, voyons, je voudrais savoir de quoi on parle…
==>> Depuis le poste client (c’est-à-dire depuis notre réseau LAN virtuel), nous allons nous connecter à l’interface Web d’administration de pfSense à l’adresse IP « https://192.168.100.1/ ».
Au préalable, il est nécessaire de configurer l’interface réseau de la machine virtuelle cliente comme suit :
Adresse IPv4 : 192.168.100.2
Masque : 255.255.255.0 ou /24
Passerelle : 192.168.100.1
Serveur DNS : 1.1.1.1 ou celui de votre choix <<==
C'est incompréhensible pour moi:
A moins que je me sois trompé, sur PfSense, il n'y a pas de navigateur (version 2.7.2)?…
Alors comment faire pour se connecter à son interface?
De plus si mon interface LAN a une adresse en 192.168.100.1/24 (ou autre) Comment la mettre en 100.2… Et accéder à 100.1?
S'il ne s'agit pas de PfSense, alors c'est qu'on parle de la machine "Physique", non?
Mais là encore, en mettant une IP en dur sur la machine physique, ne va-t-on pas vers un souci…?
Pourquoi toujours dire "la machine cliente"?
Cela prête vraiment à confusion et ne facilite absolument pas la compréhension de la situation…
En bref, en suivant cette procédure, je n'arrive pas du tout à comprendre comment faire la première connexion.
Est-il possible d'être plus clair?
Merci…
Bonjour,
L’interface cliente fait référence à l’interface de la VM simulant le poste de travail (client) depuis lequel nous souhaitons nous connecter avec un navigateur Web à pfSense.
Je vous invite à regarder la vidéo qui présente, pas-à-pas, cet article pour comprendre et voir comment réaliser les actions de configurations 🙂
Bonne journée,
Clément
Bonjour,
Merci pour cet article et les détails qui accompagnent les explications.
J’ai repris ce lab mais après l’installation du pfSense, je ne récupère pas via le DHCP de ma freebox, l’adresse ip de l’intrerface WAN, sachant que ma première interface au niveau de VmWare est configuré en bridge.
Auriez-vous quelques approches de solutions à m’apporter?
Bonne journée,
Jules
Bonjour Jules,
Dans un premier temps, il faudrait que tu regardes dans les paramètres réseau de VMWare (Edit > Virtual Network Editor) si l’interface Bridge de VMware s’appuie bien sur l’interface réseau de ton PC qui est réellement connectée au réseau de la Freebox. Sinon, vérifies que c’est bien l’interface WAN de Pfsense qui est associée à la carte réseau virtuelle en Bridge (en principe, c’est la première, tu peux vérifier grâce aux adresses MAC).
Bon courage,
Florian
J’ai fait tout les configurations requises mais je n’arrive toujours pas à me connecter sur le page web depuis mon PC. Que faire ? est ce qu’il faudrait que l’adresse réseau de mon pc soit dans la même plage que celle du réseau wan pour que ça passe ?
Vérifie que tes cartes réseaux ne se soit pas interchanger dans les settings de vmware dans ta machine virtuelle pfsense
em0 = wan
em1=lan
em2=dmz
J’ai fait tout pareil comme expliqué dans la vidéo et l’article… et je n’arrive pas a me connecter a l’interface de pfsense….
Bonjour,
Après avoir fait l’installation et la configuration, j’ai installé un serveur de test derrière Pfsense.
J’accède bien en RDP après avoir ouvert le port 3389 juste pour mon IP et idem pour le port 80.
Cependant quand je suis sur le serveur et que je fais mon-ip.com
l’adresse indique l’IP publique du Pfsense et non celle du serveur.
Est-ce que j’ai loupé une config ou j’ai une manip autre à faire ?
Merci encore pour ce tuto.
Christian
Bonjour,
1) Sur ma version 2.7.2 de pfSense pour indiquer une source ou une destination j’ai le choix entre autres paramètres à LAN (ou DMZ).subnets ou LAN(ou DMZ).address
Mais je n’ai pas par exemple « LAN net » comme indiqué dans le tuto.
J’ai essayé les deux options subnets et address. Cela ne semble pas poser de problème.
2) Problème avec le NAT
J’ai donc configuré le pare-feu pfsense.
Mais je dois avoir un problème avec le transfert de port avec le NAT.
Lorsque j’essaye d’atteindre le serveur Web IIS, installé sur Windows Server 2022, depuis le WAN soit par exemple depuis le navigateur de ma machine hôte en indiquant comme adresse 192.168.200.2 j’obtiens :
« Désolé, impossible d’accéder à cette page ».
Par contre lorsque je lance un navigateur depuis une VM sur le même réseau 192.168.200.0 (en LAN Segment sur DMZ) tout fonctionne à merveille.
J’obtiens bien la page par défaut de IIS.
J’en conclus que j’ai un problème avec le NAT.
Merci pour l’attention que vous portez à mon cas.