Backup vor FTP-Upload verschlüsseln

silentiumest

New Member
Hallo,
Ich mache täglich ein Backup von meiner Datenbank und schicke sie per FTP in ein anderes Rechenzentrum. (Script Marke Eigenbau) Da das ziemlich unsicher ist, möchte ich die Datei vor dem Upload verschlüsseln.

Verschlüsseln kann ich ja mit
Code:
gpg -c sicher.txt > sicher.txt.gpg

Dann muss ich aber ein Passwort eingeben. Da ich das Script per Cronjob aufrufe, muss das das irgend wie für mich übernehmen.

Wie wird die Datei dann eigentlich verschlüsselt? Ich glaube mit einem Key und mit dem Passwort. Wo finde ich diesen Key? Weil wenn ich den dann nicht zum entschlüsseln hätte, wäre das ziemlich doof.

Ich verwende Debian Lenny.
 
Last edited by a moderator:

OldSwede

Registered User
Das muesste doch auch mit: openssl enc
zu machen sein (glaub ich)
Gab es nicht sowas wie: secure tar oder ähnliches
 
Dann muss ich aber ein Passwort eingeben.
Entweder über ein Script (in PHP z.B. mit proc_open() und dann STDIN und STDOUT vom Child richtig verarbeiten) oder direkt sollte auch gehen:
Code:
gpg -c sicher.txt < meinpasswort.txt > sicher.txt.gpg
In meinpasswort.txt dann nur nicht auf eine leere Zeile am Ende vergessen!


MfG Christian
 

Cenic

Registered User
Ist "gpg" nicht ein wenig "out" ?

Warum out? Es bietet durch die Public Key Verschlüsselung ja gerade die vom Fragesteller gewünschte Funktionalität.

Ich habe das bei mir so gelöst:zuerst per gpg --gen-key einen dedizierten Schlüssel fürs Backup erzeugen. Den Public Key davon per gpg --armor --export exportieren und diesen dann auf dem Server zum Keyring des Backup-Users (i.A. root) hinzufügen: gpg --import.

In meinem Backup-Script mache ich dann
Code:
gpg --batch --no-tty -e -r ${rcpt} ${dat}
wobei $rcpt die vorher beim Generieren eingegeben Mailadresse ist und $dat die entsprechende Datei. Dabei wird eine neue Datei mit der gpg-Endung erstellt, die ich dann auf den Backup-Space hochlade.

Das Verfahren funktioniert rein mit dem Public Key und benötigt kein Passwort, was irgendwo auf dem Server liegen müßte. Für die Entschlüsselung benötigt man dann den Secret Key. In meinem Setup liegt der Secret Key mit einer starken Passphrase nur auf meinem Privatrechner.
 

silentiumest

New Member
Danke für eure Hilfe! Ich habe es jetzt mit aespipe gemacht.
So sieht mein Script aus (für die, die's interessiert):

Code:
#!/bin/sh
# Dateiname setzten (Datum)
dateiname=`/bin/date +%Y-%m-%d`

# Dump erstellen
mysqldump -u backup -pPWD --databases wichtige_daten > /tmp/$dateiname.sql


# zippen+verschlüsseln
cd /tmp/
tar -cj $dateiname.sql | aespipe -P /root/aespipe.pwd -C 10 -e aes256 > $dateiname.sql.bz2.enc


# verschicken an FTP
wput  $dateiname.sql.bz2.enc ftp://UNAME:PWD@ftp.backup-server.de/backup/


# Dump löschen
rm /tmp/$dateiname.sql.bz2.enc
rm /tmp/$dateiname.sql



Kennt jemand ein Tool, mit dem ich das ganze unter Windows entschlüsseln kann?
 
Last edited by a moderator:
Top