BIZTONSÁG Fájlrendszer titkosítás
A Gentoo Linux Wiki wikiből
Tartalomjegyzék |
[szerkesztés] Szükséges kernel beállítások
Az itt leírtak megvalósításához legalább 2.6.5-ös kernel szükséges, mivel ez a megoldás a 2.6-os kernelsorozat egy új device-mapper megoldására támaszkodik. Ettől a verziótól kezdve minden szükséges dolog benne van a vanilla kernelben, így nincs szükség egyéb patch-ekre.
A kernelben a "device-mapper" és a "dm-crypt" támogatást kell bekapcsolni, amik a "Device Drivers > Multi-device support (RAID and LVM)" menüpont alatt találhatóak:
# # Multi-device support (RAID and LVM) # CONFIG_MD=y CONFIG_BLK_DEV_DM=y CONFIG_DM_CRYPT=y
Ezen kívül kell még valamilyen titkosító algoritmus támogatás is:
# # Cryptographic options # CONFIG_CRYPTO=y CONFIG_CRYPTO_MD4=y CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_DES=y CONFIG_CRYPTO_BLOWFISH=y CONFIG_CRYPTO_TWOFISH=y CONFIG_CRYPTO_SERPENT=y CONFIG_CRYPTO_AES_586=y
Ezek az én beállításaim, mindenki azt az algoritmust választja, amelyik a szívéhez közel áll. Aki még egyiket sem érzi 'barátjának', akkor javaslom tekintse át a következő összehasonlító tesztet
Az itt felhozott példákhoz kizárólag az AES-586 támogatás szükséges.
[szerkesztés] Szükséges csomagok
A Gentoo initscriptjei alapból fel vannak készítve titkosított fájlrendszerek kezelésére, így nem kell semmit hekkelni
Ehhez viszont megfelelően friss csomagokra van szükség, konkrétan >=sys-apps/baselayout-1.11.2
Ezen kívül kellenek még a következő csomagok:
- sys-libs/device-mapper
- sys-fs/cryptsetup-0.1
[szerkesztés] Beállítások
Egyetlen konfigurációs állományban található minden szükséges beállítás: /etc/conf.d/cryptfs A fájl elég bőbeszédű, ezen dokumentum végigolvasása után kitöltése egyértelmű.
[szerkesztés] Titkosított swap partíció
Az erre vonatkozó rész, a fent említett állományból:
# If no options are given, they will default to: -c aes -h sha1 -d /dev/urandom # If no makefs is given then mkswap will be assumed swap=swap0 source='/dev/hdaX'
és az ennek megfelelően módosított swap bejegyzés az /etc/fstab állományból:
/dev/mapper/swap0 none swap sw 0 0
Ha mindössze ennyit teszünk, és nem is érdekel hogy ilyenkor mi történik, akkor is a következő boot után egy sokkal (akár 73%-kal:) biztonságosabb rendszert használhatunk.
[szerkesztés] Egyéb titkosított fájlrendszerek
Itt kicsit körültekintőbben kell eljárnunk, ugyanis ellentétben a swap partícióval, (aminek a tartalma csak egy reboot-ig fontos) itt jó eséllyel éles adatokat szeretnénk titkosítani. Így valami reprodukálható dolgot kell összehozni :-)
Mielőtt bármit is tennénk nem árt, ha teljes mentést készítünk az érintett fájlrendszerekről. Én szóltam. :-|
Ha még jobban meg akarjuk nehezíteni az ellopott titkosított diszk feltörését, akkor először írjuk tele random bitekkel a titkosítandó eszközt:
dd if=/dev/urandom of=/dev/hdaY
Majd hozzunk létre egy titkosított partíciót:
cryptsetup create home /dev/hdaY Enter passphrase:
Erre a program kér egy jelszót, amiből elő fogja állítani a titkosításhoz szükséges (jelen esetben 256 bites) kulcsot. Ilyenkor még nincs veszve semmi, csak egy virtuális eszközmeghajtó jött létre, amit a /dev/mapper/home néven érhetünk el. Ezt ellenőrizni is tudjuk a következő paranccsal:
cryptsetup status home /dev/mapper/home is active: cipher: aes-cbc-plain keysize: 256 bits device: /dev/hdaY offset: 0 sectors size: 17044902 sectors
Ezek után, (ha még emlékszünk az imént megadott jelszóra) létrehozhatjuk a kívánt fájlrendszert, immár a titkosított eszközre:
mkfs.ext3 /dev/mapper/home
Az eszköz máris használatra kész, csatoljuk be a fájlrendszerbe, és töltsünk rá adatokat, vagy mittudomén...
Hogy a következő boot során automatikusan ismét elérhető legyen ez a titkosított fájlrendszer, fixáljuk be a /etc/conf.d/cryptfs állományba a következőket:
mount=home source=/dev/hdaY options=
És az ennek megfelelően módosított home bejegyzés az /etc/fstab állományból:
/dev/mapper/home /home ext3 noatime 0 0
Ezzel elértük, hogy a következő boot során a /home könyvtár (az aktuális példa szerint) csatolása előtt a rendszer jelszót fog kérni. Ez a fájlrendszer csak abban az esetben érhető el, ha ugyanazt a jelszót adjuk meg, amit a létrehozásakor.
[szerkesztés] De mi van a színfalak mögött?
Itt jönnek a kicsit érdekesebb, cserébe bonyolultabb dolgok ;-)
Mindenért a device-mapper a felelős. !! FIXME !! ide kellene egy leírás, hogy mi is történik pontosan...
Addig is, olvasd el ezt
[szerkesztés] cryptsetup
Ezzel a paranccsal lehet kezelni a virtuális eszközmeghajtókat (device mappings). A parancs --help kapcsolója mindent elárul:
Usage: cryptsetup [OPTION...] <action> <name> [<device>]
-v, --verbose Shows more detailed error messages
-c, --cipher=STRING The cipher used to encrypt the disk (see
/proc/crypto) (default: "aes")
-h, --hash=STRING The hash used to create the encryption key from
the passphrase (default: "ripemd160")
-y, --verify-passphrase Verifies the passphrase by asking for it twice
-d, --key-file=STRING Read the key from a file (can be /dev/random)
-s, --key-size=BITS The size of the encryption key (default: 256)
-b, --size=SECTORS The size of the device
-o, --offset=SECTORS The start offset in the backend device
-p, --skip=SECTORS How many sectors of the encrypted data to skip
at the beginning
Help options: -?, --help Show this help message --usage Show this help message
<action> is one of:
create - create device
remove - remove device
reload - modify active device
resize - resize active device
status - show device status
<name> is the device to create under /dev/mapper
<device> is the encrypted device
Ennek fényében a fent bemutatott titkosított swap partíció a következő paranccsal jön létre:
cryptsetup -c aes -h sha1 -d /dev/urandom swap0 /dev/hdaX mkswap /dev/mapper/swap0
Ez azt jelenti, hogy létrehoztunk egy titkosított eszközt a következő paraméterekkel:
- az igazi eszköz a /dev/hdaX
- a titkosítás 256 bites kulcsot használó, aes algoritmussal történik
- a titkosításhoz használt kulcsot a /dev/urandom-ból kaptuk (ripemd160 hash algoritmussal), így ez elég nehezen reprodukálható az eszköz törlése után (pl reboot)
- a virtuális, titkosított eszköz /dev/mapper/swap0-ként érhető el.
[szerkesztés] Tippek
- a titkosítandó eszköz természetesen lehet akár egy partíció, az egyész winyó, vagy csak egy sima file is...
- a jelszó elvesztése esetén az adatokhoz gyakorlatilag nem lehet többé hozzáférni. Ezért érdemes jóól megjegyezni.
- működő gép esetében a titkosított eszköz már megfelelően be van állítva, tehát ilyenkor már bárki hozzá tud férni a rajta lévő adatokhoz! A fájlrendszer biztonságos leválasztásához (ahhoz hogy a felcsatolásakor ismét jelszót kérjen) a vituális eszközmeghajtót törölni kell!
- a swap partícióhoz hasonlóan a /tmp partíciót is használhatjuk random jelszóval létrehozott titkosított fájlrendszerrel.
