Titkosított partício létrehozása, kezelése

A titkosított partíció előnye, hogy a rajta tárolt adatok a megfelelő feloldás hiányában hozzáférhetetlenek – legalábbis „elég sok” idő kell az adatok visszanyeréséhez a megfelelő kulcs nélkül. :) Én személy szerint a laptopomon használok egy 13GByte-os partíciót amin főleg a dokumentumaim vannak, így ha ellopják a drágát akkor sem tudnak meg mindent rólam. Az alábbiakban leírom, hogyan tudtok létrehozni titkosított partíciót úgy, hogy a feloldáshoz szükséges kulcsot pendrive-on tartjátok, és ha rendszerindításnál a pendrive be van dugva, akkor hozzáférhetőek az adatok.

Megjegyzés: A /dev/{hdxx,sdxx} jelölés az általad használni kívánt eszköz és partíciót jelöli, nehogy egy az egyben így írd. :)

Hozzávalók:

  • friss telepítés esetén hagyj egy üres partíciót, amit állíts Linux natívra; hogyha már telepített rendszerrel szeretnéd megoldani, akkor méretezd át az egyik partíciót és hozz létre egy üreset
  • szükség van a cryptsetup programra LUKS támogatással; beszerezhető innen

Első lépések: Tömörítsük ki a letöltött állományt, majd a kapott fájlt nevezzük át cryptsetup-ra és mozgassuk a /usr/local/sbin könyvtárba, és adjunk rá futtathatósági jogot, hogyha ez nem lenne alapértelmezett, illetve készítsünk róla szimbolikus linket a /sbin könyvtárba. Ezután az üres partíciónkat töltsük fel véletlenszerű adattal a nagyobb biztonság kedvéért:
dd if=/dev/urandom of=/dev/{hdx,sdx}
Ez a folyamat akár néhány percig is eltarthat nagyobb méretű (>10GB) partíciók esetén.

Titkosított partíció létrehozása: Tegyük be a kívánt pendrive-ot és csatoljuk fel azt a partíciót, ahol a kulcsot akarjuk tárolni. Én erre a célra a pendrive-omon létrehoztam egy 2MByte-os ext2 fájlrendszerű felületet. A következő paraccsal létrehozzuk azt a kulcsot, amivel a partíciónkat titkosítjuk és ami a feloldáshoz szükséges.
cryptsetup --verbose -c aes-cbc-essiv:sha256 luksFormat /dev/{hdxx,sdxx} /ahova_a_pendriveot_csatoltad/[nev].key
Ezután feloldjuk a titkosított partíciót a kulcs segítségével. Az utolsó [nev] mezo a feloldott partíció hivatkozási neve, ami tetszőlegesen választható. Nálam például crypto.
cryptsetup --key-file / ahova_a_pendriveot_csatoltad/[nev].key luksOpen /dev/{hdxx,sdxx} [nev]
Létrehozzuk a fájlrendszert a partíción. A [nev] mező a feloldott partíció előbb megadott hivatokzási neve.
mkfs.ext3 -O dir_index /dev/mapper/[nev]
Az indító és leállító scriptek létrehozása: A következő lépések ahhoz kellenek, hogy ha rendszerbetöltés alatt bedugjuk a pendrive-ot, akkor aktiválódjon a titkosított partíció. Ehhez szerkesztenünk kell a /etc/rc.local fájlt.

/bin/mount /dev/sdxx /ahova_csatolod_a_pendriveot #pendrive felcsatolasa
/usr/local/sbin/cryptsetup -d /ahova_csatolod_a_pendriveot/[nev].key luksOpen /dev/{hdxx,sdxx} {nev} #particio feloldasa
/bin/mount /dev/mapper/[nev] /ahova_csatolni_akarod #feloldott particio felcsatolasa
/bin/umount /media/usb #pendrive levalasztas

Leállításkor a titkosított partíció lecsatolása és bezárása: Hozz létre egy cryptoff nevu fájlt a /etc/init.d könyvtárban az alábbi tartalommal. A [nev] a feloldott partíció hivatkozási neve.
/bin/umount /ahova_csatoltad
/usr/local/sbin/cryptsetup luksClose [nev]

Ezután készítsünk szimbolikus linket a fájlról a /etc/rc0.d és /etc/rc6.d könyvtárakva K99cryptoff néven, így leállításkor és újraindításnál lefut a script.

Extraként a swap partíciónkat is titkosíthatjuk, ugyanis az oda kiírt adatok egyelőre nyíltan tárolódnak, és akár leállítás után is visszanyerhető olyan információ, melyből megfejthető a feloldási kulcs. Adjuk hozzá az alábbi pár sort a /etc/rc.local fájlhoz.

/usr/local/sbin/cryptsetup -c aes -s 256 -d /dev/urandom create swap0 /dev/{hdxx,sdxx}
/sbin/mkswap /dev/mapper/swap0
/sbin/swapon /dev/mapper/swap0

Ez a pár sor minden indításnál egy véletlenszerű 256bit-es kulccsal újratitkosítja a swap partíciót, megformázza és felcsatolja. Ne felejtsük el kivenni a swap sort a /etc/fstab fájlból. :)

Használjuk egészséggel a titkosított rendszerünket. :)

A partíciók létrehozását és kezelését a dm-crypt wikiből fordítottam, köszönet érte az eredti cikk szerzőjének, Dimitrios Michelinakis (dimitris_AT_michelinakis.gr). Az indító és leállító script saját „készítés”.
Gábri Máté

Szólj hozzá (RSS)

XHTML: A következő tag-eket használhatod:: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <em> <strong>