Instalação do Ubuntu com Criptografia Total

Publicado por Daniel R. (última atualização em 03/03/2020)

[ Hits: 1.423 ]

Homepage: danrtavares.blogspot.com

Download ucryptinstallbr




Esse script irá te ajudar a instalar o Ubuntu (e seus derivados) com criptografia total. Ao contrário da opção original da instalação do Ubuntu, nesta você pode ter várias outras partições com ou sem criptografia, além de poder escolher o sistema de arquivo utilizado.

  



Esconder código-fonte

#!/bin/bash
#Versao: 0.1b

################################################################################
#Este script te ajuda a instalar o Ubuntu e seus derivados com criptografia
#total
#
#1º Use o gparted e defina 2 partições uma para o boot e outra que será
#criptografada, pode haver outras que serão ignoradas.
#
#2º Entre no shell e baixe este script: wget http://bit.ly/ucryptinstallbr
#
#3º Entre como root: "sudo su" ou "sudo -i"
#
#4º Rode este script: source ucryptinstallbr
#
#5º Siga as instruções posteriores
################################################################################

################################################################################
#Definicao de variaveis
################################################################################

#Define a particao de boot
pboot=/dev/sda1

#Define a particao a ser criptografada
pcrypt=/dev/sda2

#Define a cifra, pode ser: twofish, aes, serpent
#Para saber qual a melhor execute: cryptsetup benchmark
ciph=twofish

#Define o tamanho do swap
swap=1G

################################################################################

#Criptografar
pwf=$(mktemp) pwf2=$(mktemp)
chmod 600 "$pwf" "$pwf2"
while [[ ! -s "$pwf" ]]
do
   /lib/cryptsetup/askpass "Defina a senha de criptografia:" >"$pwf"
   echo
   if [[ -s "$pwf" ]]
   then
      /lib/cryptsetup/askpass "Confirme a senha:" >"$pwf2"
      echo
      diff -q --label $'\b\b\b\b\b\b\b\bPrimeira' "$pwf" \
            --label "segunda senha" "$pwf2" || shred -u "$pwf"
      shred -u "$pwf2"
   else
      echo -e "Senha em branco nao!\n"
   fi
done

cryptsetup luksFormat -c "$ciph"-xts-plain64 -s 512 -h sha512 -i 5000 -y "$pcrypt" --key-file "$pwf"
cryptsetup luksOpen "$pcrypt" crypt --key-file "$pwf"

#Criar as lv
pvcreate /dev/mapper/crypt
vgcreate local /dev/mapper/crypt
lvcreate -L "$swap" -n swap local
lvcreate -l 100%FREE -n root local
mkswap -f /dev/mapper/local-swap

#Primeira parte completa, segue com a instalacao
clear
echo "Agora inicie o programa de instalacao"
echo "Escolha avancado na tela do local de instalacao"
echo "Defina o local-root como root (/), formate como preferir"
echo "Defina o $pboot como boot (/boot), formate como preferir"
echo "Defina a instalação do grub para o dispositivo das particoes (ex: /dev/sda)"
echo "Nao feche a janela do shell!"
echo "Antes de ir em frente na tela que define o usuário,"
read -p "Aperte Enter para continuar o script"

#Continua a segunda parte e finaliza a instalacao
UUID=$(blkid -s UUID -o value "$pcrypt")
echo "crypt UUID=$UUID none luks,retry=3,lvm=local" >> /target/etc/crypttab
echo "Agora pode continuar a instalacao e fechar este shell"

Scripts recomendados

Administração básica de usuários no MySQL

Enviar mensagem para os terminais ltsp

Script para instalar e configurar o samba no Damn Small Linux

Procura Arquivos

SSH - Detecta ataque por brute force e bloqueia o IP do atacante.


  

Comentários
[1] Comentário enviado por victorscandeira em 08/08/2020 - 15:22h

Salve, Daniel. Tudo bom? Cara, primeiramente agradecer seu script e o seu video, eles foram de grande ajuda quando eu já estava bem perdido com os erros que estava obtendo tentando a instalação com criptografia e particionamento manual pelo instalador do Ubuntu. Mas vamos ao problema...

Estou instalando Ubuntu 20.04 numa máquina com windows, dual boot. Minha demanda é que o Ubuntu seja criptografado e, no meu caso, eu preciso de partição root e home separadas, porque a primeira ficará no meu SSD e a segunda no meu HD. Eu sei, um porre colocar duas senhas de criptografia e talz, mas to de boas com isso. Daí peguei seu script e fiz a adaptação abaixo. Depois de algumas tentativas e erros, cheguei nessa versão que rodou tudo certinho e concluiu a instalação, depois disso meu pc reconheceu o GRUB bonitinho, mas quando eu seleciono o Ubuntu o pc vai para uma tela preta onde posso inserir alguns comandos. Acho que a tela do GRUB ou algo assim. Não pede a senha dos meus discos criptografados nem abre o sistema. Pode me ajudar a identificar onde estou errando?

#!/bin/bash
#Versao: 0.2b

