Szyfrowanie w Linuksie

13 stycznia, 2012 (09:44) | centos, linux | By: konrad

Jest sobie zdalne centrum danych, w którym umiejscowione są krytyczne dla działania firmy systemy. A skoro są krytyczne, to robimy z nich backupy, dość często nawet i wyjątkowo regularnie. Niestety, kopie zapasowe są na tyle duże, że problematyczne jest kopiowanie ich przez istniejące łącza, a rozbudowa tych ostatnich tylko dla naszej wygody byłaby zdecydowanym przerostem formy nad treścią (co wcale nie oznacza, że nie robimy backupu „off site”, bo byłoby to dużym niedopatrzeniem i zaburzyło procedury DR).
Potrzebą techniczną jest posiadanie kopii niektórych baz danych, żeby można było w nich grzebać, psuć i niszczyć, a żeby żaden z klientów nie był z tego powodu smutny. Najprostszym rozwiązaniem jest podpięcie dysku USB do maszyny robiącej kopie bezpieczeństwa i przywiezienie takiego dysku (razem z zawartością oczywiście) do biura, gdzie będzie można się nad tym wszystkim znęcać.
Potrzebą biznesową jest za to konieczność zabezpieczenia przewożonych danych w taki sposób, aby potencjalnemu złodziejowi odechciało się walki z tymi zabezpieczeniami. Osobiście uważam to za bardzo rozsądny wymóg, którego warto przestrzegać i który (w skrajnych przypadkach) może w drastyczny sposób ograniczyć straty firmy.

Systemem wykonującym kopie bezpieczeństwa dla wspomnianych przeze mnie systemów jest Linux (konkretnie CentOS w wersji 5). Po przejrzeniu informacji dostępnych w Internecie okazało się, że metod szyfrowania systemów plików nie ma wcale tak dużo. Pierwszym kandydatem był TrueCrypt, którego z powodzeniem używam w wielu innych miejscach (zarówno zawodowo, jak i prywatnie), jednak – z niewiadomych mi przyczyn – był mało stabilny i potrafił wywalić całą maszynę. Znalazłem nawet informację, że problem faktycznie występuje i że zostanie to kiedyś poprawione. Ale potrzebowałem czegoś „na już”, więc zacząłem szukać dalej. Ostatecznie padło na LUKSa. Nie będę się specjalnie rozpisywał, co można za pomocą tego oprogramowania zrobić, bo jest to ładnie opisane na stronie domowej. Ograniczę się jedynie do krótkiej ściągawki, jak wykonać podstawowe czynności.

Załóżmy, że dysk, który chcemy „zaLUKSować” to /dev/sdd1. Podstawowym narzędziem, jakiego będziemy używać to „cryptsetup”.

Sprawdzanie, czy dane urządzenie nie jest już przypadkiem zaszyfrowane:
cryptsetup isLuks /dev/sdd1 2>>/dev/null && echo TAK || echo NIE
Jeżeli poprzednie polecenie dało wynik negatywny (czyli nie jest jeszcze zaszyfrowane), to możemy je „sformatować”:
cryptsetup luksFormat /dev/sdd1
Teraz warto sprawdzić, czy operacja się faktycznie udała i podejrzeć nagłówek LUKSa:
cryptsetup luksDump /dev/sdd1
Nastepnym krokiem jest „otworzenie” zaszyfrowanego urządzenia:
cryptsetup luksOpen /dev/sdd1 bkpPo tej operacji powinno nam się w systemie pojawić nowe urządzenie blokowe, do którego możemy uzyskać dostęp poprzez /dev/mapper/bkp.

Po zamontowaniu możemy sobie obejrzeć jego „stan”:
dmsetup info bkp
Jeżeli wszystko się zgadza (a przynajmniej nie ma żadnych rażących błędów), przystępujemy do tworzenia systemu plików:
mke2fs -j /dev/mapper/bkp

Na koniec wystarczy zamontować system plików w systemie:
mount /dev/mapper/bkp /mnt/usb…i cieszyć możliwością ukrywania naszych ściśle tajnych danych przed światem.

Po zakończeniu zabawy należy oczywiście odpowiednio wszystko pozamykać:
sync
umount /mnt/usb
cryptsetup luksClose bkp

Trackback URL: https://konrad.bechler.pl/2012/01/szyfrowanie-w-linuksie/trackback/

«

»

Write a comment





*