Instalando ArchLinux + LVM + LUKS (UEFI)

Instalando ArchLinux + LVM + LUKS (UEFI)

Jσãσ Pє∂яσ - Brasil Linux


Segurança e privacidade são dois assuntos muito importantes, e todos nós, de uma forma ou de outra, possue dados confidenciais armazenados em seu computador. Enquanto você pode considerar bastante seguro seus dados em um computador doméstico, em um laptop, a situação é muito diferente. Você carrega o notebook com você e você não quer perder todos os seus preciosos dados, caso tenha sido roubado ou perdido, por exemplo. Aqui é onde a criptografia do sistema entra. Neste artigo, vou mostrar como criptografar completamente seu sistema usando duas ferramentas nativas do linux: LVM (para particionamento) e luks (para a criptografia real). Neste ponto, você poderia perguntar por que usar a linha de comando para criar esse tipo de configuração quando a maioria do instalador distros poderia fazê-lo para nós. Bem, isso não é completamente verdade, porque normalmente os instaladores gráficos não permitem que você ajuste suas configurações (por exemplo, o tipo de codificação ou o tamanho da chave que você deseja usar), além disso, eles não permitem que você criptografe seu disco RAW sem criar uma tabela de partição sobre ele. Mesmo se você não tem essas necessidades, é de qualquer maneira interessante saber como as coisas funcionam.




O LUKS é o padrão para criptografia de disco rígido Linux. Ao fornecer um formato padrão no disco, não apenas facilita a compatibilidade entre distribuições, mas também fornece gerenciamento seguro de senhas de usuários múltiplos. Ele pode criptografar discos inteiros, mídia removível, partições, volumes RAID de software, volumes lógicos e arquivos.


Prós

⚫️ O LUKS encripta dispositivos de bloco inteiro, portanto, é adequado para proteger o conteúdo de dispositivos móveis, como mídia de armazenamento removível (usb pen) ou unidades de disco de laptop.

⚫️ Você também pode usar com o seu servidor nas para proteger os backups.

⚫️ Intel e cpus AMD com AES-NI (Advanced Encryption Standard Instruction Set) podem acelerar a criptografia baseada em dm-cripta para o kernel Linux v2.6.32 +. Isso acelerará a criptografia do disco rígido.

⚫️ Também funciona com a partição swap para que seu laptop possa usar o recurso de hibernação (suspend-to-disk) que grava o conteúdo da RAM na partição swap antes de desligar a máquina.


Cons:

⚫️ LUKS só suporta até 8 senhas, exceto que apenas 8 usuários podem ter chaves de acesso distintas para o mesmo dispositivo.

⚫️ O LUKS também não é recomendado para aplicativos que requerem criptografia em nível de arquivo.


Por que LUKS?

✔️ compatibilidade através da padronização,

✔️ seguro contra ataques de baixa entropia,

✔️ suporte para chaves múltiplas,

✔️ revogação efetiva de senha

✔️ livre


O projeto original LUKS CryptSetup está aqui: PROJETO LUKS


######## INSTALAÇÃO DO ARCH LINUX + LVM + LUKS (UEFI) #########



Faça o download do Arch Linux: AQUI { Obs: Ñ esqueça de checar MD5 da ISO }

Para criar um USB bootable no Windows/Linux use o Etcher ou Rufus


Para criar um USB bootable usando o comando (dd) no Linux:

# dd bs=4M if='/lugar_onde_esta_seu_iso'of='/lugar_para_o_qual_copiar' status=progress && sync

Exemplo: # dd bs=4M if='/home/joao/archlinux-2020.01.01.iso' of='/dev/sdX' status=progress && sync



Iniciando a Instalação



Mude layout do teclado para PT-BR

# loadkeys br-abnt2


Verifique se é inicializado no modo UEFI (Se iniciou em modo UEFI você verá variáveis UEFI no diretorio execultando)

# ls /sys/firmware/efi/efivars


Conecte-se a internet WIFI

# wifi-menu -o 

ou

Conecte-se a internet Cabo

# ip addr


Teste a conexão com a internet:

# ping -c 3 www.archlinux.org


