Navigace:Píšem.cz ⇒ Návody ⇒ Šifrování oddílů disku v distribuci Mandriva 2008
Šifrování oddílů disku v distribuci Mandriva 2008
Šifrování oddílů na Mandrivě 2008 s rozšířením LUKS (Linux Unified Key Setup) pro DM-crypt, funguje se standardním jádrem 2.6.22.9-desktop-1mdv, dá se to jednoduše zavést, moduly…Návod na šifrování rootu najdeš na http://feraga.com/…ks_support_0 stačí však, když si ohlídáš /home /tmp a swap. Na to ti stačí jeden zašifrovaný oddíl + swap, zbytek se snadno vyřeší symbolickými linky. Není nutné šifrovat adresáře obsahují binárky, neobsahují žádná citlivá dat a jen se tím zpomalí jejich spouštění.
- Přepni se do textové konzole Ctrl+Alt+F1 začneš rovnou působit jako root, En klávesnici přepni pomocí klávesy Pause-Break, vypiš si obsah /etc/fstab, nainstaluj si cryptsetup:
Potřebný Dmcrypt nainstaluješ pomocí ‚urpmi cryptsetup‘
[root@localhost~] urpmi cryptsetup
[root@localhost~]# cat /etc/fstab
/dev/sda1 / ext3 relatime 1 1
#domovský adresář roota /root by neměl obsahovat žádné citlivé data pokud zrovna neděláš úplně všechno jako root, což se hrubě nedoporučuje
/dev/sda7 /home ext3 relatime 1 2
#/home je přímo plné citlivých dat, budeš je šifrovat
/dev/cdrom /media/cdrom auto umask=0022, users,iocharset=utf8,noauto,ro,noexec 0 0
/dev/sda5 /opt ext3 defaults 1 2
#/opt sice nebude obsahovat citlivá data, poslouží jen jako dobrý příklad jak zašifrovat klíčem
none /proc proc defaults 0 0
/dev/sda6 swap swap defaults 0 0
#na swap se údajně mohou dostat citlivá data
[root@localhost~]#
- V Mandrivě 2008 je nutné preloadnou některé pro šifrování důležité jaderné moduly, musíš tedy editovat /etc/modprobe.preload. Pořebuješ tam napsat názvy modulů aes, lrw, blkcipher a dm_crypt:
[root@localhost~]# cat /etc/modprobe.preload
# /etc/modprobe.preload
intel_agp
sonypi
#tohleto výše vzniklo při instalaci pro náš
#příklad je to nepodstatné
aes
lrw
blkcipher
dm_crypt
#názvy modulů byly zjištěny pomocí hardrake a
#výpisu modulů pomocí lsmod, takže tam možná
#nemusí být všechny
- Kopie a záloda adresáře /home:
Nakopíruješ to tam kde je dost místa, lze doporučit udělat a odzkoušet zálohu na DVD. Jesli ti vleze /home na jiný oddíl, tak ho tam nakopíruj. Zálohu dat si udělej. Stačí jediná chyba a data jsou pryč.
Kopie adresáře pomocí cp, alternativně použij třeba mc (Midnight Commander),F5 Kopírov :
[root@localhost~]# cp --preserve=all -r /home/ /Copy_home
Pro zálohu na DVD můžeš požít přeba drakbackup ze sady nástrojů drakconfig:

Po zálohování /home odmontuješ pomocí
[root@localhost~]# umount /dev/sda7
- Přepsání diskového oddílu náhodnými daty:
Který je to oddíl si zjistil pomocí cat /etc/fstab, viz výše, při použití /dev/urandom to je na několik hodin, jestli spěcháš, tak tam dej /dev/zero.
[root@localhost~]# dd if=dev/urandom of=/dev/sda7
408213+0 records in
408212+0 records out
2090041344 bytes (2,1 GB) copied, 862,181 s, 2,4, MB/s
- Nastavíš si parametry šifrování:
Paramery jako je key materia offset, cipher name, cipher mode, hash spec, atd. nejsou z mojí hlavy, to bych si nikdy nedovolil, jsou z blogu http://www.shadow.cz/blog/336 zkutečného odborníka. Určitě si to přečti, je to česky. K tomu není co dodat, snad jen podtrhnout nutnost dlouhého hesla, můžeš tam třeba napsat řadu znaků od a až do l z prostředku klávesnice případně opačně pro prodloužení hesla. V momentě bootu budeš na otázku Enter LUKS passphrase: odpovídat z z čistě En klávesnice, kdy můžeš teoreticky použít jakýkoli znak z klávesnice včetně mezerníku, kromě numerické klávesnice, ta totiž při bootu není zapnutá.
[root@localhost~]# cryptsetup -c aes-lrw-benbi -h sha256 -s 384 -y luksFormat /dev/sda7
WARNING!
========
This will overwrite data on /dev/sda7 irrevocably.
Are you sure? (Type uppercase yes): YES
#timhle si vytvoříš šifrovaný oddíl

