Protegendo o GRUB (Bootloader)
Um grande fato é que a maior parte das distros Linux utilizam o GRUB como gerenciador de boot (bootloader) padrão, e esta solução também pode fornecer recursos úteis.
No Debian, Ubuntu e seus derivados, por exemplo, está disponível o acesso ao modo de recuperação do GRUB, o que também permite o acesso ao sistema como root sem saber a senha.
Isso mesmo, através do GRUB conseguimos editar o boot pressionando a tecla [e] e alterar alguns parâmetros para editar a senha do super usuário root ou qualquer outro usuário.
O grande risco de deixar o GRUB vulnerável (editável) é que muitos recursos poderiam ser usados, por exemplo, é possível mudar credenciais, criar novos usuários, criar e habilitar backdoors, etc.
Se ainda não compreendeu, basta simplificar assim: GRUB desprotegido é o mesmo que liberar acesso completo root ao seu PC.
Uma outra forma de manter bloqueado o acesso não autorizado ao seu sistema, quando o GRUB estiver desprotegido, é criptografando o disco inteiro (o que deverá ser feito durante o processo de formatação e instalação do sistema). Mas, considerando que não tenha feito isto, vamos ao procedimento de colocar uma senha em seu bootloader.
Configurando o GRUB com Senha (Debian, Ubuntu e derivados)
Execute o comando abaixo para criar a senha que será usada, certifique-se que esteja logado no terminal com o usuário root, ou utilize o comando “sudo” antes dos comandos abaixo:
grub-mkpasswd-pbkdf2
O comando terá uma saída semelhante a imagem abaixo:
Selecione e copie todo o conteúdo restante após “PBKDF2 hash of your password is”. Neste exemplo, o será o conteúdo “grub.pbkdf2.sha512…”.
Com as linhas copiadas, agora vamos editar o arquivo de configuração do GRUB. Você pode abrir com seu editor preferido (no meu caso, utilizei o VIM):
vim /etc/grub.d/40_custom
Com o arquivo aberto, adicione o conteúdo abaixo no final dele:
set superusers="SEUUSUÁRIO" password_pbkdf2 SEUUSUÁRIO AQUIAHASHGERADA
Substitua SEUUSUÁRIO por algum de sua preferência. O usuário pode ser qualquer um que quiser, ou seja, não precisa ser algum que já exista. Porém, é aconselhável utilizar “nomes” de usuários que você saiba que já existam, assim será mais fácil lembrar (caso venha a esquecê-los). Neste caso irei colocar o admin.
set superusers="admin" password_pbkdf2 admin AQUIAHASHGERADA
Depois, substitua AQUIAHASHGERADA pelo conteúdo copiado após a execução do primeiro comando, algo semelhante à grub.pbkdf2.sha512.xxx. Observe o resultado final:
set superusers="admin" password_pbkdf2 admin grub.pbkdf2.sha512.10000.A830772D6BA9D7292DF9D91B3376FDE6DE98C9BC0738F3E544575A256F653E62425864539164696D9D6D90D876C2BFFC5BEA263DFEE0BD3BC5D2CCB7A2C8608C.6C17EEF048EE138D5279A182835DE2E9A09AEB31573E9CA8786D8DFDE1668672DF6E1BB12E99A07ED268EA07924ED720052F64FA36DCAF8C30E34579B36E62A5
Agora vamos reconfigurar o GRUB com as nossas alterações e depois reiniciar para conferir o resultado:
grub-mkconfig -o /boot/grub/grub.cfg reboot
Observe que logo no início, durante o boot do sistema, uma senha será SEMPRE solicitada.
Este processo pode ser muito bom, mas também é exaustivo, haja vista que você já tem uma senha na hora de iniciar a área de trabalho. Portanto, se assim preferir, você pode filtrar a proteção do GRUB e restringir a senha apenas para edições e alterações do bootloader, durante seu carregamento.
Configurando o GRUB2 com Senha (RHEL, CentOS e derivados)
Em ambientes Red-hat-based, podemos executar alguns passos bem semelhantes ao método de configuração em Debian-based, porém há um comando que torna este procedimento mais simples. Certifique-se que esteja logado no terminal com o usuário root, ou utilize o comando “sudo” antes dos comandos abaixo:
grub2-setpassword
Agora vamos editar o nome do usuário que será solicitado quando for realizado o boot do sistema ou edição de alguma entrada do GRUB. O nome do usuário padrão é root. Mas, o usuário pode ser qualquer um que quiser, ou seja, não precisa ser algum que já exista. É aconselhável utilizar “nomes” de usuários que você saiba que já existam, assim será mais fácil lembrar (caso venha a esquecê-los). Neste caso irei colocar o admin.
Caso deseje manter o usuário padrão (root), então pule este comando. Caso positivo execute o comando abaixo e substitua “admin” pelo nome de sua preferência:
sed -i "s/root/admin/g" /etc/grub.d/01_users
O comando acima procura no arquivo “/etc/grub.d/01_users” todas as ocorrências da palavra “root” e substitui pela palavra “admin”.
Por fim, vamos validar as mudanças atualizando os arquivos de configuração do GRUB.
Nas máquinas baseadas em BIOS, execute o comando abaixo:
grub2-mkconfig -o /boot/grub2/grub.cfg reboot
Em máquinas baseadas em UEFI, execute o seguinte comando como root:
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg reboot
Como minha máquina é baseada em BIOS irei executar o primeiro comando para reconfigurar o GRUB2. O resultado será algo semelhante a imagem abaixo:
Restringindo a senha apenas para edição do GRUB
Para restringir o uso da senha apenas em caso de tentativa de edição, uso do modo de recuperação ou modo avançado do GRUB, iremos acrescentar o parâmetro “–unrestricted” em algumas linhas específicas do arquivo “/etc/grub.d/10_linux“.
cp /etc/grub.d/10_linux /etc/grub.d/10_linux_backup sed -i "s/grub_quote)' \${CLASS}/grub_quote)' --unrestricted \${CLASS}/g" /etc/grub.d/10_linux
Por fim atualize o GRUB e reinicie o sistema para conferir o resultado.
Em distribuições Debian, Ubuntu e derivados execute:
update-grub reboot
Em distribuições RHEL, CentOS, Fedora e derivados, execute conforme o modelo de firmware indicado abaixo.
Nas máquinas baseadas em BIOS, execute o comando abaixo:
grub2-mkconfig -o /boot/grub2/grub.cfg reboot
Em máquinas baseadas em UEFI, execute o seguinte comando como root:
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg reboot
Após reiniciar o PC, irá perceber que o GRUB não solicitou mais senha durante o boot do sistema. Porém, se alguém tentar editar alguma informação do bootloader, a senha será solicitada. Faça você mesmo o teste e confira o resultado.
Desativando a senha do GRUB (Debian, Ubuntu e derivados)
Caso você queira reverter o procedimento e deixar o GRUB sem senha mesmo, basta excluir as linhas do arquivo de configuração (/etc/grub.d/40_custom), limpar o parâmetro “–unrestricted” (/etc/grub.d/10_linux) e em seguida executar os comandos para atualizar as configurações do GRUB.
Desativando a senha do GRUB2 (RHEL, CentOS e derivados)
Caso você queira reverter o procedimento e deixar o GRUB2 sem senha mesmo, basta excluir o arquivo “/boot/grub2/user.cfg” (ou movê-lo), limpar o parâmetro “–unrestricted” (/etc/grub.d/10_linux) e em seguida executar os comandos para atualizar as configurações do GRUB2 e reiniciar a máquina.
Vamos aos comandos:
mv /boot/grub2/user.cfg.old sed -i "s/\ --unrestricted//g" /etc/grub.d/10_linux
Nas máquinas baseadas em BIOS, execute o comando abaixo:
grub2-mkconfig -o /boot/grub2/grub.cfg reboot
Em máquinas baseadas em UEFI, execute o seguinte comando como root:
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg reboot
Esse artigo foi retirado desse desse site.
Esse artigo foi útil? Colabore com o nosso site para podermos continuar dando mais dicas como essa!
Formas de doação:
- Boleto / Cartão de crédito: https//bit.ly/AprendendoLinux
- Pix: [email protected]
- PicPay: @henrique_fagundes
- PayPal: [email protected]
- Bitcoin: bc1qtnn5z058htzy799dslwrpjcdpm0vuta3vrj28l
Favorecido: Luiz Henrique Marques Fagundes