Gentoo Hardened com Encriptação (LVM & LUKS)

*Não aconselhável para quem é preguiçoso ou que não possui paciência;

Este tutorial é para quem quer uma distro Linux robusta, popular e segura.
A versão hardened do Gentoo apresenta configurações modificadas, onde é focado a segurança dos mesmos. Por exemplo, o kernel; (hardened-sources) vêm com patchs GRSecurity. Além de diversos adicionais de segurança. Saiba mais aqui

Iniciando o procedimento de instalação:

Baixe a iso de instalação mínima do Gentoo. (Mirror BR)
http://gentoo.c3sl.ufpr.br/releases/amd64/autobuilds/current-install-amd64-minimal/install-amd64-minimal-20170209.iso

Grave em um pen drive, ou em um cd e dê boot.

Particionamento de Discos:

Partindo para a partição dos discos, utilizando LUKS e LVM.

Utilizaremos o FDISK:

# fdisk /dev/sda
# selecione a tecla “o” para partição MBR
# selecione a tecla “n” para criação de uma nova partição
# selecione a tecla “p” para escolher o tipo primário da partição
# selecione o número “1” para que você crie a primeira partição

Em First Sector você apenas apertará enter.
Em Last Sector você irá definir o tamanho da partição.

Por exemplo, a primeira partição é a reservada do GRUB. (Não necessita mais do que 3 MB)

Em Last Sector defina “+3M”

Pronto a partição foi criada! Agora defina o Hex Code com a tecla T e digite “ef” (Não se preocupe caso não possua UEFI, não estamos focando em instalação UEFI.)

Pronto! A primeira partição foi criada com sucesso. Agora vamos repetir o processo alterando somente alguns detalhes.

# selecione a tecla “n” para criação de uma nova partição
# selecione a tecla “p” para escolher o tipo primário da partição
# selecione o número “2” para que você crie a segunda partição

Em First Sector você apenas apertará enter.
Em Last Sector você vai definir o tamanho da partição.

Por exemplo, a segunda partição é a unidade BOOT. Defina não mais que 512MB.

Em Last Sector defina “+512M”

Nesta não será necessário definir o Hex Code, apenas deixe como está.

Pronto! A segunda partição foi criada com sucesso. Agora vamos repetir novamente o processo alterando somente alguns detalhes.

# selecione a tecla “n” para criação de uma nova partição
# selecione a tecla “p” para escolher o tipo primário da partição
# selecione o número “3” para que você crie a terceira partição

Em First Sector você apenas apertará enter.
Em Last Sector você vai definir o tamanho da partição.

Por exemplo, a terceira partição é o restante do disco.

Só aperte enter, tanto em First Sector quanto em Last Sector. Não precisa definir Hex code.

Finalizando, aperte “w” para que o processo seja escrito em seu disco e salvo!

Encriptação do Disco:

Utilizaremos o software Cryptsetup.

# cryptsetup -v -y -c aes-xts-plain64 -s 512 -h sha512 -i 5000 –use-random luksFormat /dev/sda3

Observe que é uma criptografia forte. Seguindo, você verá uma mensagem perguntando se você tem certeza disto. Digite “YES” (TUDO MAIÚSCULO) e dê enter.

Passo seguinte vai pedir uma senha, escolha uma e defina. Após isso, confirme-a. (Se recorde de anotar em um papel, caso você perca a senha, você também irá perder a unidade por completa.)

Mexa o cursor para que o processo de gerar chave vá mais rápido e aguarde o término.

Confira:

# cryptsetup luksDump /dev/sda3

Caso visualize as informações, como Versão, Cipher Name e afins.. está tudo ok para prosseguir!

Vamos abrir a unidade e definir um nome para ela!

# cryptsetup luksOpen /dev/sda3 zilion (altere para um nickname de sua autoria)

Digite a senha definida anteriormente e aguarde.
OBS: Se visualizar alguma mensagem de “device or resource busy” ignore, isso não afetará em nada o nosso processo.

Criação das partições LVM:

Nesta parte iremos criar o volume físico.

# pvcreate /dev/mapper/zilion (altere para o nick que escolheu anteriormente)

Veja ele criado:

# pvdisplay

Crie o grupo do volume. Deixe o nome como Gentoo.

# vgcreate gentoo /dev/mapper/zilion

Para visualizar:

