tuto:sauvegardes:sauvegarde_pfsense_2

Ceci est une ancienne révision du document !


Sauvegarde d'un serveur pfsense avec BackupPC

Un des gros points forts de pfsense est de pouvoir être entièrement re-configuré via le fichier de configuration xml que l'on peut télécharger depuis l'interface web. Ce how-to a pour but d'expliquer comment automatiser cette sauvegarde à l'aide de BackupPC (déjà pour que ça soit automatique bien sûre, mais grâce au mode historique de BackupPC, on peut suivre facilement les modification de configurations).

Il faut d'abord créer un groupe d'utilisateurs nommé par exemple backups, qui n'a accès qu'à la page de sauvegardes:

Puis il faut créer un utilisateur (par exemple backuppc) membre de ce groupe, avec un mot de passe solide. Dans cet exemple, on lui mettra comme mot de passe secret

Sur le serveur BackupPC, on va créer un répertoire pour y mettre des scripts, et un répertoire pour y téléchargr la configuration de pfsense:

mkdir -p /var/lib/BackupPC/{bin,pfsense}

Puis on écrit le script qui sera utilisé en pre/post dump:

cat <<'EOF' > /var/lib/BackupPC/bin/pfsense.sh
#!/bin/bash
 
DIR='/var/lib/BackupPC/pfsense'
ACTION=$1
 
pre (){
   /usr/bin/wget -qO/dev/null --keep-session-cookies --save-cookies $DIR/cookies.txt --post-data 'login=Login&usernamefld=backuppc&passwordfld=secret' --no-check-certificate https://pfsense.domain.tld/diag_backup.php
    # Config seule. Pour pouvoir tracer les modification de config
    /usr/bin/wget --keep-session-cookies --load-cookies $DIR/cookies.txt  --post-data 'Submit=download&donotbackuprrd=on' https://pfsense.domain.tld/diag_backup.php  --no-check-certificate -O $DIR/config-pfsense.xml 2>/dev/null
    # La meme chose, avec les données RRD en +
    /usr/bin/wget --keep-session-cookies --load-cookies $DIR/cookies.txt  --post-data 'Submit=download' https://pfsense.domain.tld/diag_backup.php  --no-check-certificate -O $DIR/config-pfsense+rrd.xml 2>/dev/null
 
    exit $?
}
 
post (){
    /bin/rm -f $DIR/*
}
 
case $ACTION in
    post)
        post
    ;;
    *)  
        pre
    ;;
esac
EOF
chown :backuppc /var/lib/BackupPC/bin/pfsense.sh
chmod 750 /var/lib/BackupPC/bin/pfsense.sh

Et voilà, il ne reste plus qu'à ajouter un hôte à sauvegarder dans BackupPC, qui ressemblera à ça:

$Conf{ClientNameAlias} = 'localhost';
$Conf{DumpPreUserCmd} = 'sh /var/lib/BackupPC/bin/pfsense.sh pre';
$Conf{PingCmd} = '$pingPath -c 1 -w 3 pfsense.domain.tld';
$Conf{UserCmdCheckStatus} = 1;
$Conf{RsyncClientCmd} = '$rsyncPath $argList+';
$Conf{RsyncClientRestoreCmd} = '$rsyncPath $argList+';
$Conf{RsyncShareName} = [
  '/var/lib/BackupPC/pfsense'
];
$Conf{XferMethod} = 'rsync';
$Conf{XferLogLevel} = 6;
$Conf{DumpPostUserCmd} = 'sh /var/lib/BackupPC/bin/pfsense.sh post';
  • tuto/sauvegardes/sauvegarde_pfsense_2.1306337564.txt.gz
  • Dernière modification: 25/05/2011 17:32
  • de dani