Provya

Expertise pfSense

Sommaire des articles  -  Liens & Actualités  -  Firewall pour pfSense

[pfSense] Sauvegarder automatiquement son firewall avec un script

icon 29/06/2021 - 5 commentaires

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 :

Menu System > User Manager - pfSense - Provya


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 pour la sauvegarde - pfSense - Provya

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 :

Modification d'un utilisateur pour la sauvegarde - pfSense - Provya



Descendre au niveau de la rubrique "Effective Privileges" et cliquer sur le bouton "+ Add" :

Ajout de droits à un utilisateur pour la sauvegarde - pfSense - Provya



Nous ajoutons le droit d'accès à la page de Sauvegarde / Restauration en sélectionnant la ligne "WebCfg - Diagnostics: Backup & Restore" :

Choix des droits pour un utilisateur pour la sauvegarde - pfSense - Provya



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 :

Menu limité à la sauvegarde - pfSense - Provya

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 :

Configuration du script pfMotion-backup - pfSense - Provya


Il ne nous reste plus qu'à lancer le script :

Lancement du script pfMotion-backup - pfSense - Provya

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 :

Alerte par e-mail en cas de problème avec pfMotion-backup - pfSense - Provya


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


Formation pfSense     Formation OPNsense     Liste de filtrage des IP malveillantes     Firewall pro-Large pour pfSense et OPNsense     Firewall pro-Xtend pour pfSense et OPNsense     Firewall pro-Xtra-SFP+ pour pfSense et OPNsense    

store.provya.fr

icon Tags de l'article :

[pfSense] Sauvegarder automatiquement sa configuration avec AutoConfigBackup

icon 26/01/2021 - Aucun commentaire

English version: [pfSense] Making automatic backups with AutoConfigBackup

Cet article est le premier d'une série présentant des solutions pour sauvegarder automatiquement la configuration de son pfSense.

Dans cet article nous nous appuyons sur le service AutoConfigBackup directement intégré à pfSense.



Principe de fonctionnement


AutoConfigBackup (ACB) est un service directement intégré de base à pfSense. Aucun package supplémentaire n'est nécessaire pour l'utiliser.

Lorsqu'il est activé, dès qu'un changement est fait sur le firewall, ou à intervalle régulier, AutoConfigBackup extrait la configuration du firewall, la chiffre à l'aide d'une phrase secrète (passphrase), puis l'envoie via HTTPS vers les serveurs de sauvegarde de Netgate (l'éditeur du logiciel pfSense).

Il est également possible de forcer une sauvegarde manuelle via AutoConfigBackup.

Les cent dernières sauvegardes sont conservées sur les serveurs de Netgate. Il est donc possible de revenir jusqu'à cent sauvegardes en arrière.



Principe de sécurité


Afin de garantir la confidentialité des données sauvegardées, le firewall les chiffre à l'aide de l'algorithme AES-256-CBC et d'une phrase secrète, puis envoie les données chiffrées vers les serveurs de Netgate.
Ainsi, les données envoyées et stockées sur les serveurs Netgate sont indéchiffrables sans cette phrase secrète.

Cette phrase secrète est personnalisable et conservée exclusivement en local sur le firewall. Elle n'est jamais directement transmise aux serveurs Netgate.

Il est important de faire une sauvegarde manuelle de cette phrase secrète car elle sera nécessaire en cas de restauration. Si cette phrase secrète est perdue, il n'y a aucune possibilité de la retrouver. Il ne sera donc pas possible de restaurer les données sauvegardées via AutoConfigBackup.

Enfin, pour identifier de manière unique un firewall, AutoConfigBackup utilise un hash SHA256 de la clé publique SSH du firewall.

Cet identifiant unique doit également être conservé. En cas de perte de cet identifiant, il ne sera pas possible de restaurer les données sauvegardées via AutoConfigBackup.

Il y a donc deux éléments que nous devons conserver précieusement :

  • la phrase secrète
  • l'identifiant unique

Passons à la configuration du service AutoConfigBackup.



Configuration du service AutoConfigBackup


Pour démarrer la configuration, nous nous rendons dans le menu Services > Auto Config Backup, onglet Settings

Menu Services > Auto Config Backup - pfSense - Provya


Les éléments à configurer sont les suivants :

  • Enable ACB : cocher cette case pour activer le service AutoConfigBackup.
  • Backup Frequency : 2 choix sont possibles - sauvegarder la configuration à chaque changement (Automatically backup on every configuration change) ou sauvegarder la configuration à intervalle régulier (Automatically backup on a regular schedule).
  • Schedule : si nous choisissons de faire une sauvegarde à intervalle régulier, il faut préciser les heures et jours de sauvegarde. Le format à utiliser est le format cron.
  • Encryption Password : notre phrase secrète. Les données sauvegardées étant envoyées sur des serveurs tiers, il est important que cette phrase secrète soit suffisamment robuste. Si cette phrase secrète est perdue, il n'y a aucune possibilité de restaurer les données sauvegardées.
  • Hint/Identifier : il est possible de préciser un identifiant qui sera transmis en clair avec les sauvegardes et qui pourra être utilisé par le support Netgate dans le cas où nous aurions perdu l'identifiant unique du firewall. Ce champ est utile uniquement si vous avez souscrit un contrat de support auprès de Netgate. Attention cependant, Netgate prévient officiellement qu'ils ne garantissent pas qu'ils puissent récupérer les sauvegardes via ce paramètre.
  • Manual backups to keep : le nombre de sauvegarde manuelle à conserver. Sur les cent sauvegardes conservées, il est possible de réserver jusqu'à cinquante places pour les sauvegardes manuelles. Nous proposons le nombre 10, qui nous semble être un bon compromis.

