Verschlüsselte verteilte Backups mit AES und FTP
Während meiner Diplomarbeit kam die Notwendigkeit auf, jeden Abend das Geleistete würdig
zu sichern. Also nette Leute nach einen FTP-Account gefragt und ein kleines Skript geschrieben, das
verpackt, verschlüsselt und hochlädt. Außerdem wird ein lokales Backup erzeugt.
Erstmal ein paar Variablen definieren:
NAME=backup`date +%Y%m%d`.tbz.aes DIRTOBACKUP=/important MOUNTPOINT=/mnt/some_backup_drive USER='backupuser' PASSWD='mostsecret' HOST='ftp.backupservicestation.com' REMOTEDIR=backup
Nun schnüren wir ein verschlüsseltes Päckchen,
tar cj $DIRTOBACKUP | aes -e -p my_top_secret_password -o $NAME
kopieren es lokal,
echo copying to local if mount | grep $MOUNTPOINT >/dev/null 2>&1 then cp $NAME $MOUNTPOINT else echo $MOUNTPOINT not mounted fi
und via ftp.
if ping -c 1 -w 2 $HOST >/dev/null 2>&1 then ftp -p -n $HOST <<SCRIPT user $USER $PASSWD binary cd $REMOTEDIR put $NAME quit SCRIPT else echo $HOST not online fi
Für jene unter euch, die here-documents noch nicht kennen:
Ein <<KEYWORD Bedeutet, dass die nächsten Zeilen via stdin an den Befehl davor geschickt werden.
Und zwar geschieht das so lange bis KEYWORD im Skript erscheint. KEYWORD muss dabei am Zeilenanfang stehen.
Mehr Infos dazu finden sich mittels eines beherzten
man bash
.
Das war's schon. Einfach an die eigenen Gegebenheitanpassen und zurücklehnen.
Vielleicht ein Hinweis noch: Da das Skript das Passwort der FTP-Seite kennen muss, sollte es nicht für jedermann einsehbar sein.
Oh, und bevor ich's vergesse. Entpacken geht natürlich auch, und zwar mittels folgender magischer Formel:
aes -d -p my_top_secret_password -f backup.tbz.aes | tar xj
Das kleine Programm namens aes findet sich
hier.




