Titkositott fajlrendszer (pendrive kulccsal)

Fórumok

Valoszinuleg nem lesz olyan nehez a kerdes ...

Feladat: van egy szerver, amin ugy kell egy fajlrendszert letrehozni, hogy bootolaskor a fajlrendszer titkositasahoz a kulcsot a pendrive-rol vegye. Ha a pendrive bent van, akkor betolti a kulcsot a memoriaba, s haszanlja. Ha nincs ott a pendrive, akkor nem mountolja a kotetet (es ertelemszeruen nem lehet kibogaraszni, hogy mi volt/van a diszken.

Ennek megfeleloen, ha aramszunet volt, akkor a szerver csak akkor indithato ujra, ha a megfelelo ember a megfelelo kulcsot tartalmazo hardverrel bootoltatja ujra a rendszert.

- Milyen iranyban erdemes elindulni?
- Hogyan hat a performanciara az ilyen?
- Van-e erre hardveres megoldas?

Otthoni felhasznalasra kellene, erzekeny adatok vedelmeben.

Szerk: (ide gyujtom a relevans linkeket:)

http://www.hermann-uwe.de/blog/howto-disk-encryption-with-dm-crypt-luks…

Hozzászólások

Javaslom, hogy először a kulcsot tartalmazó pendrájvról csinálj néhány másolatot. Elég pusztulékonyak ezek a pendrájvok.
A konkrét hogyan és miként megválasztását átengedem a fiataloknak! :-{)E
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba és kész!

Ilyet még nem csináltam, de valahogy így indulnék neki:

Adott a Truecrypt* nevű program, ez tud mindenféle titkosítást. Csinálnék egy initramfs-t, amibe beletenném a Truecrypt programot is. Az initramfs-ben lenne egy script, ami megpróbálja felcsatolni a pendrive-ot, ha sikerül, a ramdiskbe átmásolja a kulcsot (ha kell egyáltalán a Truecrypt működéséhez, ha nem, akkor nem másol). A meglévő kulccsal felcsatolja a rootfs-t vagy akármit, amit titkosítani akarsz, a végén pedig folytatja a bootolást (/sbin/init vagy akármi más).

* első blikkre úgy tűnik, ennek csak bináris változata van. Természetesen a Truecrypt helyettesíthető a saját, kedvelt titkosítóddal is.
--
http://www.open-st.eu

szerintem telepíts a pendrive-ra grubot (vagy amit akarsz) és rakd rá a /boot-ot, az initramfs-be dmcrypt vagy truecrypt vagy bármi, a gépet beállítod, hogy a pendrive-ról bootoljon, és akkor aztán lekódolhatsz mindent a merevlemezen. de ez csak tipp, mert még soha nem csináltam ilyet. de én valahogy így csinálnám.

dmcrypt/LUKS. szerintem. De ha úgy is az lényeg, hogy csak az admin tudja helyszinen újraindítani akkor miért nej ó a jelmondat? pendrivval szerencsétlenkedni szerint nem a legjobb megoldás. ha egy van belőle rizikós ha meg több akkor meg csökken a biztonság.

mondjuk frappáns dolog ez a pendrive, de igazából a hosszú jelszó talán tényleg jobb ötlet.
kiválasztasz valami közmondást, aztán mondjuk a szóközöket behelyettesited más karakterrel, és szinte lehetetlen kitalálni, megjegyezni viszont mégsem nehéz.
pl: "okos#enged#szamar#szenved" vagy akármi :)

----------------
...jönnek a gépek, a szemükben nincs harag...

Az könnyít a helyzeten hogy ráér os bootolás után különböző lemezeket felcsatolni akkor pendrive nem probléma. a raid az viszont hööö nem tudom :) ha nem sürgős a dolog engem felizgatott a téma emulálok valami környezetet hozzá aztán kipróbálom hogy lehet megírom ide mire jutottam.

Ami még megbonyolítja az, hogy az installerek jelszós megoldást tudnak csak... ha meg telepítés után akarod titkosítani akkor macera van.... javaslom tegyél külön partícióra amit lehet (/var /tmp /home stb.) aztán backupolsz titkosítasz visszamásolsz :)
De hidd el nekem titkosított LVM-en csücsülő os a legjobb megoldás egyszer kér jelszót bootlás közbe.