Exemple de résultat obtenu pour une sauvegarde automatique à chaque changement de configuration :

Exemple configuration AutoConfigBackup à chaque changement - pfSense - Provya


Exemple de résultat obtenu pour une sauvegarde automatique à intervalle régulier :

Exemple configuration AutoConfigBackup à intervalle régulier - pfSense - Provya

Les sauvegardes sont réalisées tous les samedi à 23h30


Il reste, bien-sûr, à cliquer sur le bouton "Save" afin de sauvegarder notre configuration.

Le service AutoConfigBackup est configuré !

Pour s'assurer que le service fonctionne bien, il nous reste à faire une modification sur la configuration de notre firewall (comme modifier une règle de filtrage, par exemple), puis se rendre dans le menu Services > Auto Config Backup, onglet Restore pour visualiser les sauvegardes automatiques réalisées :

Voir les sauvegardes automatiques - pfSense - Provya


Dans le cas où nous avons choisi de faire une sauvegarde à intervalle régulier, plutôt qu'à chaque changement, il faut attendre que la sauvegarde planifiée ait lieu.


Faire une sauvegarde manuelle


Une sauvegarde manuelle peut être réalisée à n'importe quel moment. Par exemple, avant et après une mise à jour ou des modifications importantes.

Pour lancer une sauvegarde manuelle, il suffit de se rendre dans le menu Services > Auto Config Backup, onglet Backup Now :

Menu Sevices > Auto Config Backup - Backup Now - pfSense - Provya


Il faut saisir les informations liées à la modification afin de pouvoir la retrouver plus facilement, puis cliquer sur le bouton "Backup".

Exemple d'une sauvegarder manuelle via Auto Config Backup - pfSense - Provya




Restauration des sauvegardes


La restauration d'une sauvegarde se fait depuis le menu Services > Auto Config Backup, onglet Restore :

Liste des sauvegardes réalisées avec Auto Config Backup - pfSense - Provya


Il est possible de personnaliser le champ "Device key" afin de restaurer la configuration provenant d'un autre firewall ; la phrase secrète sera également nécessaire.

Pour chaque sauvegarde, il est possible de réaliser 3 actions :

  • Restaurer : Restore this revision - permet de restaurer la sauvegarde choisie - il est conseillé de redémarrer le firewall après avoir lancé la restauration
  • Visualiser : Show info - permet de visualiser le fichier de configuration au format xml
  • Supprimer : Delete config - permet de supprimer une sauvegarde donnée


Voilà, votre firewall est sauvegardé régulièrement et vous savez comment procéder à une restauration depuis une sauvegarde réalisée par AutoConfigBackup.



Limites du service AutoConfigBackup


Le service AutoConfigBackup est très pratique car directement intégré à pfSense et configurable en quelques clics. Il permet d'avoir des sauvegardes régulières et de faire face sereinement en cas de nécessité de retour-arrière ou en cas de défaillance du firewall.
Il s'agit d'une solution efficace et vraiment très simple à mettre en œuvre.

Cependant, en utilisant ce service, les sauvegardes sont envoyées sur les serveurs d'une entreprise tiers, située aux États-Unis et par conséquent soumis au droit américain. De plus, vous devez avoir pleine confiance dans la disponibilité et la fiabilité des serveurs Netgate : en cas de panne chez eux, vous risquez de perdre en partie, voire en totalité, vos sauvegardes.

Pour ces raisons, nous ne conseillons pas forcément d'utiliser ce service. En tout état de cause, si vous décidez d'utiliser AutoConfigBackup, nous vous recommandons de le coupler, a minima, avec des sauvegardes manuelles régulières.

Dans un prochain article, nous présenterons une solution pour sauvegarder soi-même, en toute autonomie et de manière automatisée, la configuration de son pfSense : [pfSense] Sauvegarder automatiquement son firewall avec un script.



Pour aller plus loin


[pfSense] Sauvegarder automatiquement son firewall avec un script
[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


Formation pfSense     Formation OPNsense     Liste de filtrage des IP malveillantes     Firewall pro-Large pour pfSense et OPNsense     Firewall pro-Xtend pour pfSense et OPNsense     Firewall pro-Xtra-SFP+ pour pfSense et OPNsense    

store.provya.fr

icon Tags de l'article :