Instalação do Ubuntu com Criptografia Total
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.
Descrição
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.
#!/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"
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?