# vgdisplay

Criando o volume SWAP:

# lvcreate -C y -L 2GB gentoo -n lvolswap

Criando o volume Root:

# lvcreate -L 100GB GENTOO -n lvolroot

Criando o volume HOME.

# lvcreate -l +100%FREE gentoo -n lvolhome

Certifique-se de executar os seguintes comandos abaixo:

# lvdisplay
# vgscan
# vgchange -ay

Formatação das partições:

Utilizaremos EXT4 em todas unidades (fora swap, obviamente.)

Formatando a partição Boot:

# mkfs.ext4 /dev/sda2

Formatando a partição Swap:

# mkswap /dev/mapper/gentoo-lvolswap

Formatando a partição root.

# mkfs.ext4 /dev/mapper/gentoo-lvolroot

Formatando a partição home.

# mkfs.ext4 /dev/mapper/gentoo-lvolhome

Montando as partições :

# swapon /dev/mapper/gentoo-lvolswap
# mount /dev/mapper/gentoo-lvolroot /mnt/gentoo

Caso não exista, crie a pasta BOOT!

# mkdir /mnt/gentoo/boot

E monte-o!

# mount /dev/sda2 /mnt/gentoo/boot/

Crie a unidade home, também!

# mkdir /mnt/gentoo/home

E monte-o!

# mount /dev/mapper/gentoo-lvolhome /mnt/gentoo/home

Veja tudo montado com o comando:

# lsblk /dev/sda

Mudando de ambiente:

# cd /mnt/gentoo

Veja se a data e o horário estão corretos! Isso é muito importante, porém geralmente está correto.

# date

Caso não esteja, defina manualmente

# date 021116582017

Para entender melhor, a ordem é a seguinte: MES / DIA / HORÁRIO / ANO

Continuando…

Baixe a base do sistema. Lembrando que nossa instalação é a HARDENED!

Execute o seguinte, no terminal:

# links https://www.gentoo.org/downloads/mirrors / Selecione BR e abra o servidor da UFPR.

> Relesases
> amd64
> autobuilds
> current-stage3-amd64-hardened

Baixe o stage3 mais recente, por exemplo, hoje estamos em fevereiro:

“stage3-amd64-hardened-20170209.tar.bz2”

Após ter baixado, descompacte-o.

# tar xvjpf stage3-amd64-hardened-20170209.tar.bz2 –xattrs

Agora vamos configurar o make.conf

Para facilitar a vida de vocês, eu vou deixar um pronto, conforme você for adquirindo mais conhecimento, você poderá definir as suas próprias configurações.

> Visualize aqui: make.conf

# nano -w /mnt/gentoo/etc/portage/make.conf

Exclua todas as linhas e digite tudo que está no make em que eu disponibilizei! Salve com CTRL + O e dê enter.

Após isso, vamos dar continuidade. Siga com estas instruções.

# cp -L /etc/resolv.conf /mnt/gentoo/etc/

# mount -t proc proc /mnt/gentoo/proc
# mount –rbind /sys /mnt/gentoo/sys
# mount –rbind /dev/ mnt/gentoo/dev

Agora entre no seu sistema!

# chroot /mnt/gentoo /bin/bash && source /etc/profile && export PS1=”(chroot) $PS1″

Configurando o novo sistema:

Sincronize a árvore de pacotes:

# emerge-webrsync && emerge –sync

Defina o fuso horário (Modifique de acordo com sua cidade.) Veja todas em: /usr/share/zoneinfo/

# echo “America/Sao_Paulo” > /etc/timezone

# emerge –config sys-libs/timezone-data

Defina a localidade:

# nano -w /etc/locale.gen (Caso queira utilizar pt-br, basta digitar: pt_BR.UTF-8″

Gere as localidades

# locale-gen

Selecione a localidade corretamente:

# eselect locale list ( para visualizar )
# eselect locale set ( defina com o número da localidade correta )

Atualize o profile!

# env-update && source /etc/profile && export PS1=”(chroot) $PS1″

Defina o layout do seu teclado

# nano -w /etc/conf.d/keymaps

Defina o hostname do seu Gentoo

# nano -w /etc/conf.d/hostname

Atualizando o novo sistema:

# emerge –ask –update –newuse –deep @world
Obs: Caso tenha problema com o pacote busybox, basta criar o seguinte:
# echo “sys-apps/busybox -static” >> /etc/portage/package.use/busybox

