tuto:sauvegardes:sauvegarde_pfsense_2

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tuto:sauvegardes:sauvegarde_pfsense_2 [25/05/2011 17:42]
dani [Sur BackupPC]
tuto:sauvegardes:sauvegarde_pfsense_2 [13/03/2017 17:27] (Version actuelle)
dani
Ligne 12: Ligne 12:
  
 ===== Sur BackupPC ===== ===== Sur BackupPC =====
-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:+Sur le serveur BackupPC, on va créer un répertoire pour y mettre des scripts, et un répertoire pour y télécharger la configuration de pfsense:
  
 <code bash> <code bash>
Ligne 23: Ligne 23:
 <code bash> <code bash>
 cat <<'EOF' > /var/lib/BackupPC/bin/pfsense.sh cat <<'EOF' > /var/lib/BackupPC/bin/pfsense.sh
-#!/bin/bash+#!/bin/bash -e
  
-DIR='/var/lib/BackupPC/pfsense' +OUT='/var/lib/BackupPC/pfsense' 
-ACTION=$1+TMP=$(mktemp -d) 
 +URL='https://pfsense.domain.tld' 
 +LOGIN='backuppc' 
 +PASS='p@ssw0rd'
  
-pre (){ +# Save cookie and CSRF for the login form 
-   /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 +CSRF1=$(/usr/bin/wget -qO--keep-session-cookies --save-cookies $TMP/cookies.txt --no-check-certificate $URL/diag_backup.php \ 
-    # Config seule. Pour pouvoir tracer les modification de config +   | grep "name='__csrf_magic'" \ 
-    /usr/bin/wget --keep-session-cookies --load-cookies $DIR/cookies.txt  --post-data 'Submit=download&donotbackuprrd=onhttps://pfsense.domain.tld/diag_backup.php  --no-check-certificate -O $DIR/config-pfsense.xml 2>/dev/null +   | /usr/bin/perl -pe 's/.*value="(sid:[\da-z]+,[\d,a-z]+).*/$1/')
-    # 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 $? +# Submit the login form with the previous values, and save a new CSRF token 
-}+CSRF2=$(/usr/bin/wget -qO- --keep-session-cookies --load-cookies $TMP/cookies.txt --save-cookies $TMP/cookies.txt --no-check-certificate  \ 
 +   --post-data "login=Login&usernamefld=$LOGIN&passwordfld=$PASS&__csrf_magic=$CSRF1" $URL/diag_backup.php \ 
 +   | grep "csrfMagicToken"
 +   | /usr/bin/perl -pe 's/.*var\scsrfMagicToken\s=\s"(sid:[\da-z]+,[\d,a-z]+).*/$1/')
  
-post (){ +# Save only the config, and retrieve a 3rd CSRF token 
-    /bin/rm -$DIR/* +/usr/bin/wget -q --keep-session-cookies --load-cookies $TMP/cookies.txt --save-cookies $TMP/cookies.txt --no-check-certificate \ 
-}+    --post-data "download=Download%20configuration%20as%20XML&donotbackuprrd=yes&__csrf_magic=$CSRF2" $URL/diag_backup.php -O $OUT/config-pfsense.xml \
  
-case $ACTION in +rm -f $TMP/*.txt 
-    post) +rmdir $TMP
-        post +
-    ;; +
-    *)   +
-        pre +
-    ;; +
-esac+
 EOF EOF
 chown :backuppc /var/lib/BackupPC/bin/pfsense.sh chown :backuppc /var/lib/BackupPC/bin/pfsense.sh
Ligne 60: Ligne 58:
  
 $Conf{ClientNameAlias} = 'localhost'; $Conf{ClientNameAlias} = 'localhost';
-$Conf{DumpPreUserCmd} = 'sh /var/lib/BackupPC/bin/pfsense.sh pre';+$Conf{DumpPreUserCmd} = '/var/lib/BackupPC/bin/pfsense.sh';
 $Conf{PingCmd} = '$pingPath -c 1 -w 3 pfsense.domain.tld'; $Conf{PingCmd} = '$pingPath -c 1 -w 3 pfsense.domain.tld';
 $Conf{UserCmdCheckStatus} = 1; $Conf{UserCmdCheckStatus} = 1;
Ligne 70: Ligne 68:
 $Conf{XferMethod} = 'rsync'; $Conf{XferMethod} = 'rsync';
 $Conf{XferLogLevel} = 6; $Conf{XferLogLevel} = 6;
-$Conf{DumpPostUserCmd} = 'sh /var/lib/BackupPC/bin/pfsense.sh post'; 
 </code> </code>
 +
 +<note tip>Pour un serveur OPNSense, le principe est le même, mais le script est légèrement différent:
 +
 +<code bash>
 +#!/bin/bash -e
 +
 +OUT='/var/lib/BackupPC/pfsense'
 +TMP=$(mktemp -d)
 +URL='https://pfsense.domain.tld'
 +LOGIN='backuppc'
 +PASS='p@ssw0rd'
 +
 +# Submit the login form with the previous values, and save a new CSRF token
 +/usr/bin/wget -q -O /dev/null --keep-session-cookies --save-cookies $TMP/cookies.txt --no-check-certificate  \
 +   --post-data "login=Login&usernamefld=$LOGIN&passwordfld=$PASS" $URL/diag_backup.php
 +
 +# Save only the config
 +/usr/bin/wget -q --keep-session-cookies --load-cookies $TMP/cookies.txt --save-cookies $TMP/cookies.txt --no-check-certificate \
 +    --post-data "download=Download%20Configuration&donotbackuprrd=yes" $URL/diag_backup.php -O $OUT/config-pfsense.xml \
 +
 +rm -f $TMP/*.txt
 +rmdir $TMP
 +</code>
 +</note>
  • tuto/sauvegardes/sauvegarde_pfsense_2.1306338129.txt.gz
  • Dernière modification: 25/05/2011 17:42
  • de dani