Cryptfs partíció felcsatolása Debianon USBStick segítségével automatikusan
Egy cryptfs-sel titkosított partíciót automatikusan, jelszó kérdezése nélkül, felcsatolni úgy, hogy a kulcs a pendrive-on van.
Az alap ötletet a http://www.debian-administration.org/articles/428 adta.
Amit megvalósít:
Debian Etch.
Egy cryptfs-sel titkosított partíciót automatikusan, jelszó kérdezése nélkül, felcsatolni úgy, hogy a kulcs a pendrive-on van (ami akár titkosítva is lehet a számítógépen tárolt kulcs segítségével).
Előfeltételek
A cryptsetup és sharutils csomagokra lesz szükség.
Ellenőrizzük a device mapper működését:
| |
és a titkosító kernel modulok működését:
| |
Amiről a konkrét példa szól
- A titkosítandó partíció: /dev/hda5 (/home) (vagy /dev/sda1, a pendrive titkosított partíciója)
- A könyvtar ahova az adatokat elmentjük a
/home-ból: /srv/home - A pendrive partíció neve (label): secret (ha titkosítjuk a pendrive-ot, akkor
by-uuid-et fogunk használni) - A pendrive partíció fájlrendszere: ext2
- A titkosításnál használt kulcs: root.key (és a
secretkötet gyökerén található), vagy /etc/.penkey (a pendrive partíció titkosításánál használjuk fel)
Minden parancsot root-ként adjunk ki.
Figyelem adatvesztésért felelősséget nem vállalok! Mindenki járjon el kellő elővigyázatossággal!
A partíció előkészítése
Mentsünk le minden információt a partícióról:
| |
Csatoljuk le a /home partíciót:
| |
Majd minden információt tüntessünk el róla:
| |
Pendrive előkészítése
Figyelem ennél a műveletnél a pendrive-on tárolt adatok elvesznek!
Készítsünk egy ext2-es partíciót a pendrive-ra, ha a fat nem jó nekünk.
| |
Formázzuk meg úgy az eszközt, hogy nevet (label) adunk a partíciónak.
Ha a pendrive-ot is titkosítani szeretnénk, készítsünk egy kulcsot a pendrive-hoz is:
| |
Ezután jöhet a partíció titkosítása:
| |
Nyissuk meg az eszközt:
| |
Ezután a fájlrendszert kell létrehozni: fat esetén mkfs.vfat -n "secret" /dev/sda1, ext2 esetén mkfs.ext2 -L "secret" /dev/sda1.
Jelen esetben:
| |
Ez ahhoz kell, hogy később egyszerűen tudja azonosítani az udev az eszközt. (Ha a pendrive partíciót titkosítjuk akkor a label nem szükséges.)
Csatoljuk fel a pendrive-ot, hogy a kulcsot már eleve oda generáljuk. (Atya tanácsára)
| |
Ha a pendrive-ot titkosítottuk:
| |
A partíció titkosítása
Generáljuk le a kulcsot:
| |
A fenti sor a /mnt/usb/pendrive könyvtár root.key fájljába véletlen karaktersorozatot generál, amit később kulcsként használunk.
Ezután jöhet a partíció titkosítása:
| |
Nyissuk meg az eszközt:
| |
Ezzel létrejön egy /dev/mapper/home kötet.
Akár le is csatolhatjuk a pendrive-ot:
| |
Ha a pendrive-ot titkosítottuk, zárjuk le a pendrive titkosított partícióját:
| |
Most már megformázhatjuk az eszközt a kedvenc fájlrendszerünkre:
| |
Ezután fel lehet csatolni és visszamásolni az adatokat.
| |
UDEV tanítása
Ehhez a /etc/udev/rules.d/z20_persistent.rules fájlt kell szerkeszteni:
| |
sor után, ez a fájl vége felé van, közvetlenül írjuk be:
| |
Ha a pendrive-ot titkosítottuk (uuid alapján):
| |
Ennek a sornak a lényege:
ENV{ID_FS_LABEL_SAFE}=="secret": a program akkor fog lefutni, ha a partíció neve megegyeziksecret-telENV{ACTION}=="add": és csak akkor ha éppen most lett csatlakoztatva a pendriveRUN+="/usr/local/sbin/cpmount": ha az előző két feltétel teljesül, akkor lefuttatja a/usr/local/sbin/cpmountscriptet.
A titkosított pendrive változatnál hasonlóan:
ENV{ID_FS_UUID}=="36AC-8D27": a program akkor fog lefutni, ha a partícióuuid-je 36AC-8D27 (ezt a /dev/disk/by-uuid könyvtárban találjuk, meg kell nézni, hogy ha kihúzzuk a pendrive-ot, melyik uuid tűnik el)ENV{ACTION}=="add": és csak akkor ha éppen most lett csatlakoztatva a pendriveRUN+="/usr/local/sbin/cpmount2": ha az előző két feltétel teljesül, akkor lefuttatja a/usr/local/sbin/cpmount2scriptet.
cpmount beszerzése
A script elején a
| |
változókat kell átnézni, hogy megfelelnek-e a saját rendszerünk paramétereinek. Minden javítást a scripthez szívesen fogadok!
Másoljuk a letöltött cpmount scriptet a /usr/local/sbin könyvtárba és ellenőrizzük, hogy rajta van-e a futtatási jogosultság.
cpmount2 beszerzése
| |
A mechanizmus kipróbálása
Csatoljuk le a pendrive-ot, ha még nem tettük meg, és húzzuk ki.
| |
Csatoljuk le a /home-ot.
| |
Zárjuk be a titkosított eszközt:
| |
Vegyünk egy mély levegőt és dugjuk vissza a pendrive-ot.
Ha a script-ben a DEBUG változót 1-re állítottuk, a syslog-ban megjelennek az üzenetek, amik megmutatják, hogy sikerült-e a /home felcsatolása vagy nem.
A syslog-ban valami hasonlót kell látnunk:
| |
Ha itt hibát nem látunk, valószínűleg a /home kötetünk a helyére került, minden adatunkkal. :)
Ha akarjuk a pendrive-ot eltávolíthatjuk.
A dokumentum mindenkori aktuális verziója megtalálható a HupWikin.