BackZoup
BackZoup on kotimainen varmuuskopiointijärjestelmä, joka mahdollistaa tietojen varmuuskopioinnin tietoturvallisesti Internetin kautta sellaiselle kohdetietokoneelle, jonka luottamuksellisuutta ei voida varmistaa. Esimerkkinä tällaisesta kohdekoneesta on vaikkapa kaverisi kone. Järjestelmässä tieto ensin salataan ja sitten siirretään salattua siirtotietä pitkin kohteeseen. Tällä saavutetaan seuraavat edut:
- Tieto ei ole urkittavissa tiedonsiirron aikana.
- Tieto ei ole urkittavissa kohdetietokoneella.
- Kohdetietokoneeseen ei tarvita pääkäyttäjän oikeuksia.
Tällainen järjestelmä voidaan saavuttaa usealla tavalla, joista BackZoup perustuu yhdistelmälle NBD + ssh + LUFS + rdiff-backup. Mikäli käytössä on LVM, saadaan varmuuskopioiden ottamiseen lisää joustavuutta. Näiden eri sovellusten tuntemus ei ole tarpeen, koska tarvittavat vaiheet neuvotaan tässä artikkelissa.
Lisätietoja muista vastaavista ratkaisuista löytyy artikkelin lopusta.
Taustaa tekniikasta
Kaikki käyttäjät käyttävät samaa tunnusta, erottelu tapahtuu ssh-avaimilla. Luodaan tunnus järjestelmään, jolle ei aseteta salasanaa
# adduser --disabled-password netbackup
NBD:n kääntäminen ja asennus
NBD tarvitsee lähdekoodimuutoksen eli pätsin toimiakseen ssh:n kautta.
Tarvitset nbd:n version 2.9.11, koska SSH-tuen mahdollistava pätsi on olemassa ainoastaan tälle versiolle. NBD on ladattavissa osoitteesta http://sourceforge.net/projects/nbd/ . SSH-pätsi on saatavissa osoitteesta http://iki.fi/zouppen/b/nbd-2.9.11-ssh2.patch .
Mikäli haluat varmuuskopioida kahteen suuntaan, eli tarjota varmuuskopiointitilaa ystävällesi ja vastaavasti käyttää ystäväsi tietokonetta oman datasi varmuuskopiointiin, kannattaa nbd paikata ja asentaa koko käyttöjärjestelmän osana. Tällöin suorita seuraavat komennot tavallisena käyttäjänä:
mkdir -p ~/tmp cd ~/tmp wget http://surfnet.dl.sourceforge.net/sourceforge/nbd/nbd-2.9.11.tar.bz2 wget http://iki.fi/zouppen/b/nbd-2.9.11-ssh2.patch tar -xjf nbd-2.9.11.tar.bz2 cd nbd-2.9.11 patch -p0 <../nbd-2.9.11-ssh2.patch ./configure make sudo make install
Mikäli haluat ainoastaan tarjota varmuuskopiointitilaa, kannattaa nbd asentaa varmuuskopiokäyttäjän tunnuksella. Seuraava esimerkki asentaa nbd:n hakemistoon ~netbackup/nbd:
su - netbackup cd mkdir -p tmp nbd/etc/nbd-server .ssh cd tmp wget http://surfnet.dl.sourceforge.net/sourceforge/nbd/nbd-2.9.11.tar.bz2 wget http://iki.fi/zouppen/b/nbd-2.9.11-ssh2.patch tar -xjf nbd-2.9.11.tar.bz2 cd nbd-2.9.11 patch -p0 <../nbd-2.9.11-ssh2.patch ./configure --prefix=$HOME/nbd make make install
Nyt voimme ottaa käyttöön asennetun moduulin
modprobe nbd
Asennuksen jälkeen voidaan poistaa väliaikaistiedostot:
cd rm -r ~/tmp
Tehdään nbd:n asetustiedosto. Tätä ei tarvita varsinaisesti mihinkään, mutta sillä saadaan nbd-server olemaan valittamatta puuttuvasta asetustiedostosta. Suorita seuraavat rivit
cat >~/nbd/etc/nbd-server/config <<EOF [generic] [export] exportname = /blah port = 0 EOF
Palataan takaisin root-käyttäjäksi
exit
Käyttäjäkohtaiset asetukset
Nyt voidaan tehdä asetukset eri käyttäjille. Toista tätä tarvittaessa.
Tallennustilan luonti
Varmuuskopiointitila voi olla joko tavallisia tiedostoja tai osioita. Mikäli järjestelmässäsi on LVM käytössä, suosittelen sen käyttämistä.
LVM-osio
Mikäli käytössäsi on LVM, voit luoda varmuuskopio-osion seuraavasti:
# lvcreate -L 10G -nmaakuth levy
Se luo uuden kymmenen gigatavun loogisen taltion nimeltään 'maakuth' LVM:n taltioryhmään nimeltään 'levy'. Uusi looginen taltio löytyy polusta /dev/mapper/levy-maakuth.
Annetaan oikeudet osiolle:
# chown netbackup /dev/mapper/levy-maakuth
LVM-taltioiden sisältöä ei luontivaiheessa nollata. Jos taltio sattuu levyllä kohtaan, jolla on ollut aiemmin jo dataa, kannattaa sisältö nollata, jotta levytilan uusi omistaja ei pääsisi lukemaan aiempaa sisältöä. Tämä vie aikaa lukuisia minuutteja osion koosta riippuen.
# dd if=/dev/zero of=/dev/mapper/levy-maakuth
Tiedostojärjestelmä tiedostossa
Jos käytössäsi ei ole LVM:ää, niin toiseksi paras tapa on käyttää tavallisia tiedostoja. Se onnistuu menemällä hakemistoon, jossa käyttäjällä netbackup on kirjoitusoikeudet (esimerkiksi ~netbackup) ja komentamalla:
# dd bs=1048576 count=0 seek=10000 of=maakuth.img
Tämä luo noin 10 gigatavun tiedoston nykyiseen hakemistoon, joka on toistaiseksi tyhjä (se ei edes vie tilaa levyllä, ns. "sparse file"). Tätä tiedostoa voi käsitellä nbd:llä ikään kuin se olisi osio.
Tiedostoa ei tarvitse nollata LVM:n tapaan, koska se on tiedosto eikä osio.
Käyttäjän varmennus
Otetaan käyttäjän oikeudet
# su - netbackup
Pyydä käyttäjältä hänen julkinen SSH-avaimensa. Hän voi halutessaan luoda uuden avaimen ssh-keygen -sovelluksella tai käyttää olemassa olevaa.
Muokkaa tiedostoa .ssh/authorized_keys. Huolehdi, että käyttämäsi tekstieditori ei rivitä tiedostoa automaattisesti. Lisää tiedoston loppuun rivi:
command="nbd/bin/nbd-server -s 0 LAITE",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty AVAIN
Korvaa LAITE tiedostolla, johon käyttäjä tallentaa datansa. Loit sen äskettäin. Esimerkiksi /dev/mapper/levy-maakuth. Korvaa avain käyttäjän avaimella, alkaa usein ssh-rsa tai ssh-dss.
Yhteyden muodostaminen
Asetukset on nyt tehty, ja voit kokeilla asiaa käytännössä. Pyydä kaveriasi kääntämään nbd tämän tiedoston alun ohjeiden mukaan ja komentamaan pääkäyttäjänä:
# ~/nbd/bin/nbd-client -cmd ssh -i POLKU_AVAIMEEN -e none netbackup@kaverin.kone.fi ';' /dev/nbd0
Tässä POLKU_AVAIMEEN on polku salaisen avaimen tiedostoon. Jos käytät samaa avainta tavallisena käyttäjänä, se löytyy polusta ~käyttäjä/.ssh/id_dsa tai id_rsa.
Jos sovellus lopettaa ilman virhettä, on uusi etäinen kovalevysi laittessa /dev/nbd0.
Voit vaikka heti luoda levylle tiedostojärjestelmän mkfs:llä, liittää levyn mountilla ja sen jälkeen ruveta käyttämään. Kuitenkin kannattaa tutustua seuraavaan kappaleeseen, koska siinä neuvotaan salauksen käyttöönotto.
Laitteen saat poistettua järjestelmästäsi komentamalla:
# ~/nbd/bin/nbd-client -d /dev/nbd0
Salattu tiedostojärjestelmä
Mikäli käytettävissäsi on LUKS, suosittelen sitä salaamiseen. Se tulee useimpien jakeluiden mukana [1]. [vanhentunut linkki]
Tehdään muutama oletus. Journalointia ja atimeä ei kannata verkon yli liitettävässä tiedostojärjestelmässä käyttää tehokkuussyistä. Tämä ei perustu mittaustuloksiin, joten tätä osiota kannattaa asiasta tietävien täydentää. Siksi tässä käytetään tiedostojärjestelmänä ext2:ta noatime-asetuksella.
Luodaan salattu tiedostojärjestelmä. Tässä vaiheessa kannattaa keksiä itselleen salasana. Salasanan keksimisessä auttaa komento pwgen.
# luksformat -t ext2 /dev/nbd0
Tämän jälkeen saat salatun osion näkymään komennolla:
# cryptsetup luksOpen /dev/nbd0 backup
Tämä luo järjestelmääsi laitteen /dev/mapper/backup, jossa selkokielinen tiedostojärjestelmä sijaitsee. Voit esimerkiksi kokeilla osion liittämistä. Oletetaan, että sinulla on tyhjä hakemisto /mnt/backup:
# mount -o noatime /dev/mapper/backup /mnt/backup
Voit kokeilla tiedostojen kirjoittamista levylle.
Lopuksi voit poistaa salatun osion näkyvistä järjestelmästäsi komentamalla:
# umount /mnt/backup # cryptsetup remove backup
Viimeistely
Lopuksi kannattaa nähdä hetki vaivaa asetusten tekemiseen, koska näin säästää aikaa tulevaisuudessa, kun ei tarvitse rutiinikäytössä muistella kaikkia komentoja ulkoa.
Helpotetaan salatun osion liittämistä tekemällä pääkäyttäjälle ssh-config. Lisää tiedoston ~root/.ssh/config loppuun:
Host backup EscapeChar none BatchMode yes User netbackup HostName palvelin.fi IdentityFile polku_salaiseen_avaimeesi Port 22
Tämän jälkeen yhdistäminen pitäisi onnistua lyhyemmin komentamalla:
nbd-client -cmd ssh backup ';' /dev/nbd0
Lähteet
https://help.ubuntu.com/community/EncryptedFilesystemOnIntrepid