Im Ernstfall kann es äußerst nützlich sein, eine vollständige Sicherung der Firewall zu besitzen, insbesondere bei einer komplexen Konfiguration.
Ein großer Vorteil von IPFire ist die bereits integrierte Backup-Funktion, die sich über die Web-Oberfläche unter System ? Datensicherung nutzen lässt. Im Hintergrund wird dabei das Skript /var/ipfire/backup/bin/backup.pl
ausgeführt.
Dieses Skript kann direkt für unseren Cronjob genutzt werden. Dafür einfach eine neue Datei mit dem Namen system-backup
unter /etc/fcron.daily/
erstellen:
# cd /etc/fcron.daily/
# touch system-backup && chmod +x system-backup && vi system-backup
#!/bin/bash # Alte Backups löschen rm /var/tmp/backupiso/* rm /var/ipfire/backup/*.ipf # Das IPFire Backup Script ausführen. # Es gibt hier 3 Parameter: # include: Es wird ein Config Backup inklusive Logdateien erstellt # exclude: Es wird ein Config Backup ohne Logfiles erstellt # iso: Es wird ein ISO Image inklusive Config Backup und Logfiles erstellt /var/ipfire/backup/bin/backup.pl iso > /dev/null 2>&1 # 5 Minuten warten, damit auch sicher alles fertig ist sleep 300 # Per FTP auf das NAS schieben ncftpput nas01 /Backup/Firewall/ /var/tmp/backupiso/* > /dev/null 2>&1 exit 0
Da sich das Script unter /etc/fcron.daily/
befindet, wird es automatisch täglich ausgeführt.
In meinem Fall lade ich die Sicherung per FTP auf ein NAS hoch, wobei es natürlich jedem selbst überlassen bleibt, wie und wo die Sicherung gespeichert wird. Als FTP-Client nutze ich ncftp, das sich unkompliziert über die IPFire-Paketverwaltung installieren lässt.
Achtung: Im „ISO-Modus“ lädt backup.pl
möglicherweise ein ISO-Image von download.ipfire.org
herunter. Dieser Vorgang kann je nach Geschwindigkeit der Internetverbindung einige Zeit in Anspruch nehmen. Das anschließende sleep
-Intervall kann entsprechend angepasst werden. Mit 5 Minuten ist man jedoch auf der sicheren Seite, da das Image derzeit etwa 100 MB groß ist.
Eigentlich wäre das sleep
nicht erforderlich, da die Befehle/Skripte normalerweise sequenziell ausgeführt werden. Aus irgendeinem Grund startet bei mir jedoch der FTP-Upload, bevor das Backup vollständig erstellt wurde, weshalb die Pause notwendig ist.
Allgemeine Informationen zur Datensicherung in IPFire ist unter https://www.ipfire.org/docs zu finden.
Hallo,
Das ist eine klasse Anleitung und es macht Spass es zu lesen.
Vielen dank dafür.
Viele gruesse
Hey,
das Script ist wirklich super! Ich lasse IPFire damit die Sicherung erstellen und ziehe mit pscp danach die Daten auf mein Backuplaufwerk.
Eine Frage habe ich aber noch: Damit werden nur die Einstellung von IPFire gesichert, nicht die Einstellungen der installierten Addons, oder?
Wo finde ich auf der Shell das Script, was die Datensicherung für die Addons anstößt? In meinem Fall speziell squidclamav.
Viele Grüße
Christian
Hallo Christian,
richtig, die Addon Einstellungen müssen extra gesichert werden.
Dies geschieht ebenfalls mit dem Script unter /var/ipfire/backup/bin/backup.pl – nur mit anderen Parametern. Soweit ich das erkennen kann sollte es so funktionieren:
/var/ipfire/backup/bin/backup.pl addonbackup squidclamav
Schöne Grüße
Alex
Um auch die addons automatisch zu sichern:
ls -1 /var/ipfire/backup/addons/includes | xargs /var/ipfire/backup/bin/backup.pl addonbackup > /dev/null 2>&1
scp /var/ipfire/backup/addons/backup/*.ipf root@target:/share/Backup/iPfire > /dev/null 2>&1
Super, Danke!
Viele Grüße!
Christian
Hallo Alexander,
Super funktionierende Anleitung.
Eines vermisse ich jedoch.
Einen Scripteintrag, der die alten Dateien nach 10 Tagen oder so löscht.
Gibt es da eine Möglichekeit ?
Mit diesem Eintrag funktioniert das ganze auf der IPFire problemlos:
#find /mnt/Backup/ipf -mtime +10 -exec rm {} \;
Gebe ich es so an:
find Mediathek-NAS /DaSi_PCs/IPFire/DaSi/ -mtime +1 -exec rm {} \:
meldet er ein fehlendes Argument bei -exec.
Hast du da eine Lösung, wäre supi.
Gruß
Heiko
Hallo,
ich habe mir erlaubt, das Skriptchen für meine Zwecke umzuschreiben 😉
Wesentliche Änderung:
Das Skript wartet, bis das aufgerufene Skript „/usr/local/bin/backupiso“ tatsächlich fertig ist. (Die sleep-Anweisung ist hierfür nicht geeignet!)
Es können noch „eigene“ Verzeichnisse ergänzt werden, die in die Backup-Routine aufgenommen werden (include)
ncftp
läuft nicht mehr, sshpass ist geht auch nicht. Also: zurück zu den Bord-Mitteln „ssh“ & „scp“ mit „Authentifizierung per öffentlichem Schlüssel“Mailversand (über Bordmittel)
Automatische Anlage eines Cronjobs (Skript muss also nicht direkt in /etc/fcron.daily erstellt werden…) Eh nicht empfehlenswert: wer weiß schon, ob mit ’nem Update nicht alle Cronjobs platt gemacht werden? Gut, wenn dann das Skript außerhalb der Standard-Verzeichnisstruktur liegt.
Viel Spaß damit…