Requerimentos
- Kernel: >= 2.6.20
- Suporte para udev
- Partição de boot separada.
- Algum mecanismo para backup. No meu caso utilizei um velho disco rígido de 20GB
- Paciência e persistência.
Preparando o kernel
O seu kernel deve estar configurado com as opções a seguir:
# make menuconfig
General setup --->
[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
() Initramfs source file(s) (Deixe este campo em branco!)
Device Drivers --->
[*] Multiple devices driver support (RAID and LVM) --->
<*> Device mapper support
<*> Crypt target support
--- Cryptographic API --->
<*> SHA256 digest algorithm
<*> SHA384 and SHA512 digest algorithms
<*> Blowfish cipher algorithm
<*> Serpent cipher algorithm
<*> AES cipher algorithms
se estiver usando um sistema amd64 troque a opção acima por
<*> AES cipher algorithms (x86_64)
Então,
# make && make modules modules_install
# mount /boot
# make install
Para quem usa Debian:
# make-kpkg kernel-image
# dpkg -i <o novo kernel>
Obtenha as ferramentas
Verifique se você possui cryptsetup-luks instalado.
# emerge -avn cryptsetup-luks
ou
# apt-get install cryptsetup
Fazendo backup dos dados (obrigatório)
Primeiro precisamos fazer o backup da partição root. Digamos que seu disco principal seja /dev/sda e sua partição root seja /dev/sda3 e que o disco para backup seja /dev/sdb. Esta será a referência no decorrer do tutorial. Não se esqueça de trocar estes valores para a sua situação. Criamos uma partição única para armazenar os dados que futuramente serão encriptados:
# fdisk /dev/sdb
O número de cilindros para este disco está configurado para 2491.
Não existe nada de errado, mas isto é maior que 1024,
e pode em certas configurações causar problemas com:
1) programas que executam em tempo de inicialização (versões velhas do LILO)
2) inicialização e programas de particionamento de outros OSs
(p.ex., DOS FDISK, OS/2 FDISK)
Comando (m para ajuda):
n
Comando - ação
l lógica (5 ou superior)
p partição primária (1-4)
p
Número da partição (1-4):
1
Depois enter + enter para utilizar todo o disco e então para salvar:
Comando (m para ajuda):
w
# mkfs.ext3 /dev/sdb1
Agora vamos fazer o backup dos dados:
# mkdir /mnt/crypt
# mount /dev/sdb1 /mnt/crypt
# cd /
# cp -avx / /mnt
Aproveite para comer algo enquanto os dados são transferidos...
Vamos preparar a nova partição:
# vi /mnt/crypt/etc/fstab
Troque a partição de root atual por /dev/sdb1.
/dev/sdb1 / ext3 noatime 0 1
Edite também seu gerenciador de inicialização, no caso do grub, edite
/boot/grub/menu.lst.
kernel /vmlinuz root=/dev/sda3
Troque pelos valores da sua nova partição (lembre-se estes são exemplos. Substitua pelas SUAS partições).
kernel /vmlinuz root=/dev/sdb1
# reboot
Depois da inicialização, verifique se realmente está na nova partição:
# mount | grep 'on / type'
Deve apresentar a partição de backup, no meu caso /dev/sdb1.