SWick

Sysadmin-by-Nature

Backup pfSense Config with Rsnapshot
14th June 2013

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/
...
Tags: backup, pfsense.

"People said I should accept the world. Bullshit! I don't accept the world." -- Stallman