################################################################################
#Este script te ajuda a instalar o Ubuntu e seus derivados com criptografia
#total!
#
#1º Use o gparted e defina 3 partições:
# uma para o '/boot';
# outra criptografada para '/' ou root, nela será criada, também, a swap; e
# outra criptografada para '/home'
#
#2º Entre no shell e baixe este script: wget http://bit.ly/ucryptinstallbr
#
#3º Entre como root: "sudo su" ou "sudo -i"
#
#4º Rode este script: source ucryptinstallbr_adaptado
#
#5º Siga as instruções posteriores
################################################################################

################################################################################
#Definicao de variaveis
################################################################################

#Define a particao de boot
pboot=/dev/sdc4

#Define as partições a serem criptografadas
pcrypt_root=/dev/sdc5
pcrypt_home=/dev/sda4

#Define a cifra, pode ser: twofish, aes, serpent
#Para saber qual a melhor execute: cryptsetup benchmark
ciph=aes

#Define o tamanho do swap
swap=32G

################################################################################

#Criptografar root
pwr=$(mktemp) pwr2=$(mktemp)
chmod 600 "$pwr" "$pwr2"
while [[ ! -s "$pwr" ]]
do
/lib/cryptsetup/askpass "Defina a senha de criptografia para partição root:" >"$pwr"
echo
if [[ -s "$pwr" ]]
then
/lib/cryptsetup/askpass "Confirme a senha:" >"$pwr2"
echo
diff -q --label $'\b\b\b\b\b\b\b\bPrimeira' "$pwr" \
--label "segunda senha" "$pwr2" || shred -u "$pwr"
shred -u "$pwr2"
else
echo -e "Senha em branco nao!\n"
fi
done

cryptsetup luksFormat -c "$ciph"-xts-plain64 -s 512 -h sha512 -i 5000 -y "$pcrypt_root" --key-file "$pwr"
cryptsetup luksOpen "$pcrypt_root" crypt_root --key-file "$pwr"
#Criar as lv
pvcreate /dev/mapper/crypt_root
vgcreate local /dev/mapper/crypt_root
lvcreate -L "$swap" -n swap local
lvcreate -l 100%FREE -n root local
mkswap -f /dev/mapper/local-swap

#Criptografar home
pwh=$(mktemp) pwh2=$(mktemp)
chmod 600 "$pwh" "$pwh2"
while [[ ! -s "$pwh" ]]
do
/lib/cryptsetup/askpass "Defina a senha de criptografia para partição home:" >"$pwh"
echo
if [[ -s "$pwh" ]]
then
/lib/cryptsetup/askpass "Confirme a senha:" >"$pwh2"
echo
diff -q --label $'\b\b\b\b\b\b\b\bPrimeira' "$pwh" \
--label "segunda senha" "$pwh2" || shred -u "$pwh"
shred -u "$pwh2"
else
echo -e "Senha em branco nao!\n"
fi
done

cryptsetup luksFormat -c "$ciph"-xts-plain64 -s 512 -h sha512 -i 5000 -y "$pcrypt_home" --key-file "$pwh"
cryptsetup luksOpen "$pcrypt_home" crypt_home --key-file "$pwh"
#Criar as lv
pvcreate /dev/mapper/crypt_home
vgcreate local2 /dev/mapper/crypt_home
lvcreate -l 100%FREE -n home local2

#Primeira parte completa, segue com a instalacao
clear
echo "Agora inicie o programa de instalacao"
echo "Escolha avancado na tela do local de instalacao"
echo "Defina o local-root como root (/), formate como preferir"
echo "Defina o local-home como root (/home), formate como preferir"
echo "Defina o $pboot como boot (/boot), formate como preferir"
echo "Defina a instalação do grub para o dispositivo da partição root (ex: /dev/sdc)"
echo "Nao feche a janela do shell!"
echo "Antes de ir em frente na tela que define o usuário,"
read -p "Aperte Enter para continuar o script"

#Continua a segunda parte e finaliza a instalacao
UUID=$(blkid -s UUID -o value "$pcrypt_root")
echo "crypt UUID=$UUID none luks,retry=3,lvm=local" >> /target/etc/crypttab
UUID=$(blkid -s UUID -o value "$pcrypt_home")
echo "crypt UUID=$UUID none luks,retry=3,lvm=local2" >> /target/etc/crypttab
echo "Agora pode continuar a instalacao e fechar este shell"

Fiquei pensando se não seria o caso de criar uma partição EFI, além do /boot. Fiz a tentativa, mas obtive o mesmo resultado. É algum problema na escrita no /target/etc/crypttab?

[2] Comentário enviado por dantavares em 08/08/2020 - 16:42h

Olha, olhando assim por cima eu não consigo saber exatamente onde está o erro, eu teria que rodar isso em uma maquina virtual, mas acho que você está fazendo uma salada ai. Você talvez não tenha entendido que o conceito de "volume" é algo diferente de "partição", enfim acredito que o grande erro ai seja que o lvm "local2" não existe, no caso o lvm "local" foi criado lá no inicio do script no comando lvcreate, e isso está dando erro ao instalador criar a config correta do grub. Aliás, pq ter o root e o home com criptografias diferentes? Acho que você poderia simplesmente criptografar a partição do home e mandar montar esta partição como "/home", e o root deixar sem criptografia.
Aconselho você a estudar melhor como as lvm funcionam, isso servirá de base para criar um script que funcione.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts