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
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).
#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 | #