Estudo Linux 002: Protegendo o Menu do GRUB com Senha

Atenção: Alterar o GRUB pode fazer com que seu computador não inicie. Portando, use uma máquina virtual para teste, de preferência!

No artigo anterior falamos sobre o processo de inicialização do Linux: boot e startup.

O boot começa no momento em que apertamos o botão power para ligar o pc até a fase em que o kernel lança/inicia o systemd(gerenciador de sistema de serviços).

O startup tem seu início logo assim que o systemd é executado pelo kernel e termina quando o sistema operacional estiver pronto para ser usado.

Hoje vamos falar do GRUB que é um bootloader. Há vários bootloaders e o GRUB2 é o mais famoso deles e está presente na maioria dos computadores derivados do UNIX.

O Windows da microsoft também tem comportamento semelhante a esse processo de inicialização do Linux. O BootLoader do Windows é o BOOTMGR e a ferramenta para sua edição é o BCD.

 

Na imagem acima o processo de boot abrange as etadas “bios, MBR, bootloader(GRUB 🙂 ) e kernel“. A etapa de startup engloba as etapas “systemd e target“.

O GRUB2, versão 2, é oficialmente chamado apenas de GRUB e a versão anterior, que era conhecida apenas como GRUB, ficou renomeada oficialmente de “GRUB LEGACY”. Legacy no sentido de Legado/antigo.

Aqui iremos tratar apenas do GRUB versão 2, não iremos falar sobre a versão antiga.

Menu do GRUB

Ao ligarmos o computador, às vezes, surge a tela de configuração do GRUB; chamada também de Menu do GRUB.

Como dito acima, essa tela nem sempre aparece. Para  fazê-la sempre surgir fique teclando a tecla Shift logo assim que apertar o botão power para ligar o pc.

O GRUB também gerencia o famigerado dual boot. Dual boot é quando instalamos dois sistemas operacionais lado a lado e ao ligarmos o pc nos é apresentada a tela para escolhermos qual desses sistemas operacionais queremos que incie. Podemos instalar lado a lado quaquer Sistema Operacional e pode ser Windows e Linux, Windows 10 e Windows 7 etc…

Abaixo tenho dual boot com Ubuntu e Porteus.

Acima, podemos teclar seta para cima ou para baixo para selecionar qual Sistema Operacional desejamos que inicie e teclar Enter para iniciá-lo. Também podemos teclar “e” para entrarmos na configuração do grub  do Sistema selecionado ou teclarmos “c” para entrarmos em um mini ambiente de linha de comandos do GRUB.

Deixei selecionado “Ubuntu” e teclei “e” e abriu a tela abaixo

Obs.: Todas as configurações feitas aqui são apagadas após o segundo reinício do computador.

obs.: Se fizer qualquer alteração e quiser salvar tecle “Control + x” ou “F10”. Se não quiser salvar tecle “ESC” para descartar alterações.

realcei em amarelo  a linha “linux….” que aponta para o kernel em “/boot/vmlinuz..” e marquei de azul “initrd” que aponta para memória de disco(initial ram disc). Tanto esse kernel vmlinuz-4.15.0-112-generic quanto o initrd pertencem ao Ubuntu que selecionei.

Teclei ESC para retornar para tela anterior sem salvar e em seguida cliquei selecionei Porteus e cliquei “e” para entrar nas configurações do GRUB que apota para ele. O arquivo abaixo eu quem criei, por isso ele está mais enxuto, com poucas linhas:

 

Obs.: Todas as configurações feitas aqui são apagadas após o segundo reinício do computador.

obs.: Se fizer qualquer alteração e quiser salvar tecle “Control + x” ou “F10”. Se não quiser salvar tecle “ESC” para descartar alterações.

Protegendo o Acesso ao Menu do GRUB com Senha

Percebeu que qualquer pessoa que tenha acesso físico ao seu computador pode acesse essas configurações do GRUB?

Sabe qual o pior de tudo? Se digitarmos “rw init=/bin/bash” ao final da linha “linux vmlinuz….” o sistema iniciará em modo linha de comando com acesso total, root! Terá acesso aos seus arquivos, poderá alterar a senha de qualquer usuário….

Ao digitar “rw init=/bin/bash”, conforme realçado de vermelho acima, bastaria teclar F10 para salvar e iniciar o bash para linha de comando com acesso a tudo no pc!

Importante: Ao configurar uma senha o sistema, automaticamente, sempre irá solicitá-la ao iniciar o computador!

Vamos proteger com senha?

  1. Inicie o Sistema Operacional normalmente. No meu caso iniciei o Ubuntu mesmo. Que na verdade é Xubuntu 🙂
  2. Use o comando grub-mkpasswd-pbkdf2 ou  grub2-mkpasswd-pbkdf2 para criar uma senha. Essa senha será convertida hash.
    elder@ubuntu:~$ sudo grub-mkpasswd-pbkdf2 
    Digite a senha: 
    Redigite a senha: 
    O hash PBKDF2 da sua senha é grub.pbkdf2.sha512.10000.D0BC71F0...
    
  3. Abra o arquivo “/etc/grub.d/40_custom”. Usei o vim para editar o arquivo, mas poderia usar qualquer outro editor, como o nano, por exemplo.
    elder@ubuntu:~$ sudo vim /etc/grub.d/40_custom

    Ao final do arquivo, digite

    set superusers=”root”
    password_pbkdf2 root seu_Hash_AQUI

    O meu ficou assim

    set superusers="root"
    password_pbkdf2 root grub.pbkdf2.sha512.10000.D0BC...
  4. Salve as alterações e saia do editor de texto. No caso do vim, para salvar e sair basta: teclar “ESC”, digitar “:x” e teclar enter.
  5. Execute o comando “grub-mkconfig -o /boot/grub/grub.cfg” para aplicar as alterações do GRUB. lembrando que em alguns casos  grub-mkconfig pode ser grub2-mkconfig.
    elder@ubuntu:~$ sudo grub-mkconfig -o /boot/grub/grub.cfg
  6. reinicie o computador. Digite o usuário(root) e a senha.

 

Conclusão

Que legal!!! Aprendemos como proteger o Menu do GRUB com senha. Isso é muito importante e uma segurança extra.

 

Fontes: opensuse.org, gnu.org

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

One Comment to “Estudo Linux 002: Protegendo o Menu do GRUB com Senha”

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *