
pfSense est une distribution spécialisée de FreeBSD, qui est un système d'exploitation Unix libre, reconnu pour sa stabilité, sa sécurité et sa performance. Cette base solide confère à pfSense une robustesse et une fiabilité idéales pour les tâches de réseau et de sécurité.
pfSense est éditée par l'entreprise Netgate et existe en deux versions distinctes :
pfSense assure fondamentalement deux rôles :
Il propose de nombreuses autres fonctionnalités, directement intégrées, ou disponibles au travers d'un gestionnaire de packages :
pfSense peut être installé sur une large variété de matériels, allant des ordinateurs standard aux appareils spécialisés conçus pour le réseau. On veillera cependant à ces spécifications :
Bien entendu, et c'est ce qui nous intéresse ici, on peut également installer pfSense dans un environnement virtuel (Hyper-V, VMWare, Proxmox VE, VirtualBox), en respectant ces spécifications.
Nous allons donc nous intéresser ici à l'installation de pfSense dans un environnement virtuel basé sur VirtualBox, devenant un élément essentiel à la mise en place d'un laboratoire virtuel personnel.
Depuis la sortie de la version 2.8, Netgate propose un installateur universel pfSense (disponible ici). Même si ce téléchargement reste gratuit, il nécessite la création d'un compte et un processus d'achat en ligne :

Ce processus d'achat m'a laissé quelque temps assez perplexe sur l'évolution des choses avec Netgate. Avec le recul, il me semble que c'est un moyen assez fair-play de promouvoir leur offre commerciale, tout en conservant la dimension open source de pfSense. C'est pour cela que je ne propose pas ici un lien de téléchargement direct vers l'image ISO de cet installateur.
Cependant, il est encore possible de récupérer les images ISO des anciens installateurs offline de pfSense CE (Community Edition) pour architecture x64 (AMD64) sur ce miroir (jusqu'à la version 2.7.2). Voici le lien direct vers la v2.7.2 de l'image ISO : pfSense-CE-2.7.2-RELEASE-amd64.iso.gz.
⚠️ Il existe plusieurs versions d'installateur :
ISO/IPMI/VM pour déployer pfSense sur une machine virtuelle (celui qui nous intéresse ici)Memstick USB destiné à l'installation sur un machine physique avec une clé USB, grâce à l'utilitaire rufus.AARCH64 est réservée à un matériel spécifique Netgate (processeur ARM).Pour la rédaction de ce qui suit, j'ai utilisé la version netgate-installer-v1.2-RELEASE-amd64.iso de l'installateur.
Le fichier obtenu est compressé selon le format gzip (.gz), il faut donc extraire l'image :
gzip -d netgate-installer-v1.2-RELEASE-amd64.iso.gz
Sous Windows, vous pourrez notamment utiliser 7zip, en GUI :

ou bien directement en PowerShell :
7z x netgate-installer-v1.2-RELEASE-amd64.iso.gz
Déplacer ensuite l'image ISO récupérée dans votre emplacement préféré pour les stocker.
Depuis VirtualBox, taper CTRL N (ou menu Machine / Nouvelle), nommer la VM pfSense et choisir le type FreeBSD x64 (pfSense est en effet une distribution de FreeBSD) :

On lui octroie ensuite dans les sections hardware et Hard Disk ce qui doit correspondre aux propositions par défaut :


Un petit clic sur Finish et notre machine est maintenant créée, nous allons finalier la configuration, puis lancer l’installation.
Cliquer sur le bouton Configuration pour faire apparaître les paramètres de la VM. On désactive les ressources audios parfaitement inutiles :

Les ports série et USB doivent être désactivés, car ils ne sont pas plus utiles pour notre cas :

Dans la rubrique réseau, nous allons configurer deux interfaces. Une première correspond à la partie WAN de pfSense, l’accès à Internet, que l’on obtient par le mode NAT proposé par VirtualBox, simple et sécurisé.
Il est possible d'utiliser le mode
bridge, mais uniquement sur une interface physique filaire, si possible dédiée. Cette solution permet si besoin d'exposer l'interface WAN sur le réseau en amont. Le mode NAT permet quant à lui d’accéder à Internet sur des machines hôtes qui sont sur un réseau assez sécurisé : en effet, dans ce mode, le pare-feu en amont ne voit que la machine hôte, qui "partage sa connexion" avec la VM.
Nous choisissons donc ici le mode NAT :

La seconde interface réseau correspond au côté LAN de pfSense ; on l’associe à un réseau virtuel interne (qu’on appellera donc "LAN") sur lequel nous pourrons connecter nos autres équipements virtuels. Notons qu’il est possible ici de visualiser (et même modifier) l’adresse MAC de l’interface virtuelle ; ceci peut être très utile au moment de configurer le système qui sera installé sur la VM :

La machine est prête, on clique sur OK, et on la démarre. Après la phase de démarrage, la VM boote sur l’image ISO d’installation, l’écran d’accueil s’affiche :

Pour notre installation plutôt standard, il suffit d’accepter les options proposées par défaut.

Au moment de sélectionner l'interface WAN, qui sera em0 en général, il est bon de vérifier la correspondance des adresses MAC repérées lors de la configuration de la VM juste avant :

On laisse la configuration par défaut (configuration WAN obtenue par DHCP) :

Affectation de l'interface LAN (ici sur em1) :

Les réglages par défaut proposent une configuration ultra-standard :
192.168.1.1/24, statique192.168.1.[100-199]On laisse donc ces propositions par défaut :

On confirme cette configuration :

L'installateur recherche l'accès à Internet :

Sans accès à internet à ce niveau, l'installation ne pourra pas continuer. Si vous êtes confronté à ce cas de figure, il est toujours possible d'utiliser l'installateur pfSense CE offline, évoqué au début.
Puisqu'on n'a pas de licence active (pfSense +), on choisit d'installer la version CE (Community Edition) :

On installe le système sur le seul disque de la VM (ada0). Notons que le système ZFS permet nativement de gérer la redondance du stockage si on dispose de plusieurs disques.



Choix de la version de pfSense. Profitons-en pour tester la version beta 2.9.0 :

Contrairement à l'installation offline ancienne, cette phase "online" est plutôt longue.

Puis on arrive à cet écran (ne pas rebooter !) :

Attention pour la phase finale : afin d’éteindre la machine, plutôt que la redémarrer, on va utiliser le Shell pour lancer la commande init 0 (attention, la disposition du clavier est QWERTY) :

La VM s’éteint.
On supprime le lecteur optique devenu inutile :

On relance la VM pfSense, la console affiche toute la séquence de démarrage, jusqu’à cet écran qui affiche le menu de la console :

La console permet d’effectuer des opérations de base pour pfSense, notamment :
Dans la pratique, il est recommandé de protéger l’accès à ce menu console par un mot de passe (ceci se configure depuis l’interface WEB d'administration de pfSense.)
Afin que pfSense tourne en tâche de fond dans notre environnement, il peut être démarré sans affichage depuis VirtualBox :

Dès lors, la console n’est visible que depuis la prévisualisation de VirtualBox, mais il est possible de réactiver la console en cliquant sur afficher :

Et de la refermer depuis le menu fichier de la fenêtre console :

Notre VM pfSense est maintenant opérationnelle. Sa configuration initiale n’est pas réalisée, car il faut pour cela disposer d’un navigateur WEB pour accéder, depuis le réseau LAN, à la console WEBAdmin. Nous verrons cette étape dans le tutoriel dédié à la finalisation du labo virtuel.
