staging.inyokaproject.org

Backup sftp Verschlüsselt

Status: Gelöst | Ubuntu-Version: Server 20.04 (Focal Fossa)
Antworten |

Felidae

Anmeldungsdatum:
11. Mai 2008

Beiträge: Zähle...

Hi @ all,

Ich bin dabei meinem Server um ein Automatisches Backup System zu erweitern. Ich habe schon ein wenig recherchiert und auch schon was ausprobiert. Aber funktioniert hat das alles nicht. Deswegen fange ich noch mal von vorne an.

Was will ich machen:

Ich habe zuhause einen Server mit wichtigen sensiblen Daten. Diese dürfen nicht verloren gehen und auch nicht in dritte Hände gelangen. Ich verfüge über eine Domain und 100GB Online Speicherplatz. Auf diesen Speicher greife ich via sftp(ssh) zu. Das Backup soll automatisch zu festen Terminen ausgeführt werden.

1. Die Daten auf meinem Server müssen Verschlüsselt und als Backup File gespeichert werden.

2. Das Backup File soll via SFTP auf meinem Online Speicher ablegen werden.

3. Es soll immer nur maximal 2 Backup Files Gespeichert werden. Ältere Files sollen gelöscht werden.

4. Ich brauche einen Bericht/Log über Erfolg oder Misserfolg.

Der Bereich im Online Speicher ist nur via SFTP Zugänglich. Das muss aber nicht heißen, dass die Daten nicht Trotzdem gestohlen werden können. Deswegen ist die Verschlüsselung Pflicht. Ich suche jetzt eine Praktikable Lösung.

Hättet ihr mal ein paar Tipps, wie ich das Umsetze?

zu 1. Wie und mit welchen Programm Verschlüssele ich einen Ordner samt Unterordner und Dateien? Wie stelle ich diesen Ordner wieder her? Wichtig die Datei Rechte müssen erhalten bleiben!

zu 2. Hier sehe ich scp als das Programm der Wahl. Aber wie Prüfe ich, das da genug Speicher Frei ist?

zu 3. wie finde und lösche ich alte Backup Files?

zu 4. wie verschicke ich eine Mail mit dem Bericht von der Konsole?

Und zuletzt, was habe ich vergessen zu bedenken?

Felidae

(Themenstarter)

Anmeldungsdatum:
11. Mai 2008

Beiträge: Zähle...

zu 1. Ich habe folgende Herangehensweise gefunden.

https://wiki.ubuntuusers.de/Archiv/Howto/Verzeichnis_packen_und_verschl%C3%BCsseln/

1
2
3
4
5
6
7
8

Backup_Sorce="/path/to/data1 /path/to/data2 ..."
Backup_path="/path/to/BackupDir/"
Backup_File="BackupFileName"

tar cfz $Backup_path$Backup_File.tar.gz  $Backup_Sorce

gpg --batch --passphrase $Passwort -c $Backup_path$Backup_File.tar.gz

san04

Anmeldungsdatum:
19. Januar 2010

Beiträge: 1268

Hi,

ich mach das nicht ganz so ausgefeilt und schiebe es per Hand auf den Server (da das Szenario lokal verschlüsseln und dann in die Cloud nur auf mein Monatsbackup zutrifft, mache ich das 12 mal im Jahr per Hand):

#!/bin/bash

DATE=$(date "+%Y_%m_%d")

# pfad sollte nicht mit "/" enden!
BACKUP_DIR="home/user"
SOURCE="home/user/data"

cd /
tar -vczp $SOURCE | gpg -z 0 -c --cipher-algo AES256 --digest-algo SHA512 > $BACKUP_DIR/$DATE-data_Backup.tar.gz.gpg

Das hab ich irgendwann mal von hier → Skripte/Backupscript übernommen und ein bisschen modifziert. Das Skript packt den Ordner mit tar in ein Verzeichnis und verschlüsselt alles symmetrisch mit GPG, asymmetrisch ginge aber auch. (Nachteilig ist natürlich, dass man den gleichen Speicherplatz fast zweimal zur Verfügung haben muss)