Atualize o relógio do sistema.

# timedatectl set-ntp true

Particionamento de Disco


Verifique seus discos e partições

# lsblk ou dmesg | grep sd


NOTA: Na maioria das vezes, se você estiver instalando no seu disco principal, você estará usando /dev/sda como seu disco principal. No entanto, se este for um disco secundário ou terciário, você pode estar usando /dev/sdb ou /dev/sdc. Após este ponto, eu uso / dev/sdX, então preencha a variável X com o que você precisar.


Configure suas partições com fdisk: ( Disco dectado na minha maquina /dev/sda)

# fdisk /dev/sda

 

Então, (digite g no fdisk, se necessário, para criar uma nova tabela de partição GPT vazia)



Formatando o disco


Formate a partição EFI

# mkfs.vfat -F32 /dev/sda1


Formate a partição /boot

# mkfs.ext2 /dev/sda2


Formate a partição root

# mkfs.ext4 /dev/sda3


Definir senha


Definir uma senha e criptografar a partição root

# cryptsetup luksFormat -c aes-xts-plain64 -s 512 /dev/sda3


Abrir partição root

# cryptsetup open --type luks /dev/sda3 root


Dei o nome "galdino" ao grupo por convenção, mas como sempre alerto aqui, fica a teu critério.


CONFIGURANDO LVM


LVM trabalha com alguns paradgimas interessantes, que são os PV (Physical Volume), VG (Volume Group) e LV (Logical Volume).


LVM + LUKS


Criar volume físico

# pvcreate /dev/mapper/root


Verifique o volume físico

# pvdisplay


Criar grupo de volume

# vgcreate galdinovg /dev/mapper/root


Verifique o grupo de volume

# vgdisplay


Criar volume lógico usando quase todo o HD

# lvcreate --name galdinolv --size 230G galdinovg


Agora crie outro volume lógico para manter o swap

# lvcreate -l +100%FREE galdinovg -n swaplv


E verifique os volumes lógicos

# lvdisplay


Formatar volume lógico criptografado


Formate o volume lógico root criptografado

# mkfs.ext4 /dev/mapper/galdinovg-galdinolv


Formate o volume lógico swap criptografado

# mkswap /dev/mapper/galdinovg-swaplv


Ativar swap, criar e montar as partições


Ativar Swap

# swapon /dev/mapper/galdinovg-swaplv


Montar root para /mnt

# mount /dev/mapper/galdinovg-galdinolv /mnt


Montar /boot

# mkdir -p /mnt/boot && mount /dev/sda2 /mnt/boot


Montar /boot/efi

# mkdir -p /mnt/boot/efi && mount /dev/sda1 /mnt/boot/efi


Rápida verificação no que acabamos de fazer

# lsblk /dev/sda


Escolha o espelho de download mais próxima


Instale o pacote pacman-contrib, que pode ser usado para classificar os espelhos de acordo com suas velocidades de conexão e abertura para aproveitar o uso do espelho local mais rápido.

# pacman -S pacman-contrib


Faça o backup do /etc/pacman.d/mirrorlist existente:

# cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup


Opcionalmente, execute a seguinte linha sed para descomentar todos os espelhos:

# sed -i 's/^#Server/Server/' /etc/pacman.d/mirrorlist.backup


Finalmente, classifique os espelhos, aqui com o operando -n 10 para emitir apenas os 10 espelhos mais rápidos:

# rankmirrors -n 10 /etc/pacman.d/mirrorlist.backup> /etc/pacman.d/mirrorlist



Instalar o Sistema Base

# pacstrap -i /mnt base base-devel grub-efi-x86_64 efibootmgr bash-completion nano linux linux-firmware dhcpcd


Configurar fstab


Gerar fstab

# genfstab -U /mnt >> /mnt/etc/fstab


Você deve sempre verificar se a entrada fstab está correta ou não, que será capaz de inicializar em seu sistema. Para verificar a entrada fstab, execute:

# cat /mnt/etc/fstab


Para usar /tmp como ramdisk, edite /mnt/etc/fstab e adicione:

# nano /mnt/etc/fstab

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0


