Szyfrowanie partycji na Linuksie
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 (e267660)
rash
Dla Gentoo polecam http://gentoo-wiki.com/SECURITY_Encrypting_Root_Filesystem_with_DM-Crypt_with_LUKS
arti74
DZIĘKI! Bardzo pomocne, przejrzyście i zrozumiale napisane. Do zakładek (ulubionych) ;)