Backup pfSense Config with Rsnapshot

Tja, seit letztem Wochenende gibt's unsere Astaro nicht mehr. Nur die Hardware lebt davon noch weiter. "Astaro" steht zwar noch drauf, aber pfSense ist drin :-)

Im pfSense Wiki gibt es eine Script Vorlage, wie man ein Remote Backup machen kann

Ich hab's für mich etwas angepasst und ins globale rsnapshot Backup eingebunden:

Backup Benutzer anlegen

Damit sich das Shellscript nicht mit dem Admin Benutzer auf der pfSense einlogged, reicht ein normaler Benutzer, der nur Zugriff auf WebCfg - Diagnostics: Backup/restore page hat:

Backup Script

Das Shellscript speichert neben der kompletten Config jeweils separat nochmal die einzelnen Sektionen wie z.B. nur die VLAN Einstellungen:

/root/scripts/pfSense/backup-pfSense.sh

#!/bin/bash

AREAS="dhcpd filter interfaces ipsec nat installedpackages pptpd cron system sysctl snmpd vlans"
URL="https://192.168.94.1:4444/diag_backup.php"
USER="backup"
PASSWORD="secret"

# Removing created cookie file in unexpected bash exit

trap 'rm cookies.txt' EXIT

# Login and save cookie 

wget -qO/dev/null --keep-session-cookies --save-cookies cookies.txt \
 --post-data "login=Login&usernamefld=$USER&passwordfld=$PASSWORD" \
 --no-check-certificate "$URL"

# Backup all areas in a single XML file

 wget --keep-session-cookies --load-cookies cookies.txt \
 --post-data "Submit=download&donotbackuprrd=yes" "$URL" \
 --no-check-certificate -O config-pfSense-`date +%Y-%m-%d`-ALL.xml

# Backup all areas in a single XML file including RRD data

 wget --keep-session-cookies --load-cookies cookies.txt \
 --post-data "Submit=download" "$URL" \
 --no-check-certificate -O config-pfSense-`date +%Y-%m-%d`-ALL-with-RRD.xml


# Backup selected areas in separate XML files

for AREA in $AREAS

do

 wget --keep-session-cookies --load-cookies cookies.txt \
 --post-data "Submit=download&donotbackuprrd=yes&backuparea=$AREA" "$URL" \
 --no-check-certificate -O config-pfSense-`date +%Y-%m-%d`-"$AREA".xml

done

Hinten fällt dann sowas raus:

Einbinden in /etc/rsnapshot.conf

...
backup_script   /root/scripts/pfSense/backup-pfSense.sh pfSense/
...