Como proteger com senha o menu Grub

9

Como proteger com senha o menu Grub do ro recovery nomodesetcomando Quero onde ninguém, a menos que você tenha a senha, faça alterações no menu para tentar entrar em recuperação.

Randol Albert
fonte
Não está bem claro. Deseja proteger com senha a capacidade de inicializar ou editar a configuração do grub / acessar um console do grub?
Seth
De preferência ambos e você poderia por favor me mostre os comandos em detalhes, eu sou uma espécie de novo para linux
Randol Albert
Existe uma opção para desativar o modo de recuperação no grub, além de fazer com que o grub não apareça (por exemplo, inicialize diretamente em um SO específico que você escolher, ou se você tiver apenas um SO, inicialize sem demora). Você estaria interessado nisso? Deixe-me saber, eu vou postar isso como uma resposta, se você quiser #
Sergiy Kolodyazhnyy

Respostas:

13

O Grub permite proteger com senha sua configuração e console, bem como entradas individuais do sistema operacional. Observe que isso não impedirá indivíduos dedicados, especialmente aqueles que sabem o que estão fazendo. Mas suponho que você saiba disso. Vamos começar.

gerar um hash de senha ..

Você pode armazenar sua senha do grub em texto sem formatação, mas isso é totalmente inseguro e qualquer pessoa que tenha acesso à sua conta poderá descobrir rapidamente. Para evitar isso, hash a senha usando o grub-mkpasswd-pbkdf2comando, da seguinte maneira:

user@host~ % grub-mkpasswd-pbkdf2
Enter password: 
Reenter password: 
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.63553D205CF6E...  

Enquanto você digita sua senha, nenhum caractere será exibido no terminal, para impedir que as pessoas olhem por cima de seus ombros, etc. Agora, copie toda a sua hash com Ctrl+ Shift+ C.

protegendo a configuração, console ..

Corre:

sudo nano /etc/grub.d/40_custom  

Isso criará um novo arquivo de configuração chamado 40_customno diretório de configuração do grub. Agora adicione as linhas:

set superusers="username"  
password_pbkdf2 username hash  

Onde usernameé um nome de usuário de sua escolha e hashé o hash que geramos no último comando. Pressione Ctrl+ Oe depois Ctrl+ Xpara salvar e sair. Corre:

sudo update-grub  

Para finalizar as alterações. Agora, quando alguém tentar editar a configuração do grub ou acessar um console do grub, ele solicitará um nome de usuário e uma senha.

senha protegendo entradas do sistema operacional ..

Atualmente, o único método para conseguir isso é o de editar /boot/grub/grub.cfgmanualmente. Porém, isso é apenas temporário, pois qualquer nova atualização do kernel reescreverá esse arquivo e suas senhas desaparecerão (observe que isso não afeta a senha de console / edição que definimos acima). Todos os outros métodos que encontrei até agora estão extremamente desatualizados e não consigo mais fazê-los funcionar.

Perguntei à lista de discussão do grub se existe um método mais novo e editarei essa resposta assim que eu descobrir.

Seth
fonte
3
O Grub 2.0+ pede senha para inicializar após essas manipulações. É porque todas as entradas agora estão "restritas" por padrão. Para inicializar sem uma senha, você precisa adicionar "--unrestricted" aos itens de inicialização necessários .
Raz
6

O manual do GRUB possui uma seção sobre segurança . Isso mostra como proteger com senha o menu de inicialização do GRUB para restringir o acesso a operações específicas ou variantes de inicialização. Ele contém um pequeno exemplo.

NZD
fonte
1
se o exemplo for pequeno, você poderá adicionar à sua resposta
rpax 11/08/2015
2
@rpax: A resposta de Seth já contém um exemplo. Ele adicionou sua resposta depois que eu publiquei a minha.
NZD