-
Szyfrowanie partycji w CentOS – LUKS
Bezpieczeństwo zgromadzonych na dyskach twardych danych odgrywa dużą rolę w środowiskach produkcyjnych ale nie tylko. Często posiadając laptopa, mamy na nim zdjęcia, czy skany dokumentów. Nie chcielibyśmy, aby po ewentualnej kradzieży lub zgubieniu naszego sprzęty, dane trafiły w niepowołane ręce. W takich wypadkach najlepiej skorzystać z szyfrowania partycji zgodnego ze specyfikacją LUKS, czyli Linux Unified Key Setup. Jego niewątpliwą zaletą jest duża kompatybilność i dostępność, praktycznie w każdej dystrybucji Linuksa. Dla CentOS-a potrzebujemy pakietu cryptsetup-luks, znajdującego się w repozytorium „base”.
yum install cryptsetup-luks
Następnie zakładamy partycję, którą chcemy zaszyfrować, oczywiście jeśli jej nie posiadamy. Przyda nam się do tego komenda:
fdisk -cu /dev/sda
Przykład dotyczy pierwszego dysku (sda), na którym będziemy zakładać partycję. W systemie CentOS 5 i niższych, nie musimy używać opcji „-cu”, ponieważ dotyczy ona tylko wersji 6. Nowy układ partycji będzie widoczny po ponownym uruchomieniu systemu lub po wydaniu dwóch następujących komend:
partx -d /dev/sda
partx -a /dev/sda
Gdy mamy już przygotowaną partycję przystępujemy do właściwego procesu szyfrowania, w czasie którego będziemy proszeni o ustalenie i potwierdzenie hasła dostępu do naszej partycji.
cryptsetup luksFormat /dev/sda2
cryptsetup luksOpen /dev/sda2 dowolna_nazwa
Powyższe polecenie utworzy urządzenie /dev/mapper/dowolna_nazwa. Przedtem jednak będziemy musieli wprowadzić wcześniej ustalone hasło.
Czas na utworzenie systemu plików na powyższym urządzeniu. Wybieramy np. xfs.mkfs.xfs /dev/mapper/dowolna_nazwa
Zakładamy katalog „/szyfrowana”.
mkdir /szyfrowana
Podmontowujemy do powyższego zasobu nasz nowy dysk:
mount /dev/mapper/dowolna_nazwa /szyfrowana
Po restarcie naszego podmontowanego zasobu nie będzie. Aby bezpiecznie zamknąć naszą szyfrowaną partycję, najpierw odmontujmy ją, a następnie skorzystajmy z polecenie (nie musimy tego robić każdorazowo przy zamykaniu systemu):
cryptsetup luksClose dowolna_nazwa
Aby partycja była automatycznie montowana po starcie systemu musimy wykonać dwie następujące czynności. Przede wszystkim edytujemy plik „?etc/crypttab” i dopisujemy:
redhat /dev/sda6
Następnie edytujemy plik „/etc/fstab” i dopisujemy:
/dev/mapper/redhat /szyfrowana xfs defaults,_netdev 0 0
Opcja „_netdev” oznacza, że partycja będzie montowana po uruchomieniu sieci. Po restarcie powinno wszystko działać. W czasie uruchamiania będziemy proszeni o hasło do naszej szyfrowanej partycji. Można temu zaradzić i ustawić tzw. klucz w postaci pliku zawierającego nasze hasło. Aby to zrobić musimy utworzyć plik np. „/etc/haslo” oraz wpisać do niego hasło. Następnie wykonujemy komendę:cryptsetup luksAddKey /dev/sda2 /etc/haslo
Będziemy proszeni o podanie hasło do naszej partycji. Plik „/etc/crypttab” powinien zawierać zmodyfikowany wcześniej wpis w postaci:
redhat /dev/sda6 /etc/haslo
Aby sprawdzić aktywne opcje autoryzacji dla danej partycji (w naszym przypadku /dev/sda2) wykonujemy komendę:crypsetup luksDump /dev/sda2
Powinniśmy zobaczyć listę tzw. Key Slot-ów. Dwa z nich powinny mieć status „ENABLED”. Jeśli tak jest, to znaczy że wszystko jest ok. Po restarcie zaszyfrowana partycja powinna zostać automatycznie podmontowana. Bezpiecznego szyfrowania 🙂
Testowałeś może dostęp do tak zaszyfrowanej partycji z poziomu liveCD / systemu na USB różnych dystrybucji?
Jaka jest procedura dostępu do takiej partycji w przypadku crashu systemu?
Pozdrawiam
Popieram mheki.
Różne „wyuzdane” metody zabezpieczeń obracają się najczęściej przeciwko użytkownikowi.
Proponuję na wrażliwe dane pamięć flash USB (tzw. pendrive) lub dysk twardy USB z Truecryptem i częste jego backupy.
Wg mnie nie ma nic lepszego.
Pozdrawiam.
Nice, tylko z posiadanej wiedzy o yum, przy poleceniu instalacji paczki cryptsetup raczej „install” niż „setup”. Chyba że to jakaś własna kompilacja yum’a 😀
Pzdr.
Fragles masz słuszność. Dzięki za wskazanie błędu. Poprawione.
@z: Wydaje mi się, że w przypadku Linuksa, to właśnie TrueCrypt jest bardziej „egzotycznym” rozwiązaniem, niż LUKS. Fakt, nie jest wieloplatformowy, jak TrueCrypt, ale obecnie jest jednym z bardziej standardowych i stabilnych rozwiązań służących szyfrowaniu dysków.
A jak zmienić po fakcie „dowolna_nazwe”?
Po wykonaniu „cryptsetup luksClose dowolna_nazwa”, dajesz np. „cryptsetup luksOpen /dev/sda2 inna_dowolna_nazwa”.