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…
Source : https://www.it-connect.fr/tuto-vmware-workstation-lab-virtuel-pfsense/
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.
1.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.
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 » :
2.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.
3. 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.
4. 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.
5. Première connexion à l’interface d’administration 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)
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.
6. 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.
7. Installer un serveur Web :
Comme indiqué en introduction de cet article, nous allons installer un serveur Web dans la zone DMZ.
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
8. 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« .
9.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 :
9.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 :
9.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 :
9.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 :
9.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 :
9.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
10. 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.
11. Serveur DHCP et DNS Filtrant :
Mise en place d’un filtrage de contenu au niveau du DNS via le serveur DHCP sur le réseau LAN
- Dans le menu service sélectionnez DHCP Server