Merevlemeztitkosítás Linuxon

Valószínű a saját PC-n, asztali gépen már eleve titkosított merevlemezeket használsz. Laptopok esetén megoldott a dolog: Windows 10 Pro operációs rendszer alatt egyszerűen be kell kapcsolni a bitlocker szolgáltatást a meghajtókon, korábbi cikkemben erről már írtam részletesen. Ha laptopod van akkor jó eséllyel van TPM chip-ed, ami lehetővé teszi azt, hogy idegen gépen ne lehessen titkosítókulcs hijján megnyitni a meghajtót ha pedig PC-d van akkor gép indítását követően kell begépelned a jelszót.

Ha MacBook-ot használsz az az első használatbavételkor kérdez rá, hogy szeretnél-e meghajtótitkosítást használni – ha igen akkor csak a saját iCloud fiókoddal tudod a számítógépen lévő adattárolót kinyitni. A gépeden a „Rendszerbeállítások” > „Biztonság és adatvédelem” > „FileVault” helyen találod meg az erre vonatkozó információkat, beállításokat.

Luks használata Linuxon

Lehetőséged van teljes meghajtó, vagy csak egy partíció titkosítására is, illetve lehetőséged van arra, hogy a titkosítókulcsot fájlban vagy fejben tárold – neked kell eldönteni mennyire fontos az, hogy az adataidat a tolvajok a gép elhagyását követően megnyissák és nézegessék, vagy ha betörnek a lakásba, az USB vinyókat elviszik a saját gépükre rádugva ne tölthessék le csak úgy az adatokat kíváncsiságból egészen odáig, hogy paranoiás vagy és a kulcsot, mint jelmondatot/jelszót fejben akarod tárolni és minden indításnál begépelni.

Alapesetben szükséged van magára a szoftverre, ami a titkosítást fogja ténylegesen végezni. Minden példámat debian/ubuntu sodorba tartozó oprendszeren mutatom be, természetesen a legtöbb esetben rövid keresgéléssel a neten a specifikus részek átültethetők.

apt install cryptsetup

Ha a program fel van telepítve folytathatod azzal, hogy csatlakoztatod a titkosítani kívánt merevlemezt. Figyelem! Ez az eljárás üres lemezképet generál, a meghajtó/partíció formázásra kerül, az érintett meghajtó adatai ELVESZNEK!

Ha a teljes merevlemezt le szeretnéd titkosítani:

cryptsetup -y -v luksFormat /dev/sdx

Ha csak egy partíciót a merevlemezen:

cryptsetup -y -v luksFormat /dev/sdx1 # itt az sdx meghajtó első partícióját fogja titkosított meghajtóvá formázni

Egy ilyesmi fog fogadni, kérni fogja már itt kétszer a meghajtó titkosításához/nyitásához szükséges jelszót:

WARNING!
========
This will overwrite data on /dev/sdx irrevocably.
 
Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase: 
Verify passphrase: 
Command successful.

Csupa nagybetűs YES a helyes válasz. De erre te is rájössz ha figyelmesen elolvasod a figyelmeztető szöveget. Ezekután próbálkozhatsz a létrehozott meghajtó nyitásával:

cryptsetup luksOpen /dev/sdx storage1

Itt a /dev/sdx teljes meghajtót jelenti, ha partíciót titkosítottál akkor /dev/sdx1 megadható. Ha eltéveszted szólni fog. Fontos tudni, hogy ettől a pillanattól kezdve nem létezik /dev/sdx (vagy /dev/sdx1) hanem a cryptsetup által létrehozott eszközt kell keresned:

root@teszt:~# ls -lah /dev/mapper/
total 0
drwxr-xr-x 2 root root 100 May 9 14:43 .
drwxr-xr-x 17 root root 3.7K May 9 14:43 ..
crw------- 1 root root 10, 236 May 9 14:43 control
lrwxrwxrwx 1 root root 7 May 9 14:43 storage1 -> ../dm-0
lrwxrwxrwx 1 root root 7 May 9 14:43 storage2 -> ../dm-1

A titkosított meghajtó/partíció innentől kezdve olyan, mint egy önálló meghajtó, tehát létre kell hoznod rajta partíciós táblát, formázni, mountolni. Ezt így teheted meg:

parted /dev/mapper/storage1
mklabel gpt
unit TB
mkpart primary 0.00TB x.00TB
quit

Aztán pedig formázod mondjuk ext4-es fájlrendszerre:

mkfs.ext4 /dev/mapper/storage1

Majd felmountolod ahova szeretnéd:

mount /dev/mapper/storage1 /mnt/storage1

Csatolás automatikusan

Ha rendszerindítást követően, vagy simán egy parancshívással szeretnéd a meghajtót újra elérni érdemes egy kis bash scriptet írni rá:

#!/bin/bash
cryptsetup luksOpen /dev/sdx storage1 &&
mount /dev/mapper/storage1 /mnt/storage1

Ekkor a cryptsetup a lemez nyitásához kérni fogja a nyitáshoz korábban beállított jelszót. Ha nem szeretnéd ezeket újra és újra begépelni lehet kicsit játszani a történettel (a biztonság kárára, kényelem javára):

#!/bin/bash
echo "titkosításhoz korábban beállított jelmondat, jelszó" | cryptsetup luksOpen /dev/sdx storage1 - &&
mount /dev/mapper/storage1 /mnt/storage1

Ha a bash scripted tartalmazza a jelmondatot, jelszót akkor semmi akadálya nincs annak, hogy @reboot-ra tedd crontab-ban, így rendszerindításkor a fájlban meglévő jelszóval a csatlakoztatott merevlemez automatikusan felcsatlakozásra kerül:

crontab -e

@reboot /root/mount.sh

Meghajtó lecsatlakoztatása

Tudom, az élet túl rövid a merevlemez biztonságos lecsatlakoztatásához, de itt titkosított meghajtóról is van szó, a rendszernek vissza le kell zárnia a meghajtót az adatvesztés elkerülésének érdekében. Erre is érdemes írni egy bash scriptet:

#!/bin/bash
umount /mnt/storage1 &&
cryptsetup luksClose storage1

Ezután már biztonságosan leválaszthatod a meghajtót, kikapcsolhatod a számítógépet.

És a legfontosabb, amit sose felejts el – mindig minden fájlodról legyen biztonsági másolatod. Ez az egyetlen titkosított meghajtód legyen a munkára való lemezed, a fontos adatokról legalább egy másolatod legyen egy másik gépen, másik helyen egy alternatív tárolási módszerrel, titkosítással.