Compilando o Kernel:

Instale o Kernel Hardened junto com o genkernel e o linux-firmware. Lembrando que o genkernel é o que irá compilar o seu kernel.

# emerge –ask hardened-sources genkernel linux-firmware

Certifique-se de que tenha o cryptsetup instalado

# emerge –ask cryptsetup

Agora vamos compilar o kernel, com Genkernel!

# genkernel –menuconfig –save-config –lvm –luks all

Habilitando o GRSecurity no Kernel:

Já no menuconfig do Kernel, vá até Security Options, entre em Grsecurity e logo em seguida aperte espaço para selecionar Grsecurity. Em configuration Method, marque como Automatic, em Usage Type marque como Desktop, Em Required Priorities selecione Security. Lembrando que é a barra de espaço que seleciona as opções! Pronto, GRSecurity habilitado. dê um save, selecionando com o TAB, e após saia no Exit. Aguarde compilar e prosseguiremos na configuração.

Configurando o FSTAB:

# nano -w /etc/fstab

O seu FSTAB deverá ficar assim:

/dev/sda2 /boot ext4 noauto,noatime 1 2
/dev/mapper/gentoo-lvolroot / ext4 noatime 0 1
/dev/mapper/gentoo-lvolswap none swap sw 0 0
/dev/mapper/gentoo-lvolhome /home ext4 noatime 0 2

Pronto! Salve e feche.

Instalando e Configurando o GRUB:

Precisamos adicionar umas opções a mais no pacote, então utilizaremos um software que o próprio gentoo dispõe chamado “flaggie”.

# emerge –ask flaggie

Após ter instalado com sucesso, vamos setar umas configurações no pacote do grub.

# flaggie sys-boot/grub +mount +device-mapper

Agora sim podemos instalar!

# emerge –ask grub:2

Antes de terminar, precisamos configurar o GRUB.

# nano -w /etc/default/grub

Logo de cara você vai visualizar “GRUB_CMDLINE_LINUX=””” E é nisso que iremos mexer! O seu deve ficar assim:

GRUB_PRELOAD_MODULES=lvm
GRUB_CRYPTODISK_ENABLE=y
GRUB_DEVICE=/dev/ram0
GRUB_CMDLINE_LINUX=”real_root=/dev/mapper/gentoo-lvolroot crypt_root=/dev/sda3 dolvm”

Não se esqueça de remover o “#”. Salve e feche-o.

Prosseguindo… vamos instalar!

# grub-install –modules=”linux crypto search_fs_uuid luks lvm” –recheck /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg

Adicionando os serviços inicializáveis:

# rc-update add lvm boot
# rc-update add consolekit default

Instalação da Rede:

# emerge –ask dhcpcd
# rc-update add dhcpcd default

Configuração do Root :

Defina a senha do root:

# passwd

Configuração de Usuários:

# useradd -m -G users,wheel,audio -s /bin/bash nomedousuario
# passwd nomedousuario

Limpando a Instalação:

# rm /stage3 (aperte tab para completar.)

Pronto! Gentoo Instalado com sucesso. Agora reinicie a máquina e instale o Xorg e o DE de sua preferência.

Bem-vindo ao universo Gentoo.

Tutorial por: Zilion Web

Anúncios

Por que escolhi GNU/Linux ?

De primeiro eu até pensei colocar o título desta publicação como: “Por que é importante amantes de T.I utilizarem Linux”, mas repensei e preferi tornar esta publicação mais pessoal, sendo a minha própria opinião e história.

Por que escolhi GNU/Linux, ou porque escolher Linux como sistema operacional principal ?
Você pode ter uma opinião diferente da minha, mas não pode discordar: No ambiente GNU/Linux somos forçados àprender diversas coisas. O que acaba tornando tudo maravilhoso. No GNU/Linux temos uma visão mais ampla e limpa de tudo! Por ser tratar de “Open Source” ninguém pode te esconder nada!
Eu gosto de dizer que o GNU/Linux simplesmente joga tudo na sua cara, independente de quem você seja e do que você esteja utilizando / fazendo. Se houver um error, você verá. Se não houver um error, você verá. Você tem tudo em suas mãos, você é quem comanda tudo (Uma sensação de poder maravilhosa, diga-se de passagem). Digo por experiência própria que mesmo você sendo um leigo, mas antes de tudo, um amante de T.I, você conseguirá dominar o GNU/Linux. Se você for uma pessoa curiosa, que gosta de saber o porque de tudo, gosta de pesquisar e de ir atrás de informações relevantes, eu digo: GNU/Linux é sim para você!

