• Szyfrowanie partycji w CentOS – LUKS

    dodany przez Przemysław Sikora

    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 🙂

7 komentarzy do “Szyfrowanie partycji w CentOS – LUKS”

  1. mheki pisze:

    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

  2. z pisze:

    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.

  3. fragles pisze:

    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.

  4. admin pisze:

    Fragles masz słuszność. Dzięki za wskazanie błędu. Poprawione.

  5. shadow pisze:

    @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.

  6. Gero pisze:

    A jak zmienić po fakcie “dowolna_nazwe”?

  7. centos pisze:

    Po wykonaniu “cryptsetup luksClose dowolna_nazwa”, dajesz np. “cryptsetup luksOpen /dev/sda2 inna_dowolna_nazwa”.

Dodaj komentarz

Warto odwiedzić
Valid XHTML 1.0 Transitional centos.com.pl- mapa strony