Szyfrowanie partycji na Linuksie

Dodano 27 PAŹ 2006 roku o godzinie 17:53:03

No więc, niedawno zrobiłem sobie takie cuś i postanowiłem, że opiszę co i jak. Wprawdzie większość jest podstawie, już gotowego artykułu, jednak to czego tam nie było warto będzie i tak napisać :)

Aby zacząć zabawę potrzebne będą nam cryptsetup oraz dmsetup.
Pod Ubuntu wystarczy wpisać:

sudo apt-get install cryptsetup dmsetup


Ok, skoro mamy potrzebne programy należy teraz załadować odpowiednie moduły:

# modprobe aes
# modprobe modprobe dm_crypt
# modprobe dm_mod

Jeśli wszystko jest ok to w konsoli powinniśmy otrzymać coś podobnego jak poniżej:

radmen@monopolowy:~$ cat /proc/crypto | grep aes
name : aes
module : aes

root@monopolowy:/home/radmen# dmsetup targets
crypt v1.1.0
striped v1.0.2
linear v1.0.1
error v1.0.1

Ja u siebie zaszyfrowałem partycję /dev/hda4 takim poleceniem:

#cryptsetup -y create SECURE /dev/hda4

Teraz trzeba będzie wpisać hasełko. Chyba nie muszę mówić, że im dłuższe tym lepiej :]

Teraz warto zapełnić dysk śmieciami.

Wypełnienie zerami (SZYBKIE) wygląda tak:
# dd if=/dev/zero of=/dev/hda4 bs=1M
Wypełnienie danymi losowymi (ZALECANE) wygląda tak:
# dd if=/dev/urandom of=/dev/hda4 bs=1M

Ten proces chwilkę trwa. Jeśli Ci zależy możesz użyć programu badblocks, który zapełni dysk 'gorszymi' śmieciami.

# badblocks -w -s -t random /dev/hda4

Teraz czas na system plików. Ja wybrałem ext3, ale można użyć dowolnego.

# mkfs.ext3 /dev/mapper/SECURE

Teraz się pewnie spytacie czemu /dev/mapper/SECURE, a nie /dev/hda4. Otóż cryptsetup zmapował dysk i tylko w ten sposób możemy mieć dostęp do plików.

Praktycznie wszystko już jest zrobione. Warto dodać jakiś wpis do fstab'a, żeby system wiedział gdzie ma montować partycję. U mnie ten wpis wygląda tak:

/dev/mapper/SECURE /media/tajne ext3 noauto,defaults,user 0 0

No i czas aby zamontować naszą partycję :)

mount /media/tajne

Aby zwykły użytkownik mógł cokolwiek skopiować na nasza 'tajna' partycję ja musiałem ustawić chmody katalogu '/media/tajne' na 777

No i partycja jest gotowa. Po restarcie komputera, trzeba będzie znowu zamontować partycję używając poleceń:

# cryptseetup -y create /dev/hda4
mount /media/tajne

Trzeba będzie wpisać znowu to samo hasło, które wpisaliśmy podczas tworzenia partycji. Jeśli 2 wpiszesz inne hasło to nici z montowania partycji :)

Ja dla ułatwienia sobie życia zrobiłem, mały skrypt, który będzie za mnie montował, lub odmontowywał partycję:

#!/bin/bash
#

case "$1" in
montuj)
echo "Montuje..."
if [ $USER <> "root" ]
then
sudo cryptsetup -y create SECURE /dev/hda4
else
cryptsetup -y create SECURE /dev/hda4
fi
mount /media/tajne
echo "OK"
;;

odmontuj)
echo "Odmontowuje..."
umount /media/tajne
if [ $USER <> "root" ]
then
sudo cryptsetup -y remove SECURE /dev/hda4
else
cryptsetup -y remove SECURE /dev/hda4
fi
echo "OK"
;;

*)
echo "Usage: $0 {montuj|odmontuj}"
;;
esac

Oczywiście aby skrypt działał wszystko musi być ustawione i wymagany będzie program sudo. Nie robiłem żadnych zmiennych konfiguracyjnych, bo nie były mi potrzebne.

Szczerze mówiąc to prawie wszystko jest z forum ubuntu. Część dopisałem sam. Na skopiowanie części treści posta otrzymałem zgodę.

Komentarze

#1

Dla Gentoo polecam http://gentoo-wiki.com/SECURITY_Encrypting_Root_Filesystem_with_DM-Crypt_with_LUKS

rash | #

#2

DZIĘKI! Bardzo pomocne, przejrzyście i zrozumiale napisane. Do zakładek (ulubionych) ;)

arti74 | #

Disclaimer

Jakkolwiek jestem właścicielem tego bloga, nie ponoszę odpowiedzialności za kometarze napisane przez innych obywateli tego wolnego kraju.

Zastrzegam sobie prawo do kasowania/modyfikowania komentarzy (jeśli uznam to za stosowne).

Dodaj komentarz

code