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:

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.

  1. 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).
  2. 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..
  3. Formate o volume a ser utilizado para o /boot de modo a poder ser utilizado na instalação:
    mkfs.ext4 /dev/mapper/vg-boot
    
  4. 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
    
  5. 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
    
  6. 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.
  7. 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
    
  8. 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:

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.

  1. cryptsetup --verify-passphrase --cipher aes-xts-plain:sha512 luksFormat /dev/sda2
    
  2. cryptsetup luksOpen /dev/sda2 swap
    
  3. 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.

Redhat e Fedora .

Protect Your Stuff With Encrypted Linux Partitions.

KVM how to use encrypted images.

aptosid wiki.

Page last revised 06/09/2011 0920 UTC