Protegendo o GRUB com senha

O GRUB (GRand Unifield Bootloader) por padrão carrega diretamente o sistema e permite alteração em suas configurações de inicialização. Esta característica torna tudo mais prático mas por outro lado abre uma brecha para pessoas má intencionadas digitarem comandos e até mesmo alterarem a senha de root.
Para proteger o sistema de alterações indevidas é possível configurar o GRUB para solicitar senha. Mas não esqueça de configurar também a bios ou uefi da máquina, caso contrário se o usuário puder acessar as configurações de boot do dispositivo a proteção do GRUB irá por água abaixo. Pois carregar o sistema através de uma mídia permite que alterações e estragos sejam feitos no sistema residente.

Veremos a seguir duas maneiras principais de proteger o GRUB.

Proteção do menu GRUB
Se você quiser proteger o sistema antes do carregamento e evitar o uso da linha de comando é possível adicionar usuário/senha a um arquivo de configuração do GRUB.

Para isso gere uma hash usando o algoritimo pbkdf2 através do seguinte comando:

$ grub-mkpasswd-pbkdf2
[…] Your PBKDF2 is grub.pbkdf2.sha512.10000.hashcriptografada

Então, adicione a hash gerada ao arquivo /etc/grub.d/40_custom:

set superusers=”usuario”
password_pbkdf2 usuario grub.pbkdf2.sha512.10000.hashcriptografada

Agora, reconstrua suas entradas do GRUB:

$ sudo grub-mkconfig -o /boot/grub/grub.cfg

Pronto! Agora o GRUB solicitará senha para carregar o sistema e para permitir acesso ao menu de configuração.

Protegendo o GRUB somente contra edições e opções de console
Esta opção permite que o sistema carregue sem pedir senha, mas impede que alterações sejam feitas no menu de configurações impedindo, assim, que o usuário digite comandos indesejados e invoque um shell, por exemplo.

Faça o procedimento da etapa acima, gerando a hash e adicionando-a ao /etc/grub.d/40_custom. Abra o arquivo /etc/grub.d/10_linux e adicione a opção “–unrestricted” à variável “CLASS”.

$ sudo vi /etc/grub.d/10_linux

Procure pela variável “CLASS” (que deve estar no início do arquivo) escrita da seguinte forma:

CLASS=”–class gnu-linux –class gnu –class os”

Adicione “–unrestricted”:

CLASS=”–unrestricted –class gnu-linux –class gnu –class os”

Reconstrua o GRUB:

$ sudo grub-mkconfig -o /boot/grub/grub.cfg

Pronto! O sistema carregará sem pedir senha mas o acesso ao console do GRUB e seus parâmetros estarão restritos.

Para saber mais:

Proteger GRUB com password - Arch Wiki
Ubuntu - GRUB2

Procurar no blog: