Šifrování home oddílu v Ubuntu

Pokud Vám jsou drahá vaše data nebo vás v nočních můrách děsí představa ukradeného notebooku plného citlivých informací, jistě nepohrdnete krátkým článkem o šifrování oddílu home v Ubuntu.

Tento článek je silně inspirován článkem Encrypted swap, tmp and home partition in Ubuntu 9.04. Postup uvedený v článku byl testován v Ubuntu 9.04 a 9.10. Většina uvedených příkazů je potřeba upravit pro váš konkrétní případ (změnit název oddílu, jméno uživatele apod.). Všechny uvedené příkazy je potřeba provádět jako root (např. pomocí sudo).

Prerekvizity

Pro šífrování použijeme utilitu cryptsetup a její rozšíření Linux Unified Key Setup (LUKS). LUKS provádí šifrování přímo na úrovni blokových zařízení (např. oddílů). Naproti tomu instalátor Ubuntu, který také šifrování home umožňuje, využívá utilitu eCryptfs, která šifruje jednotlivé soubory.

Abychom nemuseli zadávat ručně klíč (heslo) k odemčení oddílu, nastavíme klíč stejný jako heslo uživatele a použijeme libpam-mount k připojení oddílu během přihlašování.

Nejprve tedy nainstalujeme potřebné balíky:

apt-get install cryptsetup libpam-mount

Vytvoření šifrovaného oddílu

Dále budeme počítat s tím, že máme prázdný odpojený oddíl /dev/sda2, který chceme použít jako šifrovaný home.

cryptsetup -c aes-cbc-essiv:sha256 -y -s 256 luksFormat /dev/sda2

Příkaz po nás bude nejprve chtít potvrdit řetezcem YES, že opravdu chceme ztratit všechna data na tomto oddílu a následně nás vyzve k zadání tajného klíče.

Vytvoření souborového systému na oddílu

Šifrovaný oddíl bychom tedy měli, ale nic na něm není. Než na něj budeme moci začít cokoliv zapisovat, musíme nejprve na oddílu vytvořit souborový systém (např. Ext4).

cryptsetup luksOpen /dev/sda2 cryptohome

Tento příkaz po zadání klíče vytvoří nové blokové zařízení - dešifrovaný oddíl.

mkfs.ext4 -j -m 1 -O dir_index,filetype,sparse_super /dev/mapper/cryptohome

Mkfs pak na novém oddíle vytvoří souborový systém Ext4 s 1% bloků rezervovaných pro roota, B-stromy pro rychlejší procházení velkých adresářů, s informacemi o typech souborů uloženými přímo v tabulkách adresářů a menším počtem záloh superbloků.

Připojení během přihlášování

Do souboru /etc/security/pam_mount.conf.xml za komentrář

<!-- Volume definitions -->
přidáme:
<volume user="Váš login" fstype="crypt" path="/dev/sda2" mountpoint="/home" />

Zkopírování souborů na nový oddíl

Oddíl tedy již máme připravený a nastavili jsme jeho automatické připojování během přihlašování. Nyní nás čeká poslední úkol, a to zkopírovat data ze současného /home adresáře na nový oddíl.

Připojíme dešifrovaný oddíl:

mount /dev/mapper/crypthome /mnt

A zkopírujeme celý současný /home adresář:

cp -pR /home/* /mnt

Nakonec bychom ještě měli v původním /home adresáři odstranit všechny citlivé informace.

Hotovo! Stačí restartovat.

Změna tajného klíče

Pokud se Vám stalo, že jste zvolili nevhodný klíč (krátký, špatně se píše apod.), nezoufejte, LUKS umožňuje používat více klíčů k jednomu šifrovanému oddílu.

cryptsetup luksAddKey /dev/sda2

Příkaz se nejprve zeptá na původní klíč a po jeho ověření můžete zadat klíč nový. Pokud se starého klíče chcete nadobro zbavit, můžete ho obdobně příkazem cryptsetup luksRemoveKey /dev/sda2 odstranit.

evaluation

Komentáre

[1] pee
2012-02-10 19:49:26

Diky za navod. Jen ty prikazy musim zadavat pod rootem. A jak resit, automaticky pripojivani, kdyz mam v systemu vic uzivatelu?

comments closed