An anderer Stelle nutze ich dieses → Skripte/Backup mit RSYNC allerdings nutze ich nicht alle Funktionen. Das inkrementelle Sichern kann man sich sparen, da das Skript ja nicht in den Container schauen kann...

Aus einer Kombination von beiden Skripten müsstest du eigentlich alle Punkte 1) - 4) erschlagen können.

Also mit dem ersten Skript deine Sicherung lokal verschlüsseln und packen, im nächsten Schritt den freien Speicherplatz abfragen und alles hochschieben und eine Rückmeldung per Mail geben.

Zu 1.: Rechte bleiben bei tar mit der Option -p erhalten

Zu 2.: Freien Speicher müsstest du über ssh mit df -h prüfen können

Zu 3.: Das zweite Skript kann auf monatlicher Basis rotieren. Für deine Anforderung müsste es ja ausreichend sein einfach zwei Sicherungen anzulegen (A und B), wie im Skript einen Softlink "LAST" auf die letzte Sicherung (ich nenne sie mal A) zu setzen, die andere Sicherung (B) zu überschreiben und zum Schluss den Softlink auf B umzubiegen, weil das ja nun die aktuellste ist. Beim nächsten mal läuft der Spaß von vorn los.

Zu 4.: Das kann das Skript, wenn ein Mailprogramm installiert ist.

Zugegebenermaßen kann ich das auch nicht in 5 min runterschreiben, aber vielleicht helfen ja die Denkanstöße? (Oder es findet sich noch ein fähigerer Forumsnutzer 😉 )

Am Ende ausgiebiges Testen nicht vergessen.... Viel Erfolg!

Felidae

(Themenstarter)

Anmeldungsdatum:
11. Mai 2008

Beiträge: 88

zu 2. scp hat funktioniert. Zu prüfen ob genug speicher frei ist nicht. df (disk free) via sftp aufgerufen hat ergeben, dass 8 TB von 15 TB frei sind. Die Begrenzung meines Speicherbereich auf 100Gb kann man so nicht abfragen. Bleibt also nur zu Prüfen ob das kopieren Funktioniert hat.

1
2
3
4
5
sshpass -p $pass_ssh scp -r  $Backup_path $login_ssh:
if [ $? != 0 ] 
then 
	Error handling ... 
fi

Felidae

(Themenstarter)

Anmeldungsdatum:
11. Mai 2008

Beiträge: 88

san04 schrieb:

Zu 1.: Rechte bleiben bei tar mit der Option -p erhalten

danke für den Tipp werde ich übernehmen.

Zu 2.: Freien Speicher müsstest du über ssh mit df -h prüfen können

Ich habe nur einen eingeschränkten ssh zugriff. sftp csp funktiomiert, ssh oder rsync nicht.

Zu 3.: Das zweite Skript kann auf monatlicher Basis rotieren. Für deine Anforderung müsste es ja ausreichend sein einfach zwei Sicherungen anzulegen (A und B), wie im Skript einen Softlink "LAST" auf die letzte Sicherung (ich nenne sie mal A) zu setzen, die andere Sicherung (B) zu überschreiben und zum Schluss den Softlink auf B umzubiegen, weil das ja nun die aktuellste ist. Beim nächsten mal läuft der Spaß von vorn los.

Ja so werde ich das machen, das Sollte nicht so schwähr sein. Die Mänge der Daten ist zum Glück nicht besonders Groß. da Reicht der Festplattenspeicher für zwei Backups.

Zu 4.: Das kann das Skript, wenn ein Mailprogramm installiert ist.

Das kommt zuletzt. wenn der Rest funktioniert.

san04

Anmeldungsdatum:
19. Januar 2010

Beiträge: 1268

Oh das hatte ich wohl überlesen, wenn es nur sftp Zugriff gibt könnte das schwierig werden.

Wobei zumindest den Befehl auszuführen ja offenbar geklappt hat? Vielleicht dann so? https://serverfault.com/questions/62837/how-can-i-check-the-remaining-disk-quota

Andersrum könntest du vielleicht auch die Größe der Daten bestimmen und von deiner Quota abziehen um den freien Platz selbst zu berechnen?

Antworten |