Festplatte verschlüsseln
Aus Programmers Guide
(Unterschied zwischen Versionen)
Roy (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Festplatte verschlüsseln und mit rsync ein Backup darauf starten == Bitte darauf achten, dass dieses Script nur erfolgreich durchlaufen kann, wenn mittels S…“) |
Roy (Diskussion | Beiträge) K |
||
(Der Versionsvergleich bezieht 1 dazwischenliegende Version mit ein.) | |||
Zeile 41: | Zeile 41: | ||
#lesepfad="root@server:/home/user/sicherung/" | #lesepfad="root@server:/home/user/sicherung/" | ||
lesepfad="service@server:/sicherung/" | lesepfad="service@server:/sicherung/" | ||
+ | #das -z bei hohen Bandbreiten weglassen, ich brauche mit -z für 60GB 4 Stunden anstatt 1,5 (ohne -z) bei 100MBit LAN | ||
rsyncvars="-r -u --delete -z" | rsyncvars="-r -u --delete -z" | ||
Zeile 157: | Zeile 158: | ||
fi | fi | ||
###################################################################### | ###################################################################### | ||
- | + | mail -s "Backup auf externe Platten" "mailadresse" < /var/log/backup.log | |
- | + | ||
- | mail -s "Backup auf externe Platten" " | + | |
exit 0 | exit 0 | ||
- | + | </source> |
Aktuelle Version vom 13:22, 26. Aug. 2010
Festplatte verschlüsseln und mit rsync ein Backup darauf starten
Bitte darauf achten, dass dieses Script nur erfolgreich durchlaufen kann, wenn mittels SSH-Schlüsselaustausch der root-Nutzer darauf zugreifen kann.
siehe dazu auch: SSH
Auszug aus der crontab:
30 3 * * 2 root bash /etc/backup > /var/log/backup.log
/etc/backup
#!/bin/bash #wir brauchen für folgendes script: #die module: # -cryptoloop # -aes # nen schlüssel -> hier einfach mit dd if=/dev/random of=/root/usbpass bs=1 count=32 erstellt ####################### #Also wir mounten die platte auf ein loop-interface, welches für uns crypted: #cat $passwortdatei | losetup -e aes -p 0 $loop1 $platte1 #und dieses Interface wird einfach mit mkfs.ext3 formatiert und dann normal in der /etc/fstab #gemountet: #/dev/loop0 /media/backup-extern-1 ext3 defaults,noatime 0 0 #dann schreiben mit rsync #dann unmounten #umount pfad #und das loop-interface zerstören: #losetup -d $loop1 #fertig #hab mal geguckt, durchs verschlüsseln haben wir nur 10 min länger zeit einzuplanen, wollte aber erstmal #den schlüssel nicht vergrößern #Lesezeug #lesepfad="root@server:/home/user/sicherung/" lesepfad="service@server:/sicherung/" #das -z bei hohen Bandbreiten weglassen, ich brauche mit -z für 60GB 4 Stunden anstatt 1,5 (ohne -z) bei 100MBit LAN rsyncvars="-r -u --delete -z" #Schreibzeug #die Festplattenerkennung kann komischerweise nicht per uuid erfolgen, wenn sie verschlüsselt formatiert wurde. #also machen wir es nach ID platte1="/dev/disk/by-id/usb-BUFFALO_HD-PXU2_001010070301C5160-0:0-part1" platte2="/dev/disk/by-id/usb-BUFFALO_HD-PXU2_0010100703010DD10-0:0-part1" loop1="/dev/loop0" loop2="/dev/loop1" mountpfad1="/media/backup-extern-1/" mountpfad2="/media/backup-extern-2/" passwortdatei="/root/usbpass" #Kryptomodule laden modprobe cryptoloop modprobe aes ################## #Erstmal alle Platten und Loop-Interfaces aushängen, wenn mal abgebrochen wurde oder so umount $mountpfad1 > /dev/null 2>&1 umount $mountpfad2 > /dev/null 2>&1 losetup -d $loop1 > /dev/null 2>&1 losetup -d $loop2 > /dev/null 2>&1 ################################################### #Nun mounten wir die Loop-Interfaces############### #passwortdatei birgt unseren geheimen Schlüssel cat $passwortdatei | losetup -e aes -p 0 $loop1 $platte1 > /dev/null 2>&1 cat $passwortdatei | losetup -e aes -p 0 $loop2 $platte2 > /dev/null 2>&1 ############################################# ################################################################### #Wenn wir die erste Festplatte mounten können: # #Auszug aus /etc/fstab: #/dev/loop0 /media/backup-extern-1 ext3 defaults,noatime 0 0 # if mount $mountpfad1 > /dev/null 2>&1 then echo $(date +"%Y-%m-%d %H:%M:%S") echo "Erfolgreich Platte 1 eingehangen." echo "Ich starte mit dem Backup auf erste Platte..." echo $(date +"%Y-%m-%d %H:%M:%S") echo "-------rsync-------" rsync $rsyncvars $lesepfad $mountpfad1 echo "-------------------" cd $mountpfad1 echo $(df -h) cd / echo $(date +"%Y-%m-%d %H:%M:%S") echo "Warte auf Freigabe der Platte 1..." sleep 10 echo "Alles fertig, versuche Platte 1 auszuhängen..." if umount $mountpfad1 > /dev/null 2>&1 then echo "Das Loop-Interface 0 zerstören..." sleep 5 losetup -d $loop1 > /dev/null 2>&1 echo "Erfolgreich!" echo "" echo $(date +"%Y-%m-%d %H:%M:%S") echo "Fertig mit der ersten Platte." echo "-----------------------------" echo "" else echo "Datenträger 1 konnte nicht ausgehangen werden..." fi else echo $(date +"%Y-%m-%d %H:%M:%S") echo "Festplatte 1 ist anscheinend nicht vorhanden." fi ##################################################################### ##################################################################### #Wenn wir die zweite Festplatte mounten können: # #Auszug aus /etc/fstab: #/dev/loop1 /media/backup-extern-2 ext3 defaults,noatime 0 0 # if mount $mountpfad2 > /dev/null 2>&1 then echo $(date +"%Y-%m-%d %H:%M:%S") echo "Erfolgreich Platte 2 eingehangen." echo "Ich starte mit dem Backup auf zweite Platte..." echo $(date +"%Y-%m-%d %H:%M:%S") echo "-------rsync-------" rsync $rsyncvars $lesepfad $mountpfad2 echo "-------------------" cd $mountpfad2 echo $(df -h) cd / echo $(date +"%Y-%m-%d %H:%M:%S") echo "Warte auf Freigabe von Platte 2..." sleep 10 echo "Alles fertig, versuche Platte 2 auszuhängen..." if umount $mountpfad2 > /dev/null 2>&1 then echo "Das Loop-Interface 1 zerstören" sleep 5 losetup -d $loop2 > /dev/null 2>&1 echo "Erfolgreich!" echo "" echo "Fertig mit der zweiten Platte." echo $(date +"%Y-%m-%d %H:%M:%S") echo "-----------------------------" echo "" else echo "Datenträger 2 konnte nicht ausgehangen werden..." fi else echo $(date +"%Y-%m-%d %H:%M:%S") echo "Festplatte 2 ist anscheinend nicht vorhanden." fi ###################################################################### mail -s "Backup auf externe Platten" "mailadresse" < /var/log/backup.log exit 0