Comment mettre à niveau pfSense 2.6.0 vers 2.7.0 ?
Sommaire
I. Présentation
Dans ce tutoriel, nous allons parler de la mise à niveau d'un pare-feu pfSense en version 2.6.0 vers la version 2.7.0 qui est la dernière version de l'édition communautaire, dispose depuis quelques jours.
Il y a de nombreux changements entre pfSense 2.6.0 et pfSense 2.7.0 et cette mise à jour ne semble pas s'y évidente que cela à installer... Pour ma part, cela ne s'est pas passé comme prévu sur le firewall de mon lab... Alors, cet article est là pour vous avertir des risques, mais aussi de vous donner quelques indications pour vous accompagner dans le processus de mise à jour.
II. Les nouveautés de pfSense 2.7.0
Tout d'abord, pfSense 2.7.0 est associé à des changements majeurs au niveau du système FreeBSD et de PHP :
- Il y a un passage de PHP 7.4 à PHP 8.2.6
- Le système d'exploitation de base est FreeBSD 14 au lieu de FreeBSD 12.3
C'est une bonne nouvelle, car désormais, l'édition communautaire de pfSense s'appuie sur des versions à jour et récentes !
A cela s'ajoute d'autres changements comme le passage sur OpenVPN 2.6.4, une nouvelle interface pour la capture de paquets, la prise en charge du chiffrement ChaCha20-Poly1305 avec IPSec, ou encore plusieurs correctifs de sécurité.
Sur son site, Netgate met en avant les risques liés au passage sur cette nouvelle version. L'éditeur évoque un conflit potentiel entre les paquets applicatifs et le nouveau système. Avant de mettre à jour Pfsense, Netgate recommande de désinstaller tous les paquets !
Pour en savoir plus sur toutes les nouveautés de pfSense 2.7.0, vous pouvez lire l'annonce officielle :
III. Avant de passer à pfSense 2.7.0
Avant de passer à pfSense 2.7.0, plusieurs actions sont à mener par précaution afin de pouvoir revenir en arrière en cas de crash. Cela est d'autant plus vrai que j'ai tenté la mise à jour à plusieurs reprises, et que mon firewall a crashé à chaque fois... Pour d'autres utilisateurs, cela se passe bien.
- Vous devez impérativement effectuer une sauvegarde de votre configuration
- Menu : Diagnostics > Backup & Restore > Download configuration as XML
- Si c'est une machine virtuelle, effectuez un snapshot avant de lancer la mise à jour
- Désinstallez l'ensemble des paquets tiers installés sur votre pfSense
- Menu : System > Package Manager > Installed Packages > Désinstaller chaque package un par un
Pour ma part, j'ai fait plusieurs essais de mises à niveau, notamment :
- Avec tous les paquets encore installés : le pfSense crash au premier redémarrage suite à la mise à niveau
- Après avoir désinstallé tous les paquets : le pfSense crash également au premier redémarrage suite à la mise à niveau
Impossible de le relancer... J'arrive sur un prompt FreeBSD précédé par de nombreuses erreurs telles que :
/usr/local/share/:unexpected error /usr/local/libexec/pfSense-upgrade: /usr/local/sbin/: Permission denied Fatal error: Uncaught TypeError: Return value of g_get()..... Etc...
Résultat, réinstallation complète du système, sur la même machine virtuelle, avec import de la configuration existante. Dans ce cas, c'est passé sans encombre.
IV. Mise à niveau vers pfSense 2.7.0
A. Méthode classique
Après avoir fait une sauvegarde (et un snapshot si vous travaillez sur une VM) et désinstallé les packages additionnels, vous pouvez lancer la mise à niveau de pfSense.
En page d'accueil de l'interface web, le widget "System Information" qui affiche la version actuelle de pfSense doit vous proposer de passer sur la version 2.7.0. Il suffit de cliquer sur l'icône en forme de nuage. Sinon, passez par le menu "System" puis "Update".
Une nouvelle page s'affiche, vous devez confirmer l'installation de la mise à jour en cliquant sur le bouton "Confirm".
Il ne vous reste plus qu'à patienter environ 10 minutes.... Le temps que les sources soient téléchargées et installées sur votre pare-feu. Pendant ce temps, brulez un cierge : tout va se jouer au redémarrage.
Si tout se passe bien, la console doit afficher le menu principal avec vos adresses IP. L'occasion de constater que vous êtes bien passé sur pfSense 2.7.0. Il ne restera plus qu'à passer sur l'interface web pour vérifier l'état de tous vos services et remettre en place vos paquets.
B. Réinstallation complète
Désormais, passons à la seconde méthode basée sur une réinstallation complète. Il s'agit de la méthode appliquée dans mon cas car la première méthode ne fonctionnait pas.
La première étape (après avoir fait une sauvegarde, etc.) consiste à télécharger l'image ISO de pfSense 2.7.0 depuis le site officiel :
Une fois que c'est fait, l'image ISO doit être associée au lecteur CD virtuel de la VM. Ceci s'effectue dans les paramètres de VM. Sur VMware ESXi, il s'agit de l'option "Support CD/DVD.
Ensuite, la VM doit être démarrée de manière à booter sur l'image ISO pour procéder à l'installation. Si cela ne fonctionne pas et que vous êtes sur VMware ESXi, redémarrez la VM et appuyez sur "F2" pour accéder au BIOS de la VM. Ici, vous pourrez changer l'ordre de démarrage pour que le lecteur CD (valeur "CD-ROM Drive") soit prioritaire sur le disque dur (il faudra ré-inverser par la suite).
Lorsque l'étape "Welcome to pfSense!" s'affiche, ne choisissez pas "Install" ! Vous devez prendre "Recover config.xml" de manière à charger un fichier config.xml provenant de pfSense 2.6.0.
Ensuite, vous devez sélectionner la partition qui contient votre configuration "config.xml". Sélectionner le disque système, sur lequel pfSense 2.7.0 va être installé. Puisque pfSense effectue des sauvegardes automatiques, l'assistant sera en mesure de récupérer votre dernière configuration.
Validez et sur le menu principal choisissez "Install" cette fois-ci. Laissez-vous guider par l'assistant...
Une fois l'installation terminée, vous devriez arriver sur le menu principal de pfSense !
Du côté de l'interface Web, on peut constater aussi que c'est bien pfSense 2.7.0 qui est exécutée. Avec cette méthode, j'ai pu constater aussi que pfSense avait conservé tous mes paquets et qu'ils avaient même installés les dernières versions. Finalement, c'est plutôt appréciable et moins contraignant que de devoir désinstaller puis réinstaller les paquets.
V. Conclusion
Grâce aux instructions contenues dans cet article, vous devriez être en mesure d'effectuer la mise à niveau de votre pare-feu pfSense vers la version 2.7.0 un peu plus sereinement. Quoi que, le crash que j'ai rencontré ne va peut être pas vous rassurer... Mais, pour certains utilisateurs, tout s'est bien passé.
N'hésitez pas à poster un commentaire si vous avez une question ou si vous souhaitez faire un retour d'expérience sur le sujet.
merci pour cet article, que préconise tu pour une appliance officielle avec wireguard de configuré ?
Bonsoir,j’ai fait une maj d’une vm sous hyper-v il y a quelques jours (j’avais tout de même préparer un Snapshot), et tout s’est passé sans encombres. Il me reste plusieurs pf à mettre à jour, des physiques et des virtuels, je ferai un retour quand ce sera fair. En tout cas merci pour l’article ! Maintenant je sais à quoi m’en tenir.
par prudence chaque fois que je fais ce genre d’operation je gardeun clone du systeme original
Bonjour,
merci pour ce petit article, j’ai effectué la mise à jour depuis l’interface de PFSense 2.6.1 en 2.7.0 depuis une box Celeron J3160, tout c’est bien passé.
J’ai juste supprimé les packages additionnels (comme tu le décrit), fait un reboot (comme décrit dans la doc PFSense), puis upgrade depuis l’interface graphique, enfin réinstallation des packages supprimé précédemment.
Je retrouve toute ma config opérationnel.
PS: j’ai juste reinstallé pfBlokerNG au lieu de pfBlokerNG_dev, puisque c’est la même version 3.2.0_5
Bonjour Florian,
Merci pour l’article, encore une fois qui aide énormément! J’ai failli mettre à jour chez un client hier mais on ne pouvait pas mettre la prod en pause donc, pas fait et pareil en interne… Ouf!
J’avais fais les backups manuels comme toujours mais, je ne pensais pas deux secondes que ça aurait autant de complications, je vais me pencher dessus sur mon pf de test du coup… On utilise des boitiers de chez Provya (aucun lecteur CD, obligé de passer par clé USB à la limite si méthode deux).
Merci encore pour l’article 😁😁
Pour l’installation depuis une clé USB, mettre la sauvegarde (config.xml) dans un dossier conf (partition fat32 sur la clé) elle sera chargée lors de l’installation
Sinon, en cas de pb, mettre le backup sur une clé qu’il faudra montée et remplacer le config.xml du disque
Merci pour l’info!
Bonjour, je dispose de 2 serveurs physiques, avec chacun un pfsense redondé (CARP).
J’ai tenté la mise à jour de 2.6 en 2.7. Etant redondé, je n’ai pas de sauvegarde de la configuration, car je pensais que le 2eme allait prendre le relai.
Maintenant, mon serveur maitre est bloqué lors de la sequence de boot.
Mon serveur de backup n’a pas completement pris le relai, il y a plusieurs regles de FW/NAT que j’ai du remettre en place.
Maintenant, je me demande si je dois repartir d’une installation 2.7 vierge, et remettre le CARP pour que le 2.7 recupere la configuration du 2.6, puis mettre le 2eme serveur a jour, ou essayer de fixer les erreurs de mise a jour. Si vous avez des conseils…
J’ai fait de nouveau quelques upgrade. J’ai eut un problème sur hyper-V, le binding des cartes réseaux étaient H.S.. Il a fallu que je repasse par la case assignation des cartes réseaux. J’ai fait un autre upgrade sur une machine physique avec un snort RAS. Je continue 🙂
La méthode classique (VM sous Proxmox) a fonctionnée à merveille
juste eu a remettre les packages, mais les config associées pas besoin, il a tout remis tout seul, pas besoin d’utiliser non plus la sauvegarde xml
Merci ^_^
ps
fait sous Proxmox 8
Pour ma part, sous vmware, impossible de mettre à jour la 6.5 depuis le webadministrator. Un coup, il me trouvait l’update, un coup il me la trouvait plus.
J’ai lancé directement depuis la vm pfsense (13-update from console), et là j’ai pu mettre à jour vers la 7.0, puis la 7.2