OPNsense Forum

International Forums => German - Deutsch => Topic started by: ssc on September 21, 2017, 06:58:10 am

Title: Remote Backup
Post by: ssc on September 21, 2017, 06:58:10 am
Hallo,

wir wollen in meiner Firma die pfsensen austauschen mit opnsensen. Und sind daher gerade am testen. Bzgl. Backup habe ich eine Frage.

Bei den pfsensen habe ich die Moeglichkeit Backups direkt mit wget von der Box auf einen entfernten Rechner zu holen, z.B.:
wget --keep-session-cookies --load-cookies cookies.txt --no-check-certificate \
  --post-data "download=download&donotbackuprrd=yes&__csrf_magic=$(head -n 1 csrf2.txt)" \
  https://192.168.1.1/diag_backup.php -O config-router-`date +%Y%m%d%H%M%S`.xml

Dies habe ich so auch mit einer opnsense probiert, das scheint so aber nicht zu funktionieren. Zumindest wird das Backup nicht runtergeladen.

Die Anleitung "Anleitung: Automatisiertes Backup auf einen TFTP Server" habe ich gefunden. Wuerde es aber schoener finden, wenn man das direkt mit wget machen kann. So muss ich da keinen Unterschied machen.

Gibt es da eine Moeglichkeit? Sind evtl. nur die mitgelieferten Parameter anders?

Daten zur PfSense:
OPNsense 17.7-amd64
FreeBSD 11.0-RELEASE-p11

Schon mal danke im voraus.
Title: Re: Remote Backup
Post by: ssc on September 21, 2017, 07:30:48 am
Also ich hab nochmal geschaut, als es scheitert schon beim Token holen:
wget -qO- --keep-session-cookies --save-cookies cookies.txt \
  --no-check-certificate https://192.168.1.1/diag_backup.php \
  | grep "name='__csrf_magic'" | sed 's/.*value="\(.*\)".*/\1/' > csrf.txt

Also das ganze laeuft bei der pfsense in 3 Schritten ab:
1. ersten Token holen:
wget -qO- --keep-session-cookies --save-cookies cookies.txt \
  --no-check-certificate https://192.168.1.1/diag_backup.php \
  | grep "name='__csrf_magic'" | sed 's/.*value="\(.*\)".*/\1/' > csrf.txt

2. zweiten Token holen:
wget -qO- --keep-session-cookies --load-cookies cookies.txt \
  --save-cookies cookies.txt --no-check-certificate \
  --post-data "login=Login&usernamefld=admin&passwordfld=pfsense&__csrf_magic=$(cat csrf.txt)" \
  https://192.168.1.1/diag_backup.php  | grep "name='__csrf_magic'" \
  | sed 's/.*value="\(.*\)".*/\1/' > csrf2.txt

3. backup  holen
wget --keep-session-cookies --load-cookies cookies.txt --no-check-certificate \
  --post-data "download=download&donotbackuprrd=yes&__csrf_magic=$(head -n 1 csrf2.txt)" \
  https://192.168.1.1/diag_backup.php -O config-router-`date +%Y%m%d%H%M%S`.xml
Title: Re: Remote Backup
Post by: franco on September 22, 2017, 12:29:49 am
Hallo,

Wir haben das CSRF-Handling umgeschrieben, deswegen geht es wohl nicht ohne Modifikationen.

Aber wie wäre es mit einem Config-Dump über die Firmware API mittels API-Key? Wäre dann nur ein Request. Müsste aber noch implementiert werden wenn es gefällt.

https://docs.opnsense.org/development/how-tos/api.html


Grüsse
Franco
Title: Re: Remote Backup
Post by: ssc on September 22, 2017, 06:23:33 am
Hallo franco,

danke fuer den Link. Das sieht als Option auch gut aus. Ich werd mir das mal genauer anschauen.

Gruss
ssc
Title: Re: Remote Backup
Post by: fabian on September 22, 2017, 11:20:56 am
das hier tut unter Umständen auch noch:

https://github.com/fabianfrz/scripts/blob/master/OPNsense/backup_over_http.rb (https://github.com/fabianfrz/scripts/blob/master/OPNsense/backup_over_http.rb)

Wobei ich grundsätzlich dazu raten würde, die config.xml über SCP oder SFTP herunterzuladen.
Zum Beispiel:
Code: [Select]
scp root@opnsense:/conf/config.xml config-`date +%Y-%m-%d_%H:%M`Das Kommando sollte mit public key authentication ohne Rückfragen die config.xml sichern.
Title: Re: Remote Backup
Post by: franco on September 22, 2017, 07:54:58 pm
Ist auch eine sehr gute Lösung und funktioniert schon: einfach nutzer anlegen, shell rechte vergeben, ssh key hinterlegen und ab geht es. :)

(weil root ist doof)


Grüsse
Franco