Instalando no cryptoroot
Por favor tome as seguintes considerações em nota, pois há algumas armadilhas se seguir este manual para chifrar as suas partições seja ela a partição root ou uma partição utilizada para outros fins:
- método válido para as versões do aptosid depois do aptosid 2010-03 "Ἀπάτη".
- este é um guia básico para iniciar o utilizador. É da sua responsabilidade aprender mais acerca de LUKS, cryptsetup e encriptação. No fundo desta página são listados links de fontes e resources que poderão servir de ajuda. A lista nao é (definitivamente) exaustiva.
- cryptsetup não pode chifrar partições já contendo ficheiros, por isso tem que ser criada uma partição nova. Você pode copiar depois os seus dados de volta.
- cryptsetup permite usar até 8 ficheiros chave e ter chaves múltiplas para as partições. Este aspecto não será focado neste guia.
- Não esqueça as frases chaves que escolheu. É a maneira mais fácil de perder todos os seue dados. Náo há possiblidade de os recuperar!
- relativamente cedo, durante o processo de arranque do sistema, você tem que entrar a frase chave que escolheu para os dispositivos chifrados. Só depois disso é que o processo de arranque pode ser completado.
Exemplos de encriptação:
Usando crypt com grupos LVM
Este exemplo usa encriptação dentro de um volume LVM permitindo separar home da raíz / e ter uma partição de swap sem necessidade de palavras chave múltiplas e é aplicável a partir do aptosid 2010-03 "Ἀπάτη".
Antes de lançar a aplicação para instalar o aptosid, o sistema tem que ser preparado. Para linhas de orientação básica em LVM veja Logical Volume Manager - LVM particionamento.
Você necessita pelo menos de um partição não chifrado /boot assim como partições chifradas para / /home e swap.
- se não quer utilizar um volume group já existente, então tem que criar um novo. Vamos supôr para o que se segue que o volume grupo será chamado vg e vai conter a partição para o arranque (boot) e para os ficheiros do utilizador (data).
- No volume grupo vg vão ser criados dois volume lógicos usando lvcreate atribuindo-lhes o tamanho desejado:
lvcreate -n boot --size 250m vg lvcreate -n crypt --size 300g vg
No nosso exemplo atribuimos-lhe os nomes de boot e crypt com um tamanho de 250MB e 300GB respetivamente.. - Formate o volume a ser utilizado para o /boot de modo a poder ser utilizado na instalação:
mkfs.ext4 /dev/mapper/vg-boot
- Use cryptsetup para encriptar vg-crypt Utilize a opção xts com a chave mais forte possível ( 512 bit). Depois de chifrado abra-o. Vai ter que entrar a frase chave três vezes duas antes de encriptar e uma terceira para poder abrir. Ao abrir atribua-lhe o nome de "cryptroot":
cryptsetup --verify-passphrase --cipher aes-xts-plain:sha512 luksFormat /dev/mapper/vg-crypt
cryptsetup luksOpen /dev/mapper/vg-crypt cryptroot
- Agora vamos usar lvm de novo para criar um novo volume grupo que vamos utilizar para os dispositivos do /swap e /home. Primeiro criamos um volume físico com pvcreate que depois utilizamos para definir volume lógicos num novo volume grupo ao qual pomos o nome de cryptvg:
pvcreate /dev/mapper/cryptroot vgcreate cryptvg /dev/mapper/cryptroot
- podemos então usar lvcreate para criar os volume lógicos / , /swap e /home atribuindo-lhes o tamanho que desejarmos:
lvcreate -n swap --size 2g cryptvg lvcreate -n root --size 40g cryptvg lvcreate -n home --size 80g cryptvg
No nosso exemplo demos-lhes o nome de "swap", "root" e "home" com um tamanho de 2Gb, 40Gb e 80Gb respetivamente. - finalmente formatamos os volume lógicos para torná-los acessíveis á instalação:
mkswap /dev/mapper/cryptvg-swap mkfs.ext4 /dev/mapper/cryptvg-root mkfs.ext4 /dev/mapper/cryptvg-home
- Estamos prontos para poder instalar o aptosid no qual utilizaremos:
vg-boot para /boot,
cryptvg-root para /,
cryptvg-home para /home,
and cryptvg-swap para swap deverá ser reconhecida automáticamente.
O sistema instalado terá uma entrada para o kernel incluindo as opções seguintess:
root=/dev/mapper/cryptvg-root cryptopts=source=/dev/mapper/vg-crypt,target=cryptroot,lvm=cryptvg-root
O sistema tem então os volumes lógicos "crypt" e "boot" no volume "vg". "root", "home" e "swap" estão contidos no volume encryptado "vgcrypt" protegidos pela sua própria frase chave.
Note bem: Se estiver a efetuar uma reinstalação utilizando um volume lvm préviamente encriptado, para tornar as partições encripatdas acessíveis ao programa de instalação tem que registar estas no kernel. Para isso são necessários os comandos seguintes:
cryptsetup luksOpen /dev/mapper/cryptvg-root cryptvg vgchange -a y
Notícias ácerca de encriptação com métodos tradicionais de particionamento
A primeira decisão a ser tomada tem que definir as partições que queremos usar. No mínimo são precisas duas partições uma a partição de arranque /boot e a outra para os ficheiros encriptados.
Se o swap é necessário ( que deverá ser encriptado) então o número de particões eleva-se a três. Neste caso durante o processo de arranque do sistema também é necessário entrar a frase chave para o swap separadamente.
É possível utilizar ficheiros chaves, contidos na partição encriptada / para a partição do swap mas deste modo não é permitido o "suspend to disk". Por esta razão é de preferir a uitlização dos volumes do LVM com partições completamente encriptadas..
Condições essenciais:
- você tem pelo menos três partiçôes disponíveis:
/boot, com 250mb
swap, com 2 gig
/ e /home juntas. - duas frases chave vão ser necessárias, uma para o swap e a outra para / e /home juntas.
Depois de ter particionado o disco, precisamos de preparar as partições encriptadas. Estes passos têm que ser feitas num terminal do utilizador root.
A partição /boot
Caso a partição /boot (no nosso exemplo /dev/sda1) ainda não esteja formatada, Formate-a com ext4:
/sbin/mkfs.ext4 /dev/sda1
Partição swap encriptada
Para a partição encriptada do swap (no nosso exemplo /dev/sda2), primeiro precisamos de encriptar a partição, depois abrir o dispositivo encriptado e adiciona-lo ao crypttab.
cryptsetup --verify-passphrase --cipher aes-xts-plain:sha512 luksFormat /dev/sda2
cryptsetup luksOpen /dev/sda2 swap
echo "swap UUID=$(blkid -o value -s UUID /dev/sda2) none luks" >> /etc/crypttab
Finalment podemos formatá-la /dev/mapper/swap de modo a ser reconhecida pelo installer:
/sbin/mkswap /dev/mapper/swap
Partição encriptada /
Para / ( no nosso exemplo /dev/sda3) fazemos os passos necessários como para o swap não sendo porém necessário adicionar a partição ao crypttab.
cryptsetup --verify-passphrase --cipher aes-xts-plain:sha512 luksFormat /dev/sda3
cryptsetup luksOpen /dev/sda3 cryptroot
Para o formato utilizamos ext4 para poder ser reconhecida pelo installer como /dev/mapper/cryptroot :
/sbin/mkfs.ext4 /dev/mapper/cryptroot
Lançar o installer
Agora temos tudo preparado para lançar a instalação aonde iremos escolher:
sda1 para /boot,
cryptroot para / e /home
swap deverá ser reconhecida automáticamente.
O sistema instalado terá uma entrada para o kernel incluindo as opções seguintes (o UUID apropriado vai ser utilizado em cada instalação):
root=/dev/mapper/cryptroot cryptopts=source=UUID=12345678-1234-1234-1234-1234567890AB,target=cryptroot
O sistema tem então boot numa partição não encriptada e swap conjuntamente com / em partições encriptadas.
Fontes e links:
Leitura obrigatória:
man cryptsetup
LUKS.
Protect Your Stuff With Encrypted Linux Partitions.
KVM how to use encrypted images.