Encrypted LVM setup leírása Zentyal/Ubuntu esetében:
http://www.linuxbsdos.com/2010/09/05/zentyal-installation-guide/

* Szerk. Google:
- Gentos esete USB-vel: http://en.gentoo-wiki.com/wiki/Booting_encrypted_system_from_USB_stick
- Ubuntu USB-vel: https://mknowles.com.au/wordpress/2009/01/31/ubuntu-hardy-usb-key-two-f…
--
Légy derűs, tégy mindent örömmel!

Ha 1 particiot kell titkositani arra tokeletes a dmcrypt, tud jelszoval, meg kulcsal is dolgozni egyszerre, csak akkor keri mikor kikodolja, utanna el is tavolithato a kulcs. Ha keverni akarod akkor jelszoval titkositott pendrive amin van a kulcs, ehhez meg sima shell script,h konnyen kikodold es felcsatold (egyebkent is par parancs az egesz).
Dmcrpyt-re meg mehet barmilyen filerendszer, lvm is ha ugy tetszik, akar az egesz rendszert is lehet azzal titkositeni (/boot-ot azert megse) es pl dropbear-el meg ssh-n is elerheted ilyenkor, h tavolrol kikodold.

Ha csak annyi kell, h indulas utan kitotkositson automatikusan egy particiot akkor irsz egy scriptet amibe beleteszed h csatolod a pendrive-ot, cryptsetup-al kikodolod a particiot csatolod a kikodold particiot meg lecsatolod a pendrive-ot, automatikus, es akkor mukodik ha pen-drive rajta van rendszer indulaskor.
Ha olyan kell h pen-drive radugast figyelje az is megoldhato akar 1-2 hasonlo scripttel.

--
Don't Panic if you see me laughing,
that's not a bug, just a feature.

loop-aes jó cucc állítólag még nem használtam. egyedül a debian installer ajánlott fel eddig nekem loop-as lehetőségét, más disztrókon a dmcrypttel ellentétben ha loop-aest szeretné akkor más kernel kel vagy mi .. ezt valaki megerősíthetni mer csak rémlik hogy ilyet olvastam .

Yubikey lesz a te barátod.
(Plussz valamilyen hagyományos titkosítás, mint Truecrypt és társai)

Egy egyszerű szkripttet megoldható (inkább csak alap, nincs benne semmi hibakezelés, stb):

A 'CRYPT_DEVICE' tartalmazza a titkosított particiót,
a 'KEY_FILE' a pendrive-on levő kulcs file-t,
a 'KEY_DEVICES'-ben lehet megadni a pendrive-ok azonosítóit,
a 'CRYPT_DIR' pedig megadja, hogy hova csatolja fel a titkosított particiót.

Az alábbi szkriptet érdemes daemon-ként futtani, így addig fog várni, amíg be be nem lesz dugva valamelyik pendrive. Esetleg még azt is lehet, hogy ha valamely daemon-nak (pl. sql szerver) a titkosított partición vannak az adatai, akkor rendszer alapértelmezetten 2-es init level-en indul, majd ha felcsatolta a titkosított particiót akkor a szkript egy 'init 3 &' parancsal átvált 3-as szintre. Az sql meg úgy van beállítva, hogy csak a 3-on indul. Így azt is el lehet automatikusan indítani. Vagy ki lehet bővíteni, hogy bind-oljon a titkosított particióról a file rendszer más részeire (pl.: 'mount --bind /mnt/titok/nagytitok /home/enyem/nagytitok').


#!/bin/sh

CRYPT_DEVICE="/dev/sda6"
KEY_FILE="secret.key"
KEY_DEVICES="valami1 masik2"
CRYPT_DIR="/mnt/titok"

waitforkey=true
while $waitforkey ; do
for KEY_DEVICE in $KEY_DEVICES ; do
if test -e "/dev/disk/by-id/$KEY_DEVICE" ; then
mkdir -p /tmp/keydisk
mount /dev/disk/by-id/$KEY_DEVICE /tmp/keydisk
if test -e /tmp/keydisk/$KEY_FILE ; then
cryptsetup --key-file /tmp/keydisk/$KEY_FILE luksOpen $CRYPT_DEVICE crypt1
mount /dev/mapper/crypt1 $CRYPT_DIR
waitforkey=false
fi
umount /tmp/keydisk
rm -f /tmp/keydisk
fi
done
sleep 1
done