Dans cet article nous présentons l'intérêt de l'utilisation du système de fichiers ZFS et de ses instantanés lors des mises à jour de pfSense.
Il s'agit d'une solution très efficace pour gérer ses mises à jour et ses possibilités de retour arrière vers des points de restauration très facilement.
ZFS, c'est quoi ? Quel intérêt ?
ZFS est un système de fichiers et un gestionnaire de volume open source.
ZFS offre de très nombreuses fonctionnalités. Nous ne les détaillerons pas dans cet article, nous proposons la consultation de la page Wikipédia qui lui est dédiée : ZFS.
Pour des firewall tournant sous pfSense, ZFS présente deux gros intérêts : la facilité d'installation de deux disques en haute-disponibilité (Raid) et la possibilité de réaliser des instantanés (snapshot).
Dans cet article, nous nous intéressons particulièrement à l'intérêt des snapshot ZFS lors des mises à jour de pfSense.
En effet, il peut arriver qu'une nouvelle version de pfSense comporte des bugs et que ceux-ci ne soient pas corriger immédiatement (ex : les versions 2.5.0 et 2.5.1 qui étaient catastrophiques) ; ou qu'il y ait une incompatibilité matérielle suite à une mise à jour (aucun risque si vous prenez votre matériel chez Provya ;-) ).
Dans ce cas, il peut être pratique de disposer d'un point de restauration pour pouvoir faire un retour-arrière rapide vers la version précédente de pfSense (ex : 2.4.5-p1).
Dans cet article, nous présentons comment créer un point de restauration grâce aux instantanés. Comment procéder à une restauration si besoin. Et comment supprimer le point de restauration si la mise à jour s'est bien passée.
Cette stratégie est applicable aussi bien à pfSense qu'à OPNsense.
Instantané, snapshot, qu'est-ce que c'est ?
Un instantané est une copie en lecture seule d'un système de fichiers ou d'un volume.
La création d'un instantané est quasiment immédiate.
Initialement, un instantané ne consomme pas d'espace disque supplémentaire. Toutefois, à mesure que les données contenues dans le jeu de données actif changent, l'instantané consomme de l'espace disque en continuant à faire référence aux anciennes données et empêche donc de libérer de l'espace disque.
Snapshot est le terme anglais pour instantané. Les termes "instantané" et "snapshot" désignent donc la même chose.
Pré-requis
1/2. Disposer d'un accès au firewall
Il faut disposer d'un accès en mode console au firewall. Il existe trois possibilités : utiliser la console présente dans l'interface web de pfSense, activer le serveur SSH de pfSense ou activer le port console (si le firewall est équipé d'un port console).
Utiliser la console de l'interface web
Il s'agit de la solution la plus simple. pfSense dispose d'un accès console depuis l'interface web. Pour y accéder, se rendre dans le menu Diagnostics > Command Prompt :
Il sera possible de saisir les commandes indiquées et de cliquer sur le bouton "Execute" pour les exécuter. Le résultat de la commande sera affiché à l'écran.
OPNsense n'offre pas d'accès console depuis son interface web. Ceci pour des raisons de sécurité.
Activer le serveur SSH de pfSense
La deuxième possibilité est de se connecter au firewall via son serveur SSH.
Par défaut, le serveur SSH est désactivé.
Pour l'activer, se rendre dans le menu System > Advanced :
Descendre au niveau de la section "Secure Shell" et cocher la case "Enable Secure Shell".
Il est également possible de paramétrer la méthode d'authentification (mot de passe ou certificat) et le port d'écoute (22 par défaut).
Il faudra aussi potentiellement créer une règle de filtrage côté LAN pour autoriser la connexion sur le port 22 (ou sur le port choisi à l'étape précédente, s'il a été personnalisé).
Exemple de règle :
Pour OPNsense, le principe est le même : il faut activer le serveur SSH du firewall. La configuration s'opère depuis le menu Système > Paramètres > Administration.
Au niveau de la section "Shell Sécurisé", cocher la case "Activer le Shell sécurisé", autoriser potentiellement le compte root à se connecter si l'on ne possède pas un autre compte administrateur, autoriser (ou non) l'authentification par mot de passe et choisir le port d'écoute.
Il est également possible de personnaliser un certain nombre de paramètres de sécurité.
Activer le port console de pfSense
La troisième et dernière possibilité est de se connecter au firewall par son port console (ou port série).
Le port console est désactivé par défaut.
Il faudra bien sûr que le firewall soit équipé d'un port console.
Se rendre dans le menu System > Advanced et descendre jusqu'à la section "Serial Communications".
Cocher la case "Enable serial port" et cocher la case "Password protect the console menu" afin de protéger la console par un mot de passe.
Par défaut, lorsque le port console est activé, n'importe qui peut se brancher directement sur le firewall et disposer d'un accès root. Ce qui représente un risque en terme de sécurité.
Pour OPNsense, la configuration s'opère depuis le menu Système > Paramètres > Administration :
2/2. Disposer d'un système de fichiers ZFS
Dernier pré-requis, il faut bien sûr que notre firewall soit installé avec le système de fichiers ZFS.
Pour savoir si notre système de fichiers est ZFS, saisir la commande suivante :
zfs list
S'il s'agit d'un système de fichiers ZFS, nous devrions obtenir un résultat du type :
NAME USED AVAIL REFER MOUNTPOINT
zroot 900M 12.2G 88K /zroot
zroot/ROOT 886M 12.2G 88K none
zroot/ROOT/default 886M 12.2G 886M /
zroot/tmp 192K 12.2G 192K /tmp
zroot/var 11.4M 12.2G 11.4M /var
Autrement, nous obtenons un résultat du type :
no datasets available
Procédure
Dans cet article, nous prenons comme exemple la mise à jour de pfSense de la version 2.5.2 vers la version 2.6.0 (non, la version 2.6.0 n'est pas encore sortie, mais ce n'est plus qu'une question de jours / semaines ;-) )
Les étapes à suivre sont les suivantes.
1. Voir les environnements de démarrage actuels avec la commande bectl list.
Si nous n'avons jamais trifouillé ces options, nous devrions obtenir quelque chose comme ceci :
[2.5.2-RELEASE][root@pfSense.home.arpa]/root: bectl list
BE Active Mountpoint Space Created
default NR / 886M 2021-12-17 16:21
- N signifie actif actuellement (Now)
- R signifie actif au prochain redémarrage (Reboot)
2. Ajouter un nouvel environnement de démarrage que l'on appelle "pfsense-2.5.2" (ce sera notre point de restauration en cas de besoin) :
bectl create pfsense-2.5.2
3. Pour plus de lisibilité, renommer l'environnement de démarrage actuel (default) en "pfsense-2.6.0" :
bectl rename default pfsense-2.6.0
Une fois ces commande saisies, nous obtenons les environnements de démarrage suivants :
BE Active Mountpoint Space Created
pfsense-2.5.2 - - 8K 2022-02-07 17:56
pfsense-2.6.0 NR / 886M 2021-12-17 16:21
On peut voir que notre nouvel environnement de démarrage ne prend que très peu d'espace disque à ce stade (8 Ko).
4. Réaliser un instantané des partitions /var et /tmp :
zfs snapshot zroot/var@pfsense-2.5.2
zfs snapshot zroot/tmp@pfsense-2.5.2
Les partitions /var et /tmp ne sont pas sur le même pool. Il faut donc les sauvegarder via un instantané. C'est ce que nous venons de faire.
Il est possible d'afficher la liste des instantanés ZFS avec la commande suivante :
zfs list -t snapshot
Le résultat ressemblera à ceci :
NAME USED AVAIL REFER MOUNTPOINT
zroot/ROOT/pfsense-2.6.0@2022-02-07-17:56:35-0 0 - 886M -
zroot/tmp@pfsense-2.5.2 64K - 192K -
zroot/var@pfsense-2.5.2 88K - 11.4M -
Encore une fois, on voit que les instantanés ne consomment pratiquement pas d'espace disque supplémentaire au moment de leur création.
C'est tout !
Nous avons créé un deuxième environnement de démarrage (qui est une copie du premier à ce stade) et un instantané des partitions /var et /tmp.
À ce stade, nous pouvons lancer la mise à jour de pfSense (ou d'OPNsense) de manière tout à fait classique.
On peut aussi tester la branche de développement, installer des packages, tester des configurations, etc. En cas de pépin, nous pourrons très rapidement revenir à notre point de restauration.
Dans notre cas, et pour l'exemple, nous décidons de tester la version 2.6.0 de pfSense :
Pour mettre à jour notre serveur, n'hésitons pas à nous appuyer sur notre article dédié : [pfSense] Mettre à jour son serveur pfSense
La mise à jour s'est bien passée, comment supprimer l'instantané ?
Si notre mise à jour s'est bien passée. Nous conseillons de ne toucher à rien durant les premiers jours / semaines, le temps de s'assurer qu'il n'y ait pas d'effets de bord et que tous les services fonctionnent tel qu'attendu.
Si c'est le cas, alors nous pouvons supprimer notre point de restauration et nos instantanés, ce qui permettra de libérer de l'espace sur le disque-dur.
En effet, là où notre point de restauration de notre environnement de démarrage ne prenait que 8 Ko à sa création, il en consomme maintenant bien plus :
[2.6.0-RELEASE][root@pfSense.home.arpa]/root: bectl list
BE Active Mountpoint Space Created
pfsense-2.5.2 - - 777M 2022-02-07 17:56
pfsense-2.6.0 NR / 1.74G 2021-12-17 16:21
Notre point de restauration de notre environnement de démarrage consomme maintenant 777 Mo d'espace sur le disque-dur.
Idem pour les instantanés de /var et /tmp :
[2.6.0-RELEASE][root@pfSense.home.arpa]/root: zfs list -t snapshot
NAME USED AVAIL REFER MOUNTPOINT
zroot/ROOT/pfsense-2.6.0@2022-02-07-17:56:35-0 777M - 886M -
zroot/tmp@pfsense-2.5.2 160K - 192K -
zroot/var@pfsense-2.5.2 5.05M - 11.4M -
Pour supprimer le point de restauration et les instantanés, les trois commandes à saisir sont les suivantes :
bectl destroy pfsense-2.5.2
zfs destroy zroot/var@pfsense-2.5.2
zfs destroy zroot/tmp@pfsense-2.5.2
C'est tout.
Je souhaite faire un retour-arrière, comment faire ?
Si la mise à jour s'est mal passée ou si nous souhaitons revenir à l'état antérieur, il suffit de restaurer les instantanés ZFS et de modifier l'environnement de démarrage pour choisir notre point de restauration.
Pour activer notre point de restauration au prochain démarrage, la commande à saisir est la suivante :
bectl activate pfsense-2.5.2
Nous obtenons un message de confirmation. Il est également possible de vérifier la bonne prise en compte de la configuration via la commande bectl list :
BE Active Mountpoint Space Created
pfsense-2.5.2 R - 886M 2022-02-07 17:56
pfsense-2.6.0 N / 893M 2021-12-17 16:21
Le marqueur R a bien basculé sur notre environnement de démarrage pfsense-2.5.2.
Et pour rétablir les instantanés, les commandes à saisir sont les suivantes :
zfs rollback -R zroot/var@pfsense-2.5.2
zfs rollback -R zroot/tmp@pfsense-2.5.2
Il reste à redémarrer le firewall pour que les changements soient totalement pris en compte.
Le redémarrage peut être lancé depuis l'interface web ou depuis la ligne de commande. La ligne de commande à saisir sera :
shutdown -r now
Une fois redémarré, on pourra supprimer les instantanés et l'environnement de démarrage qui ne sont plus utilisés, soit dans notre exemple :
bectl destroy pfsense-2.6.0
zfs destroy zroot/var@pfsense-2.5.2
zfs destroy zroot/tmp@pfsense-2.5.2
On peut vérifier que les commandes ont bien été prises en compte en listant les instantanés ZFS :
[2.5.2-RELEASE][root@pfSense.home.arpa]/root: zfs list -t snapshot
no datasets available
Les instantanés ont bien été supprimés.
Puis, en vérifiant les environnements de démarrage disponibles :
[2.5.2-RELEASE][root@pfSense.home.arpa]/root: bectl list
BE Active Mountpoint Space Created
pfsense-2.5.2 NR / 886M 2022-02-07 17:56
Enfin, pour se remettre totalement dans la situation d'origine, on pourrait renommer l'environnement de démarrage en "default" avec la commande suivante :
bectl rename pfsense-2.5.2 default
Voilà, nous avons fait le tour des éléments à connaître pour créer des points de restauration super facilement sur pfSense et OPNsense.
C'est une approche que nous recommandons fortement de suivre avant de lancer la mise à jour de nos firewall.
Pour aller plus loin
[pfSense] Mettre à jour son serveur pfSense
Tous nos articles classés par thème
Voir un article au hasard
Vous avez aimé cet article ? Vous cherchez du matériel de qualité ? Alors contactez-nous.
Retrouvez nos services et firewall pour pfSense
store.provya.fr
Tags de l'article : mise à jourmise à jour pfSenseOPNsensepfSense
English version: [pfSense] Making automatic backups with a script
Dans cet article, nous présentons une solution pour sauvegarder automatiquement son pfSense avec un script shell.
Nous nous appuyons sur le script shell bm-backup-pfsense proposé par le site Blogmotion.
Principe de fonctionnement
Le script va se connecter sur l'interface web du pfSense à sauvegarder et va "naviguer" dans les menus afin de déclencher le téléchargement du fichier de configuration (config.xml).
L'intérêt de ce script est qu'il passe par l'interface web de pfSense pour effectuer la sauvegarde. Ainsi, il n'y a pas besoin d'activer un accès SSH sur le serveur pfSense que l'on souhaite sauvegarder et l'on peut créer un compte utilisateur avec les droits strictement nécessaires pour effectuer la sauvegarde.
D'une façon générale, nous recommandons de se méfier des scripts ou applications qui nécessitent un accès SSH "root" sur les firewall pfSense ; cela représente un risque trop important en terme de sécurité.
Le script bm-backup-pfsense fonctionne très bien sous pfSense 2.4.x, 2.5.x et 2.6.x.
Création d'un compte utilisateur
Pour commencer, nous allons créer un compte utilisateur dédié à la sauvegarde.
Se rendre dans le menu System > User Manager :
Depuis l'onglet "Users" (onglet par défaut), cliquer sur le bouton "+ Add".
Nous créons un nouvel utilisateur en précisant simplement un nom d'utilisateur (username) et un mot de passe (password). Les autres champs peuvent être laissés vides.
Exemple de résultat obtenu :
Création d'un utilisateur dédié pour la sauvegarde
Pour en savoir plus sur la gestion des utilisateurs sous pfSense, consultez notre article dédié : [pfSense] La gestion des utilisateurs.
Nous pouvons maintenant modifier cet utilisateur afin de lui assigner les bons droits d'accès.
Pour cela, cliquer sur l'icône en forme de crayon se situant sur la ligne de l'utilisateur que nous venons de créer :
Descendre au niveau de la rubrique "Effective Privileges" et cliquer sur le bouton "+ Add" :
Nous ajoutons le droit d'accès à la page de Sauvegarde / Restauration en sélectionnant la ligne "WebCfg - Diagnostics: Backup & Restore" :
Nous validons notre choix en cliquant sur le bouton "Save", puis nous sauvegardons la modification de l'utilisateur en cliquant de nouveau sur le bouton "Save".
Ainsi, notre utilisateur "sauvegarde-auto" peut se connecter sur l'interface web de pfSense mais n'aura accès qu'à la page Backup & Restore :
L'utilisateur sauvegarde-auto n'a accès qu'à une seule page de notre pfSense
Configuration du script
Le script bm-backup-pfsense doit pouvoir s'exécuter sur n'importe quelle distribution GNU/Linux ou serveur FreeBSD/pfSense.
Dans notre cas, nous exécuterons ce script depuis un serveur de sauvegarde Linux hébergé sur notre réseau local (LAN).
Nous téléchargerons le script pfmotion_curl.sh.
Il existe deux autres versions de bm-backup-pfsense : une version utilisant le programme wget et une version permettant de sauvegarder plusieurs pfSense (à condition que le nom d'utilisateur et le mot de passe soient identiques sur tous les pfSense à sauvegarder).
Le fichier pfmotion_curl.sh est très simple à paramétrer ; il suffit de compléter les variables suivantes :
- PFSENSE_HOST (ligne 14) : l'adresse IP du serveur pfSense à sauvegarder
- PFSENSE_USER (ligne 17) : le compte utilisateur pour se connecter à pfSense. Dans notre cas : sauvegarde-auto
- PFSENSE_PASS (ligne 18) : le mot de passe associé au compte utilisateur
- BACKUP_DIR (ligne 21) : le dossier de sauvegarde (par défaut, les sauvegardes seront enregistrées dans le dossier conf_backup du répertoire où est exécuté le script)
Exemple de résultat obtenu :
Il ne nous reste plus qu'à lancer le script :
Le script s'est déroulé avec succès. Sauvegarde effectuée
Nous pouvons automatiser le lancement de ce script, toutes les nuits par exemple, via une tâche cron.
Enfin, et pour être complet, nous proposons d'ajouter deux fonctionnalités complémentaires au script :
- Une alerte par e-mail si la sauvegarde ne s'effectue pas correctement
- La suppression des sauvegardes de plus de 30 jours
Alerte par e-mail si la sauvegarde ne s'effectue pas correctement
Il suffit d'ajouter le code suivant aux lignes 71 et 78 :
echo "Erreur lors de la sauvegarde de pfSense" | mail -s "Sauvegarde auto pfSense - ERREUR" mon@adresse.tld
Ce qui donnera quelque chose comme ceci :
Il faut, bien-sûr, remplacer mon@adresse.tld par l'adresse e-mail destinée à recevoir les notifications.
Il faut également avoir préalablement configuré sur son serveur un programme d'envoi d'email tel que Postfix ou Sendmail.
Nous proposons un article succinct sur l'installation et la configuration de Postfix sur un serveur Ubuntu ou Debian : [Postfix] Installer et configurer Postfix pour envoyer ses e-mails depuis un serveur dédié
Suppression des sauvegardes de plus de 30 jours
Nous proposons d'ajouter le code suivant qui va s'occuper de rechercher et supprimer les fichier de plus de 30 jours se trouvant dans le dossier de sauvegarde.
# Suppression au dela de 30 jours
find "$BACKUP_DIR/" -type f -mtime +30 -exec rm {} \;
Ce code est à placer en fin de script, juste avant les deux dernières lignes :
echo
exit 0
Voilà, nous disposons d'une solution simple, pratique et efficace pour sauvegarder automatiquement notre serveur pfSense.
Merci à Mr Xhark du site Blogmotion pour sa réalisation et son partage.
Pour aller plus loin
[pfSense] Sauvegarder automatiquement sa configuration avec AutoConfigBackup
[Postfix] Installer et configurer Postfix pour envoyer ses e-mails depuis un serveur dédié
Tous nos articles classés par thème
Voir un article au hasard
Vous avez aimé cet article ? Vous cherchez du matériel de qualité ? Alors visitez notre boutique en ligne.
Retrouvez nos services et firewall pour pfSense
store.provya.fr
Tags de l'article : pfSensesauvegarder son pfSense
English version: [pfSense] The package system in pfSense
pfSense propose l'installation de packages afin de pouvoir lui ajouter des fonctionnalités supplémentaires.
Dans cet article, nous présentons le fonctionnement des packages, leur gestion (installation, mise à jour, suppression), ainsi que les principaux packages.
Qu'est-ce qu'un "package"
Dans son installation par défaut, pfSense offre une large palette de fonctionnalités. Il est en plus possible de lui adjoindre des fonctionnalités supplémentaires par l'installation de packages. Ces packages peuvent offrir des services complémentaires ou des informations statistiques avancées.
Ces packages sont intégrés à pfSense. C'est-à-dire que leur utilisation se fait généralement via l'interface web de pfSense.
De même, la liste des packages disponibles est maintenue et vérifiée par Netgate, l'éditeur du logiciel pfSense, afin de s'assurer que les packages proposés soient correctement mis à jour et maintenus.
Les packages sont les seuls outils additionnels que l'on peut installer aisément sur un pfSense existant. En effet, le logiciel pfSense tournant sur une base FreeBSD modifiée, l'ensemble des packages ou logiciels habituellement disponibles sous FreeBSD (via pkg, par exemple, l'outil de gestion des paquets de FreeBSD) ne pourra pas forcément être installé sur pfSense (pour des problématiques de dépendances, principalement).
Enfin, il est important de rappeler que l'installation de packages sur pfSense doit se faire de manière mesurée et pragmatique ; pour des raisons de sécurité, il est recommandé de n'installer que les package strictement nécessaires.
Comment installer un package
L'installation d'un package s'opère depuis le menu System > Package Manager :
La gestion des packages est organisée sous la forme de deux onglets :
Le premier onglet (Installed Packages) permet de visualiser les packages installés. Il est également possible depuis cet onglet de réinstaller un package ou de le mettre à jour.
Le deuxième onglet (Available Packages) permet de parcourir la liste complète des packages disponibles et pas encore installés.
Pour chaque package, les informations suivantes sont présentées :
- Name : le nom du package ; un lien peut être présent sur le nom du package en priorité vers la page de documentation associée, vers la catégorie dédiée sur le forum pfSense ou vers le site de l'éditeur.
- Version : la version installée ou installable.
- Description : une description succincte en anglais du package.
Depuis l'onglet "Available Packages", il est également possible de lancer une recherche sur un mot clef.
Pour installer un package donné, il suffit de cliquer sur le bouton "Install" se situant sur la même ligne.
Une confirmation nous sera demandée, il suffira de cliquer sur le bouton "Confirm" :
Le processus d'installation se déroule et les informations d'installation sont affichées à l'écran. Une fois l'installation réalisée avec succès, un message d'information est affiché :
De la même façon, en cas d'erreur ou d'anomalie lors de l'installation d'un package, un message d'erreur explicite est affiché.
Gérer les mises à jour de package
Les packages disposent de leur propre rythme de mise à jour.
Aussi, lorsque l'on installe un package, il est important de maintenir ce dernier à jour.
Lorsqu'un package dispose d'une mise à jour, son nom apparaît en jaune et l'icône est également affichée :
Les packages ntopng et openvpn-client-export peuvent être mis à jour
Pour lancer la mise à jour, il suffit de cliquer sur l'icône de mise à jour .
Pour les packages à jour, l'icone affichée est la suivante : .
Le package acme est à jour
Point d'attention concernant les mises à jour : lors de la sortie d'une nouvelle version de pfSense, les dépôts proposés par défaut sont mis à jour pour correspondre à la nouvelle version de pfSense ; ainsi les packages (et les mises à jour) proposés sont ceux correspondant à la nouvelle version de pfSense.
Si on n'utilise pas la dernière version de pfSense et que l'on souhaite installer ou mettre à jour un package, il faut modifier la branche de version utilisée pour les dépôts. Nous détaillons la procédure dans le paragraphe suivant.
Enfin, lors d'une mise à jour de pfSense, il faut d'abord mettre à jour pfSense, avant de mettre à jour les packages. Nous présentons la procédure complète pour mettre à jour son pfSense dans notre article dédié : [pfSense] Mettre à jour son serveur pfSense
Installer et mettre à jour des packages pour les anciennes versions de pfSense
Si une nouvelle mise à jour de pfSense est sortie et que l'on ne souhaite pas y passer, mais que l'on veut continuer à pouvoir installer/mettre à jour ses packages, il faut modifier les dépôts cibles.
Pour cela, il faut se rendre dans le menu System > Update :
Se rendre sur l'onglet "Update Settings" et dans liste déroulante "Branch", choisir la branche correspondant à notre version de pfSense actuellement installée :
Il faut, bien-sûr, cliquer sur le bouton "Save" pour valider le changement.
Désinstaller ou réinstaller un package
Il peut parfois être utile de réinstaller un package lorsque celui-ci rencontre des problèmes de stabilité ou suite à une mise à jour qui ne s'est pas bien passée.
Il y a deux approches possibles : réinstaller le package ou désinstaller puis installer de nouveau le package.
Pour cela, deux icônes sont proposées pour chaque package installé ; la première icône permet de désinstaller le package , la seconde de le réinstaller .
Il faudra confirmer l'action choisie en cliquant sur le bouton "Confirm".
Présentation des principaux packages
Il existe plus ou moins une soixantaine de packages. Nous proposons ici de présenter succinctement les principaux :
ACME
Le paquet ACME (Automated Certificate Management Environment) permet la gestion des certificats auprès des fournisseurs supportant le protocole ACME, comme Let's Encrypt par exemple.
arping et arpwatch
Ces deux paquets permettent d'envoyer des requêtes ARP de type who-has et de surveiller / alerter dès qu'une nouvelle adresse MAC est détectée sur le réseau.
apcupsd
Ce paquet permet de contrôler tous les modèles d'onduleurs APC. Il peut surveiller et enregistrer l'état actuel de l'alimentation et de la batterie, effectuer un arrêt automatique et peut aussi fonctionner en mode réseau pour mettre hors tension d'autres hôtes sur le réseau.
BIND
Ce paquet fournit une interface graphique pour le serveur DNS BIND (permettant de mettre en place un serveur DNS faisant autorité ou un résolveur DNS).
Cron
Propose une interface graphique pour manipuler le programme cron (qui est un planificateur de tâches) de pfSense.
HAproxy
Installe le logiciel HAProxy qui est un reverse proxy et équilibreur de charge (load balancing) puissant.
LADVD et lldpd
Ces deux paquets offrent des fonctionnalités similaires et permettent la prise en charge des protocoles LLDP (Link Layer Discovery Protocol), CDP (Cisco Discovery Protocol), EDP (Extreme Discovery Protocol) et NDP (Nortel Discovery Protocol).
squid, squidGuard et Lightsquid
Ce paquets permettent d'installer le serveur proxy squid, de filtrage d'URL ou de noms de domaine squidGuard et l'analyseur de logs Lightsquid.
ntopNG
ntopNG agit comme une sonde réseau qui montre l'utilisation détaillée du réseau. ntopNG dispose d'un émetteur/collecteur NetFlow/sFlow.
OpenVPN Client Export
Ce paquet permet de générer des fichiers de configuration OpenVPN pré-configurés pour les clients, des installateurs de clients Windows pré-configurés et des bundles de configuration Viscosity.
pfBlockerNG
Installe le logiciel pfBlockerNG qui est un utilitaire très complet permettant de contrôler les connexions à travers le pare-feu sur la base de critères plus généraux que les règles du pare-feu elles-mêmes (par exemple, par pays, par nom de domaine, etc.).
pfBlockerNG gère des listes d'adresses IP dans des formats de type "Deny, Permit ou Match", permet d'accéder à la base de données GeoIP, gère des liste noire DNS (DNSBL), etc.
Siproxd
Ce paquet permet d'installer un proxy SIP pour la VoIP. Pour la plupart des configurations SIP modernes, ce type de logiciel n'est absolument plus du tout nécessaire. Le paquet Siproxd ne doit donc être installé / utilisé que si c'est vraiment utile.
Snort et Suricata
Ces paquets offrent des fonctionnalités très similaires. Ils permettent d'installer un système de prévention d'intrusion de type IDS/IPS.
System Patches
Ce paquet permet l'installation de correctifs (patches) personnalisés.
Zabbix-agent et Zabbix-proxy
Ces paquets permettent la collecte et la remontée d'informations de supervision vers un serveur Zabbix.
Nous avons fait le tour de la gestion des packages sous pfSense et listé les principaux d'entre eux.
Dans de prochains articles, nous présenterons plus en détail certains packages : leurs intérêts concrets et leurs utilisations détaillées.
Pour aller plus loin
[pfSense] Mettre à jour son serveur pfSense
Best practices / Recommandations pour la configuration de votre firewall
Tous nos articles classés par thème
Voir un article au hasard
Vous avez aimé cet article ? Vous cherchez du matériel de qualité ? Alors contactez-nous.
Retrouvez nos services et firewall pour pfSense
store.provya.fr
Tags de l'article : packagespfSense
Netgate, l'éditeur du logiciel pfSense, a annoncé le 18/03/2021 que le logiciel WireGuard était retiré de pfSense 2.5.
Cette annonce fait suite à une annonce similaire de la part de l'équipe de base (core team) de FreeBSD : WireGuard sera retiré de FreeBSD 13, jusqu'à ce qu'une version plus mature puisse être ajoutée par la suite.
La raison de ce retrait est la présence de graves lacunes en terme de sécurité au niveau du code-source de la version de WireGuard livrée avec pfSense / FreeBSD.
Dans cet article, nous présentons ce qu'il s'est passé.
WireGuard, qu'est-ce que c'est ?
WireGuard est à la fois un logiciel open-source et un protocole de communication permettant de mettre en place un réseau privé virtuel (VPN).
Il s'agit d'une alternative à OpenVPN et IPsec.
La solution WireGuard se veut être une solution simple à mettre en oeuvre, à l'état de l'art en termes de développement, de fonctionnalités et de sécurité et offrir des performances réseaux particulièrement intéressantes.
WireGuard est développé par Jason A. Donenfeld et par les sociétés ZX2C4 et Edge Security.
WireGuard a, à l'origine, été développé et intégré au noyau Linux.
Implémentation de WireGuard sous FreeBSD / pfSense
Il s'agissait d'une des principales nouveautés de pfSense 2.5 : l'intégration de WireGuard au noyau de FreeBSD.
La plupart des distributions GNU/Linux supportent WireGuard depuis un petit moment déjà (car WireGuard a été intégré au noyau Linux 5.6), ainsi qu'OPNsense qui a intégré un support de WireGuard dans l'espace utilisateur (en attendant une intégration au noyau de FreeBSD).
Le développement de WireGuard pour FreeBSD a été assuré par des développeurs de Netgate (l'éditeur de pfSense). Le développement a duré pratiquement un an.
Le code a ensuite été intégré au noyau FreeBSD.
Malheureusement, il est vite apparu que le code intégré au noyau FreeBSD ne respectait pas les standards habituels de qualité et de sécurité.
Le fondateur du projet WireGuard, Jason Donenfeld (qui n'a pas participé au développement de la version présente dans pfSense 2.5) s'est penché sur le code ajouté au noyau de FreeBSD et a émis des critiques sévères que nous retranscrivons ici :
Ce code, c'est ce qui donne une mauvaise image au langage C !
Il y a des instructions "sleep" aléatoires pour corriger des problématiques d'accès concurrents, des fonctions de validation qui renvoient systématiquement "true", des vulnérabilités cryptographiques absolument catastrophiques, des pans entiers du protocole WireGuard non-implémentés, des "kernel panic", des contournements de sécurité, des dépassements de tampon, des "printf" arbitraires enfouis dans la partie cryptographique du code-source, et toute la litanie habituelle des choses horribles qui peuvent aller mal quand les gens ne font pas attention à ce qu’ils écrivent en C.
Il semblerait que cette déclaration soit légèrement exagérée (par exemple en employant le pluriel, là où un seul cas a été constaté). Cependant, toutes ces alertes de sécurité et de qualité du code sont bien réelles et confirmées par d'autres développeurs dont Kyle Evans qui est un guru FreeBSD et mainteneur du package WireGuard pour FreeBSD.
Des problématiques de sécurité sur les Jumbo frame ou d'élévation des privilèges ont également été rapportées.
Dans un premier temps Netgate a annoncé que l'implémentation de WireGuard ne posait pas de réels problèmes de sécurité pour les utilisateurs de pfSense, avant de finalement déconseiller son utilisation, puis enfin retirer le logiciel WireGuard de pfSense.
Peut-on utiliser WireGuard sous pfSense ou FreeBSD ?
Techniquement, la réponse est oui. Mais c'est totalement déconseillé.
Il vaut mieux éviter d'utiliser WireGuard pour le moment et privilégier d'autres solutions comme OpenVPN ou IPsec.
Si vous voulez ou devez à tout prix continuer à utiliser WireGuard sur votre pfSense, alors il est indispensable que celui-ci ne soit pas configuré sur une interface dont le MTU est supérieur à 1420.
Pour vérifier le MTU employé sur votre interface, rendez-vous dans le menu Status > Interfaces :
La valeur du MTU sera indiquée pour chacune de vos interfaces.
Je suis utilisateur d'OPNsense, suis-je concerné ?
Non, pas directement. Le plugin WireGuard proposé sous OPNsense n'est pas celui implémenté avec le noyau FreeBSD.
Il s'agit d'une version tournant dans l'espace utilisateur.
Cependant, la version de WireGuard proposée sous OPNsense reste expérimentale : il reste déconseillé de l'utiliser en production.
Un avertissement est d'ailleurs présent dans la documentation d'OPNsense :
Pour notre part, nous déconseillons l'utilisation de WireGuard aussi bien sous pfSense que sous OPNsense.
Est-ce que WireGuard reviendra sous FreeBSD / pfSense ?
Oui, bien-sûr. Un nouveau développement complet, en repartant de l'implémentation de WireGuard réalisée pour OpenBSD, et auquel participe Jason Donenfeld (à l'origine du projet WireGuard), les équipes de Netgate et des développeurs de FreeBSD et d'OpenBSD a été lancé.
Il est fort probable que WireGuard fasse son retour pour la version FreeBSD 13.1 (ou une suivante).
La future implémentation de WireGuard pour FreeBSD promet d'être de haute qualité, ce qui est une très bonne nouvelle pour tous les utilisateurs de FreeBSD, pfSense et OPNsense.
Si vous souhaitez obtenir davantage d'informations sur le sujet (en anglais), vous pouvez consulter les liens suivants :
WireGuard est supprimé des logiciels pfSense® CE et pfSense® Plus
Suppression du support WireGuard de la base FreeBSD
Déclaration sur la controverse Wireguard
E-mail de Jason A. Donenfeld
Article d'Ars Technica - WireGuard intégré au noyau est en route vers FreeBSD et le routeur pfSense
Pour aller plus loin
[pfSense] Configurer un VPN IPsec site à site
[pfSense] Monter un accès OpenVPN site-à-site
[pfSense] Sécurisez l'accès distant de vos collaborateurs nomades avec OpenVPN
Tous nos articles classés par thème
Voir un article au hasard
Vous avez aimé cet article ? Vous cherchez du matériel de qualité ? Alors contactez-nous.
Retrouvez nos services et firewall pour pfSense
store.provya.fr
Tags de l'article : pfSensesécuritéWireGuard