- Otevři svazek pod /dev/mapper/Home a nech spáchat filesystém s kontrolou sektorů disku:
[root@localhost~]# umount /dev/sda7
umount: /dev/sda7 není připojeno
[root@localhost~]# cryptsetup luksOpen /dev/sda7 Home
Enter LUKS passphrase:
key slot 0 unclocked.
Command succesfull.
#tímhle vytvoříš zařízení /dev/mapper/Home
[root@localhost~]# mkfs.ext3 -c /dev/mapper/Home
mke2fs 1.40.2 (12-Jul-2007)
#zkrácený výpis, parametr -c zajistí kontrolu na badblocks v režimu čtení
- Zbývají záznamy do /etc/crypttab /etc/fstab:
Pomocí libovolného editoru nezapomeň smazat nebo zakomentovat řádev v
/etc/fstab /dev/sda7 /home ext3 relatime 1 2 , přidáš tam /dev/mapper/Home
/home ext3 defaults 1 2
/etc/crypttab teď bude mít záznam Home /dev/sda7.
[root@localhost~]# cat /etc/fstab
/dev/sda1 / ext3 relatime 1 1
#/dev/sda7 /home ext3 relatime 1 2
#/home zakomentuj, použij třeba mc (Midnight
#Commander),F4 Editace.
/dev/cdrom /media/cdrom auto umask=0022, users,iocharset=utf8,noauto,ro,noexec 0 0
/dev/sda5 /opt ext3 defaults 1 2
#/opt sice nebude obsahovat citlivá data, poslouží
#jen jako dobrý příklad ja zašifrovat klíčem
none /proc proc defaults 0 0
/dev/sda6 swap swap defaults 0 0
[root@localhost~]#
Pomocí echo můžeš snadno a rychle přidávat záznamy, do /etc/crypttab přidáš řádek Home /dev/sda7 a do /etc/fstab dáš řádek /dev/mapper/Home /home ext3 defaults 1 2
[root@localhost~]# echo 'Home /dev/sda7' >> /etc/crypttab
[root@localhost~]# echo '/dev/mapper/Home /home ext3 defaults 1 2' >> /etc/fstab
- Skoro to samé s oddílem opt: Bude se to odemykat klíčem vygenerovaným z náhodných dat, klíč bude na home, teoreticky může být třeba na USB klíčence a nemusíš ho při bootu zadávat ručne. V /opt sice nemáš citlivá data, jako příklad to stačí. Opět je důležité to odmontovat, event zálohovat, pak můžeš začít kutit.
[root@localhost~]# cryptsetup -c aes-lrw-benbi -h sha128 -s 348 -y luksFormat /dev/sda5
#zase napiš veliké YES a nulté heslo pro LUKS
[root@localhost~]# cryptsetup luksOpen /dev/sda5 Opt
#přiřadíš tomu zařízení /dev/mapper/Opt
[root@localhost~]# mkfs.ext3 /dev/mapper/Opt
#opět necháš vytvořit na /dev/mapper/Opt filesystém
Uděláš si klíč, bude to snůška náhodných dat, kterou zaregistruješ coby klíč. Tento dáš na oddíl reprezentovaný adresářem /home, takže budeš jedním heslem odemykat klíče pro ostatní méně důležité oddíly.
[root@localhost~]# dd if=/dev/urandom of=/home/heslo bs=32 count=1
1+0 records in
1+0 records out
32 bytes (32 B) copied, 0,0011393 s, 28,1 kB/s
# klíč s názvem heslo bude v /home/heslo
Přidáš klíč jako heslo do slotu 1 do slotu 0 si už heslo totiž zadal.
[root@localhost~]# cryptsetup luksAddKey /dev/sda5 /home/heslo
Enter any LUKS passphrase:
key slot 0 unlocked.
Command succesfull.
Zakomentuješ řádek v /etc/fstab s /dev/sda5 /opt ext3 defaults 1 2 .
[root@localhost~]# cat /etc/fstab
/dev/sda1 / ext3 relatime 1 1
#/dev/sda7 /home ext3 relatime 1 2
/dev/cdrom /media/cdrom auto umask=0022, users,iocharset=utf8,noauto,ro,noexec 0 0
#/dev/sda5 /opt ext3 defaults 1 2
none /proc proc defaults 0 0
/dev/sda6 swap swap defaults 0 0
/dev/mapper/Home /home ext3 defaults 1 2
Pomocí echo přidáš řádky do /etc/crypttab a /etc/fstab.
[root@localhost~]# echo 'Opt /dev/sda5 /home/heslo luks' >> /etc/crypttab
[root@localhost~]# echo '/dev/mapper/Opt /opt ext3 defaults 0 0' >> /etc/fstab
Můžeš vyzkoušek funkčnost aktuálního stavu, po startu se tě Mandriva zeptá na klíč k /home a všimni si, že /opt je otevřeno z keyslotu 1, zbývá ti dodělat swap, obnovit data v /home a nalinkovat dalčí citlivé adresáře do /home
[root@localhost~]# swapoff /dev/sda6
#tímhle odstavíš swap
[root@localhost~]# cryptsetup -d /dev/urandom create Swap /dev/sda6
#klíč k swapu bude vždy vznikat z náhodných znaků
#nevýhoda je, že s takto zašifrovaným swapem nejde počítač uspat pomocí software suspend
[root@localhost~]# mkswap /dev/mapper/Swap
Vytvářím odkládací prostor verze 1, velikost = 518156 kB
žádná jmenovka, UUID=46fd915a-f5a2-4677-acba-d03fb9ad51b2
#tohleto zmákne swap a pomocí swapon /dev/mapper/Swap ho můžeš zase zaktivovat
Zbývá zakomentovat řádek se swapem v /etc/fstab
[root@localhost~]# cat /etc/fstab
/dev/sda1 / ext3 relatime 1 1
#/dev/sda7 /home ext3 relatime 1 2
/dev/cdrom /media/cdrom auto umask=0022, users,iocharset=utf8,noauto,ro,noexec 0 0
#/dev/sda5 /opt ext3 defaults 1 2
none /proc proc defaults 0 0
#/dev/sda6 swap swap defaults 0 0
/dev/mapper/Home /home ext3 defaults 1 2
/dev/mapper/Opt /opt ext3 defaults 0 0
Pak přidej řádky do /etc/fstab a /etc/crypttab
[root@localhost~]# echo 'Swap /dev/sda6 /dev/urandom swap' >> /etc/crypttab
[root@localhost~]# echo '/dev/mapper/Swap none swap sw 0 0' >> /etc/fstab
- Obnovíš data v /home a nalinkuj adresáře /var a /tmp do /home/var a /home/tmp:
[root@localhost~]# mv -b /var /home/var
[root@localhost~]# mv -b /tmp /home/tmp
#tímhle přesuneš dotyčné adresáře
[root@localhost~]# ln -s /home/var /var
[root@localhost~]# ln -s /home/tmp /tmp
#a teď je nalinkuješ na původní místo
Zbývá nakopírovat data z /home na původní místo.
cp --preserve=all -r /Copy_home/* /home/.
Obsah souborů /etc/fstab a /etc/crypttab.
[root@localhost~]# cat /etc/fstab
/dev/sda1 / ext3 relatime 1 1
/dev/cdrom /media/cdrom auto umask=0022, users,iocharset=utf8,noauto,ro,noexec 0 0
none /proc proc defaults 0 0
/dev/mapper/Home /home ext3 defaults 1 2
/dev/mapper/Opt /opt ext3 defaults 0 0
/dev/mapper/Swap none swap sw 0 0
[root@localhost~]# cat /etc/crypttab
Home /dev/sda7
Opt /dev/sda5 /home/heslo luks
Swap /dev/sda6 /dev/urandom swap

Kometáře
Související články
- Šifrování oddílů disku v distribuci Mandriva 2008
- Mandriva 2008
- Fotky z Valašské rally 2008
- WebExpo 2008 (s Hulánem) 18. - 19. řína
- Finalisté Světového auta roku 2008
Olda |
15.12.2007 |