Não estou querendo desmerecer outros sistemas, como Windows, são propósitos diferentes. Exatamente por esse motivo eu restrinjo a postagem para “Amantes de T.I”, pois acredito que tornar geral possa ser mais complicado, visto que muitas pessoas não se interessam pela parte do Sistema Operacional.

A partir de uma visão pessoal:

Eu sempre me entendiava fácil, e de alguns anos pra cá, eu já tinha perdido completamente o tesão em jogar jogos online. (O último que me viciou foi Diablo 3, em 2012). Logo pensei em ir atrás de coisas diferentes, que chamassem a minha atenção. Desde muito novo eu tenho acesso à computadores (Desdes os 2 anos de idade talvez). Sim eu já nasci com um PC com internet discada em casa. Enfim, eis que conheço uma palavra chamada “Deep Web”, em 2013. E a partir daí é só história, logo em seguida conheci o GNU/Linux e não parei mais. Vi muitos desafios pela frente, tive DIVERSAS dificuldades com o GNU/Linux, sendo que meu antigo computador não rodava muito bem as distros GNU/Linux. A única que rodava era o Debian 7 com algumas alterações no boot. Fiquei completamente surpreendido com o ganho de desempenho e também pelo mundo novo em que eu estava entrando. Era simplesmente fantástico. Ao decorrer do tempo fui adquirindo conhecimento, correndo atrás de informação, descobrindo que a maioria do conteúdo em pt-BR é ruim e desatualizado, que eu tinha que me basear em conteúdos em inglês por serem de maior confiança.
Ao passar do tempo, lendo wikis, artigos e diversas coisas, já estando com um computador diferente e que rodava outras distros com facilidade, fui para o Arch Linux, onde conheci um mundo mais fantástico ainda, principalmente sua Wiki que é ALTAMENTE RECOMENDADA. E claro, o AUR que é uma belezinha. No Arch Linux a história era diferente, pois não existe um instalador GUI, você monta o sistema do zero, a partir da linha de comando *CLI. Então aí você imagina quantas vezes eu errei para acertar um dia, né?! Mas eu sempre gostei de desafios e nunca desisti deles (por mais que desanimava várias e várias vezes), até que um dia eu consegui e logo em seguida acabei dominando.
Tempos do epois conheci a distro Gentoo Linux, era outro desafio, pois a sua estrutura era completamente diferente. Porém tinha a mesma história do Arch Linux, instalar do zero, na linha de comando. Partições, Localidade, Kernel, Gerenciador de Boot, dentre uma infinidade de coisas que constitui um sistema GNU/Linux. Minhas primeiras tentativas também foram um fiasco. Eu até conseguia instalar o sistema mas sempre dava algum problema no final. E vale ressaltar que uma instalação do Gentoo Linux demora de 8 à 12 horas completas. Por se tratar de uma distro source-to-compile, ela compila todos os pacotes do seu código fonte, se adequando melhor em seu sistema.
E foi cada problema enfrentado no Gentoo… se detalhar acaba se tornando um livro. Mas é claro que após um LONGO tempo eu consegui obter êxito, e o meu gosto foi tanto, que acabou se transformando na distro que eu mais uso e gosto! Pela sua história, pela sua comunidade, que é fantástica, pela forma que aborda os pacotes (você pode customizar use-flags, tornando cada pacote MUITO mais flexível)… Enfim, são muuuuitas coisas!

E para finalizar, eu posso garantir que 50% do meu conhecimento GERAL em T.I é graças ao GNU/Linux. Se eu não conhecesse e não buscasse por informação e novos desafios, com certeza eu não teria propriedade para ser um amante de T.I ou qualquer coisa da área.

Se você busca desafios, conhecimento e é um pouco preguiçoso assim como eu, o GNU/Linux irá te ajudar dando um empurrãozinho. Acredite, ele fará você correr atrás de novas informações, seja para corrigir algum bug, ou para ler algum artigo interessante que gere mais conhecimento para você mesmo.