Šifrované zálohování celého systému přes wifi / vpn

Stáhnout jako PDF autor: Johny, archiv, dne 9.1.2011


Šifruji celý souborový systém mého notebooku. Občas jsem dělal ruční zálohu toho důležitého na šifrovaný USB disk. Teď jsem ale přemýšlel jak tento postup nějak zautomatizovat, nejlépe přes síť. Chci zálohu pravidelně (teď jsem na to totiž trochu doplatil). Jediné místo kam mohu teď po síti zálohovat je menší souborový server kam má ale přístup víc lidí. Sice jen jako uživatelé, nicméně kdo ví co tam budou hledat. Navíc bych nerad aby si ten server někdo vzal a odnesl. Po promýšlení jsem došel k jistým závěrům o které se chci podělit.

Pro někoho to možná bude inspirace, já bych ale rád slyšel vaše názory, jistě by to šlo i jinak. Zajímá mě v mojí implementaci co si myslíte o bezpečnosti a dalších spektech celého řešení.

Na serveru, ke kterému přistupuji přes VPN, je dostatečná disková kapacita. Nainstaloval jsem si tam nfs server a k diskovému prostoru mohu přistupovat přes NFS.

Na mém notebooku pak přimountuji vzdálený prostor do mého /mnt/nfs

mount -t nfs 10.10.18.24:/mnt/space2 /mnt/nfs

Dále si vytvořím soubor, který bude pak obsahovat šifrovaný filesystém, o velikosti 500GB.

dd if=/dev/zero of=/mnt/space2/fs_backup.lks bs=1M count=500000

Problém je, že pro šiforvání je vhodné, aby soubor obsahoval co možná nejnáhodnější data. Bylo by lepší sahat do /dev/random, ten je ale ukrutně pomalý, eventuelně do /dev/urandom který je rychlejší, méně kvalitní z hlediska náhody, nicméně pro vytvoření takto velkého souboru zase nevhodný. Můj postup který volím je vytvořit soubor obsahující samé nuly, dále soubor převedu do luks formátu a připojím. Pak toto šifrované zařízení přepíšu přes shread 1× náhodnýmy daty. Data nemusejí být podle mě nějak kvalitní protože po zašifrování už se bude jednat o kvalitní bordel. Dále odpojím přes cryptsetup luksClose šifrovaný kontainer a ještě přepíšu hlavičku, prvních 32mb mého souboru, tentokrát si na /dev/urandom počkám. Teď mám tedy soubor obsahující, doufejme, kvalitní náhodná data a bylo to o poznání rychlejší než čekat na /dev/urandom.

Aby bylo vubec možné soubor na disku použít, je třeba přes losetup vytvořit ze souboru blokové zařízení. Zde je moje otázka – je problém že vytvářím zařízení které je připojené přes wifi /802.11a/? Z hlediska problému se sítí… popere se tento postup s lagy a podobně?

losetup /dev/loop0 /mnt/nfs/fs_backup.lks

Dále je třeba /dev/loop0 naformátovat do luks formátu. Dosáhnu toho pomocí příkazu.

cryptsetup -y luksFormat -c blowfish -s 256 /dev/loop0

Zde bych se zase rád zeptal na názory, je vhodné použít blowfish? nebo raději aes? vzhledem k přístupu přes síť není třeba rychlost. Můžete doporučit nějaké dobré nastavení při formátu do luks? Jde mi zejména o bezpečnost.

Dál je třeba kontainer připojit, zadám heslo…

cryptsetup luksOpen /dev/loop0 loop0

Dál je třeba kontainer naformátovat do nějakého rozumného souborového systému

mkfs.ext3 /dev/mapper/loop0

Nakonec připojit…

mount /dev/mapper/loop0 /mnt/zaloha

Teď syncnout, rozhodl jsem se přes rsync…

rsync -av --delete /home/ /mnt/zaloha/

Po skončení odpojit fs, zavřít šifrovaný kontainer, odpojit loop zařízení a odmountovat nfs

umount /mnt/zaloha
cryptsetup luksClose loop0
losetup -d /dev/loop0
umount /mnt/nfs

Samozřejmě že pro zálohování se pojede už jenom následující sekvence, s heslem v texťáku (zabijte mě! nevím jak jinak, neinteraktivně).

mount -t nfs 10.10.18.24:/mnt/space2 /mnt/nfs
losetup /dev/loop0 /mnt/nfs/fs_backup.lks
echo heslokterejetajne | cryptsetup luksOpen /dev/loop0 loop0 -
mount /dev/mapper/loop0 /mnt/zaloha
rsync -av --delete /home/ /mnt/zaloha/
umount /mnt/zaloha
cryptsetup luksClose loop0
losetup -d /dev/loop0
umount /mnt/nfs

Celé toto hodím do cronu a nastavím noční hodinu, třeba 2 hodiny v noci. Pak mi stačí notebook na noc nevypínat a ráno budu mít zálohy.

Fajn je, že po síti, i když je šifrovaná, nelítají prostá data. V podstatě z mého notebooku neodejde nic nezašifrované, takže i kdyby někdo naslouchal přímo u serveru se zálohou, nebude mu to nic platné. Stejně tak nehrozí zneužití v souvislosti s kompromitací serveru. Jde jen a pouze o to, udežet v tajnosti souborový systém mého notebooku. Který z podstaty věci musím udržet v tajnosti. Když praskne heslo k záloze, už skoro není třeba zálohu dále udržovat v tajnosti… neb bude mít útočník data z mého laptopu :)

Táák, nějaké nápady, připomínky?

Připojená fotogalerie: šifrování,luks,dm-crypt,bezpečné zálohování po síti
Štítky tohoto článku:

 


 
Diskuze: Šifrované zálohování celého systému přes wifi / vpn
Vaše jméno (povinné)
Váš email (nebude zveřejněn, povinný)
WEB (bude zveřejněn, pište s http://)
Text vzkazu:
Kolik je 3×2? (ochrana proti spamu)
 
[CNW:Counter]