CHROOT


Agora é hora de mudar para o diretório root recém-instalado para configurá-lo.

# arch-chroot /mnt 


Defina seu nome de host


# echo brasil-linux > /etc/hostname


Em seguida, edite /etc/hosts para se parecer com isto:

# nano /etc/hosts


127.0.1.1 localhost.localdomain brasil-linux


Alterar DNS:


# nano /etc/resolv.conf


nameserver 8.8.8.8

nameserver 8.8.4.4


Configurações de idioma e fuso horário


Defina o fuso horário

# ln -sf /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime


Ajustar o relógio de hardware

# hwclock --systohc --utc


Para configurar o idioma do sistema, execute o seguinte comando:

# sed -i '/pt_BR/,+1 s/^#//' /etc/locale.gen


Agora execute

# locale-gen

# echo LANG=pt_BR.UTF-8 > /etc/locale.conf

# export LANG=pt_BR.UTF-8 


Vamos agora configurar o relógio do hardware, apenas no caso de termos uma data errada:


# hwclock --systohc --utc

echo -e "NTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org``\nFallbackNTP=0.pool.ntp.org 1.pool.ntp.org 0.fr.pool.ntp.org" >> /etc/systemd/timesyncd.conf


Configurar KEYMAP


A variável KEYMAP é especificada no arquivo /etc/vconsole.conf . Ele define qual layout de teclado, será usado nos consoles virtuais. Execute este comando:

# echo -e "KEYMAP=br-abnt2\nFONT=Lat2-Terminus16\nFONT_MAP=" > /etc/vconsole.conf


Configurar o repositório


Com este comando habilitamos o repositório multlib:

# sed -i '/multilib\]/,+1 s/^#//' /etc/pacman.conf

# pacman -Sy


Atualizar initramfs


Edite /etc/mkinitcpio.conf, adicione keymap keyboard encrypt lvm2 nos HOOKS e ext4 nos MODULES

# nano /etc/mkinitcpio.conf


MODULES="ext4"

[...]

HOOKS="... keymap keyboard encrypt lvm2 filesystems ..."


Agora execulte:

# mkinitcpio -p


Criar Usuário


Criar um usuário

# useradd -m -g users -G wheel,storage,power -s /bin/bash galdino


Em seguida, forneça a senha para este novo usuário executando:

# passwd galdino


Escolha a senha do root

# passwd 


Permitir que os usuários no grupo wheel, sejam capazes de executar tarefas administrativas com o sudo:

# sed -i '/%wheel ALL=(ALL) ALL/s/^#//' /etc/sudoers


Configurando a Conexão 


# ip link ou ls /sys/class/net


# systemctl enable dhcpcd@interface_name.service (rede cabeada)


Wifi ( Instalar componentes wifi )

# pacman -S wpa_supplicant wpa_actiond dialog iw networkmanager 


# systemctl enable NetworkManager


Instar boot-loader


# pacman -S grub efibootmgr 


Edite /etc/default/grub e adicione:

# nano /etc/default/grub


GRUB_CMDLINE_LINUX="cryptdevice=/dev/sda3:galdinolv"

GRUB_ENABLE_CRYPTODISK=y


Instalar o grub

# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub --recheck


# pacman -S intel-ucode ( Se você tiver uma CPU Intel, instale o pacote intel-ucode )


Execute grub-mkconfig (você pode receber alguns avisos do lvmetad, apenas ignore por enquanto)

# grub-mkconfig -o /boot/grub/grub.cfg



Desmontar as partições e reiniciar:


# exit

# umount -R /mnt

# reboot



Referencias:

https://wiki.archlinux.org/index.php/System_Encryption_with_LUKS

https://wiki.archlinux.org/index.php/Dmcrypt/Encrypting_an_entire_system#LVM_on_LUKS

http://gutocarvalho.net/octopress/2013/05/17/lvm-dicas-rapidas/


Instalação do Arch Linux Concluida !! :)

Parte 02/02 - AQUI



Créditos Totais: @Galdino0800 - @Raskolnikov9 e aos membros do Brasil Linux:

Report Page