Fórum Ubuntu CZ/SK

Ostatní => Tipy a triky pro Linux => Téma založeno: mdw 29 Ledna 2008, 12:47:23

Název: [HOWTO] Šifrovaný swap v 6.06 LTS pomocí dm-crypt a cryptsetup
Přispěvatel: mdw 29 Ledna 2008, 12:47:23
Šifrovaný swap v 6.06 LTS pomocí dm-cryptu

(vše provádět se superuživatelským oprávněním)

1) Nainstalujte balík cryptsetup (apt-get install cryptsetup, v 6.06 by to měla být verze 1.0.3)

2) Do souboru /etc/crypttab přidejte řádek (/dev/hda2 samozřejmě nahraďte jménem zařízení, kde se nachází váš swap):

Kód: [Vybrat]
cswap   /dev/hda2       /dev/urandom     swap,cipher=twofish

První pole je název výsledného zařízení, které bude vytvořeno v /dev/mapper/. To se bude používat místo fyzického zařízení.
Druhé pole je fyzické zařízení.
Třetí pole je definice klíče. Pro swap chceme použít náhodně zvolený klíč. Swap není potřeba uchovávat mezi rebooty a nikdo kromě kernelu k němu klíč znát nepotřebuje.
Čtvrté pole jsou options: slovo "swap" je v našem případě nutné - způsobí totiž, že po vytvoření šifrovaného zařízení se na něm provede příkaz "mkswap", který jej připraví k použití; option "cipher" je nepovinné, je-li neuvedeno, použije se šifra AES. Zde je použita šifra TwoFish, která je malinko rychlejší než AES při srovnatelné robustnosti.

3) Nyní odpojte stávající swap příkazem swapoff -a (parametr "-a" znamená "odpoj všechny swapy", takže pokud jich máte víc, je asi lepší postupovat jeden po druhém).

4) Nyní proveďte skript /etc/init.d/cryptdisks start. Po jeho úspěšném spuštění bychom měli mít v "/dev/mapper" soubor "cswap".

5) NEPOVINNÝ KROK: Nyní proveďte příkaz dd if=/dev/zero of=/dev/mapper/cswap bs=1024 a následně mkswap /dev/mapper/cswap. Tato akce bude trvat několik až mnoho minut, podle velikosti vašeho swapu a rychlosti vašeho stroje. Tento krok je nepovinný, ale doporučuje se. Jeho výsledkem je přepsání celého fyzického zařízení zašifrovanými daty. Pokud tak neučiníte, zůstanou v něm ještě dlouho viditelné stopy původního swapu.

6) V /etc/fstab změňte v řádku, ve kterém je definován váš swap, fyzické zařízení za logické. V mém případě změna vypadá takto:

Původní řádek:
Kód: [Vybrat]
/dev/hda2 none swap sw 0 0

Nový řádek:
Kód: [Vybrat]
/dev/mapper/cswap  none swap sw 0 0

6) Proveďte swapon -a. Nyní se začne šifrovaný oddíl používat pro swap. Můžete ověřit výsledek takto:

Kód: [Vybrat]
~# hexdump -v /dev/hda2 | head
0000000 510c a111 8c63 7af5 bc57 d844 eb34 8cee
0000010 acf2 579a 197d c3ee d107 7df4 978f be7b
0000020 fa57 0d73 4b08 ea63 de73 e969 064a 478c
0000030 2d8b 4a36 1ec9 1055 b4a8 5210 b58a fe83

~# hexdump -v /dev/mapper/cswap | head
0000000 0000 0000 0000 0000 0000 0000 0000 0000
0000010 0000 0000 0000 0000 0000 0000 0000 0000
0000020 0000 0000 0000 0000 0000 0000 0000 0000
0000030 0000 0000 0000 0000 0000 0000 0000 0000

Jak je vidět, na fyzickém zařízení jsou náhodně vypadající data, zatímco na logickém disku vidíme samé nuly.