Taggat med: Colin Percival

Tarsnap – Backup i molnet för den som är paranoid

Tarsnap är en backuptjänst i molnet för den som är paranoid. Kryptering genomförs på klientsidan innan datan skickas upp till Amazon S3-tjänst. Tarsnap är utvecklat av Colin Percival som är övermänsklig, han har bl.a. utvecklat scrypt och är har varit säkerhetschef för FreeBSD. Givetvis är även tarsnap öppen källkod tillgänglig källkod och mer tekniska detaljer finnes här.

Tarsnap har inget inbyggt grafiskt gränssnitt och stödjer operativsystem såsom Mac OS X, Ubuntu, FreeBSD osv. Stöd till Windows finnes via Cygwin, även så finns det tredjepartskod med GUI.

Så kommer du igång med Tarsnap

Först och främst laddar du hem tarsnap till din server eller klient:

$ wget https://www.tarsnap.com/download/tarsnap-autoconf-1.0.37.tgz

Och verifierar sedan nedladdningen:

$ sha256sum tarsnap-autoconf-1.0.37.tgz
SHA256 (tarsnap-autoconf-1.0.35.tgz) = fa999413651b3bd994547a10ffe3127b4a85a88b1b9a253f2de798888718dbfa

Sedan installerar du eventuella beroenden som kan behövas.

Detta är för Ubuntu:

$ sudo apt-get install libssl-dev zlib1g-dev e2fslibs-dev make

Vi extraherar tarsnap och bygger koden:

$ tar xvfz tarsnap-autoconf-1.0.37.tgz
$ cd tarsnap-autoconf-1.0.37/
$ ./configure && make
$ sudo make install

Och förhoppningsvis gick allt bra och tarsnap är installerat. Om du inte har något konto på tarsnap.com så är det läge att skapa det nu. Det är gratis att skapa ett konto, men du måste sätta in pengar för att betala för lagring och överföring. Du kan betala med Bitcoin, kort eller Paypal.

Nu skapar vi en nyckel för denna server och anger våra login-uppgifter som vi använde när vi skapade kontot på tarsnap.com:

$ tarsnap-keygen --keyfile /root/domän-tarsnap.key --machine domän.se --user [email protected]
$ chmod 600 /root/domän-tarsnap.key

Viktigt här är att du sparar undan nyckelfilen domän-tarsnap.key på ett annat system än det du gör backup på. För förlorar du denna fil så kan du ej återskapa data från servern samt ser till att enbart användaren som gör backup får läsa denna nyckelfil.

Så gör du backup med Tarsnap

Även så fungerar tarsnap precis som tar men med lite extra argument. Jag brukar skapa en fil vid namn backup.sh som även dumpar ut MySQL-databas så den följer med i backupen.

Så här ser min backup.sh ut som körs via cronjobb varje natt av root. Se även till att obehöriga inte kan läsa filen backup.sh då den innehåller lösenord.

mysqldump -u root -plösenord https > /var/www/domän.se/backup/`date +"%Y%m%d"`.sql
tarsnap --keyfile /root/domän-tarsnap.key --cachedir /usr/local/tarsnap-cache -c -f domän.se-`date +%F` /var/www/domän.se/docs/ /var/www/domän.se/backup/ /etc/nginx/sites-enabled/default-ssl /etc/nginx/sites-enabled/default

Du kan även behöva skapa katalogen /usr/local/tarsnap-cache/. Vill du även ta bort äldre backup-filer så kan du göra det med följande rad. Observera att det kan även vara bra med en kontroll att backupen lyckas innan du tar bort äldre backup-filer:

tarsnap --cachedir /usr/local/tarsnap-cache --keyfile /root/domän-tarsnap.key -d -f domän.se-`date -d "2 days ago" +%F`

Glöm inte att testa återställning också vid regelbundna intervaller, det är viktigt.

Kolla även in denna gist som underlättar installationen.