diff options
-rw-r--r-- | install.mdwn | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/install.mdwn b/install.mdwn index e69de29..8ec5627 100644 --- a/install.mdwn +++ b/install.mdwn @@ -0,0 +1,209 @@ +Sistema Debian +============== + +A seguir, o procedimento de instalação de um sistema com disco criptografado e gerenciamento de partida via dispositivo de armazenamento USB. + +Local de instalação +------------------- + +O procedimento a seguir utiliza LVM e assume que o nome de volume group vg esteja disponível para utilização. Assim, recomenda-se que, durante o procedimento de instalação, seja utilizado + +1. Um sistema simples sem LVM. +2. Ou um sistema que utilize LVM mas que não tenha um volume group de nome vg. + +Caso contrário, você ainda poderá utilizar um nome de volume group intermediário durante a instalação, reiniciar a máquina com um outro sistema onde o nome vg esteja disponível e utilizar o vgrename(8) para renomear o volume group. + +Instalação +---------- + +Antes de tudo, determine qual o dispositivo no qual o sistema será instalado, a arquitetura, a versão do sistema e o domínio principal: + + export device=/dev/nome_do_dispositivo + export arch=amd64 + export version=lenny + export hostname=nome_da_maquina + export domain=projeto.org + +A primeira etapa é o particionamento do disco. Neste exemplo, consideremos o seguinte layout para o disco: + + fdisk -l $device + +Como exemplo, assumiremos o seguinte layout, ajuste-o conforme as suas necessidades e gostos: + + Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes + 255 heads, 63 sectors/track, 121601 cylinders + Units = cilindros of 16065 * 512 = 8225280 bytes + Disk identifier: 0x00000000 + + Dispositivo Boot Start End Blocks Id System + /dev/sdb1 1 249 2000061 82 Linux swap + /dev/sdb2 * 250 273 192780 83 Linux + /dev/sdb3 274 121601 974567160 8e Linux LVM + +Em seguida vem a criação do LVM: + + pvcreate "$device"3 + vgcreate vg "$device"3 + lvcreate -L20G -n root vg + vgchange -a y vg + +Em seguida, preencher o dispositivo com sujeira: + + dd if=/dev/urandom of=/dev/vg/root + +A saída do comando acima deve ser algo como + + dd: escrevendo em `/dev/vg/root': Não há espaço disponível no dispositivo + 41943041+0 registos dentro + 41943040+0 registos fora + 21474836480 bytes (21 GB) copiados, 8544 s, 2,5 MB/s + +Proceder igualmente com a partição swap: + + dd if=/dev/urandom of="$device"1 + + dd: escrevendo em `/dev/sdb1': Não há espaço disponível no dispositivo + 4000123+0 registos dentro + 4000122+0 registos fora + 2048062464 bytes (2,0 GB) copiados, 972,049 s, 2,1 MB/s + +Com isso, já é possível passar para a criação do volume criptografado: + + cryptsetup -h sha256 -c aes-cbc-essiv:sha256 -s 256 luksFormat /dev/vg/root + cryptsetup luksOpen /dev/vg/root debootstrap + mkfs.ext3 /dev/mapper/debootstrap + +Montando esse dispositivo num local temporário e instalar o sistema básico: + + mkdir /tmp/debootstrap + mount /dev/mapper/debootstrap /tmp/debootstrap/ + debootstrap --arch=$arch $version /tmp/debootstrap/ + +Configuração inicial +-------------------- + + mount none -t proc /tmp/debootstrap/proc/ + mount -o bind /dev/ /tmp/debootstrap/dev + cp -L /etc/resolv.conf /tmp/debootstrap/etc + echo $hostname.$domain >> /tmp/debootstrap/etc/hostname + echo "127.0.0.1 localhost $hostname $hostname.$domain" >> /tmp/debootstrap/etc/hosts + + chroot /tmp/debootstrap/ + export PS1="chroot $PS1" + apt-get update ; apt-get upgrade + apt-get install locales cryptsetup lvm2 initramfs-tools grub + +O /etc/crypttab deve conter (substitua /dev/sda1 pelo seu valor correspondente para $device: + + # <target name> <source device> <key file> <options> + root /dev/mapper/vg-root none luks,cipher=aes-cbc-essiv:sha256 + cswap /dev/sda1 /dev/random swap,cipher=aes-cbc-essiv:sha256 + +E o /etc/fstab deve conter: + + /dev/mapper/cswap none swap sw 0 0 + /dev/mapper/root / ext3 defaults,errors=remount-ro + +Partida +------- + +Agora é a hora de configurar o gerenciador de partida: + + mkfs.ext3 /dev/"$device"2 + mount /dev/"$device"2 /boot + grub-install --no-floppy "$device" + +Conteúdo do /boot/grub/menu.lst (substitua de acordo com os valores de $arch e da versão do kernel instalado: + + title Servidor (hd0) + root (hd0,1) + kernel /vmlinuz-2.6.26-1-vserver-amd64 root=/dev/mapper/root ro quiet rootdelay=10 + initrd /initrd.img-2.6.26-1-vserver-686 + + title Servidor (hd0) (single) + root (hd0,1) + kernel /vmlinuz-2.6.26-1-vserver-amd64 root=/dev/mapper/root ro single rootdelay=10 + initrd /initrd.img-2.6.26-1-vserver-686 + +Note que a opção rootdelay é importante no caso de sistemas contidos dentro de volumes USB, já que o kernel demora alguns instantes para detectar tais volumes. Detalhes a respeito em + +* [Installing Linux on USB - Part 5: Installing Debian Linux on USB flash memory drives](http://blogs.koolwal.net/2009/02/03/installing-linux-on-usb-part-5-installing-debian-linux-on-usb-flash-memory-drives/). +* [initramfs-tools: lvm is not initialized on USB disks](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=366175#37). +* [When root on USB: add rootdelay=xx to kernel command line](https://blueprints.launchpad.net/ubuntu/+spec/kernel-boot-usb-roodelay). + +Para que a partição de boot seja montada após a partida do sistema, adicione a seguinte entrada no /etc/fstab, substituindo, se necessário, sda2 pela partição correspondente: + + /dev/sda2 /boot ext3 defaults,errors=remount-ro + +Kernel +------ + +O /etc/initramfs-tools/modules deve conter as linhas + + dm-mod + dm-crypt + aes + twofish + sha256 + +Já o /etc/kernel-img.conf deve possuir a linha + + do_initrd = Yes + +Proceda [desabilitando o firewire do sistema](firewire) e, em seguida, instale o kernel: + + if [ "$arch" == "i386" ]; then + kernel_arch="686" + else + kernel_arch="$arch" + fi + + apt-get install linux-image-2.6-vserver-$kernel_arch + +Imagem de partida +----------------- + +Para que o sistema consiga inicializar, atualize a imagem de partida: + + update-initramfs -v -u + +Continuando remotamente + +Para que seja possível continuar remotamente com a configuração, é preciso instalar um servidor SSH: + + apt-get install openssh-server + ssh-keygen -l -f /etc/ssh/ssh_host_dsa_key.pub + ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub + +Aproveite para instalar aplicativos básicos: + + apt-get install sudo cron lsb-release + +Por fim, + + passwd root + +Agora a máquina já está quase a ponto de poder ser administrada remotamente. Antes disso, configure a rede, instale o sudo e adicione as contas de usuário/a iniciais: + + vi /etc/network/interfaces # configuracao de rede + vi /etc/udev/rules.d/70-persistent-net.rules # ajuste das placas de rede + vi /etc/resolv.conf # para usar o dns disponivel no data center + apt-get install sudo && adduser nome-de-usuario + +Antes de largar a máquina no data center, lembre-se de anotar os fingerprints do ssh que você listou anteriormente. + +Expansão de espaço em disco +--------------------------- + +* [How to resize a LUKS-encrypted partition created over LVM2](http://www.saout.de/tikiwiki/tiki-index.php?page=ResizeLUKSPartitions). +* [Resizing Encrypted Filesystems](http://www.debian-administration.org/articles/536). +* [Resizing a dm-crypt / LVM / ext3 partition](http://www.hermann-uwe.de/blog/resizing-a-dm-crypt-lvm-ext3-partition). + +Referências +----------- + +Algumas referências para instalação: + +* [Encrypted Root LVM](http://www.howtoforge.com/encrypted-root-lvm). +* [Encrypted filesystem - rigacci.org](http://www.rigacci.org/wiki/doku.php/doc/appunti/linux/sa/cryptfs). +* [EncryptedFilesystems - Ubuntu Documentation](https://help.ubuntu.com/community/EncryptedFilesystems). |