GRUB e a senha de root - como atacar e proteger seu sistema

Neste artigo vamos aprender que através do GRUB é possível alterarmos a senha de root. Aprenderemos também como proteger o GRUB com senha para evitarmos que esse tipo de coisa venha a acontecer.

[ Hits: 50.639 ]

Por: Bruno Salmito Filizola de Faria em 06/11/2008 | Blog: http://brunosalmito.blogspot.com


Implantando senhas no GRUB



Vimos como é fácil roubar/excluir a senha de root. Para evitarmos que isso ocorra, vamos mudar algumas configurações no nosso GRUB para aumentar a segurança e evitarmos o acesso indevido ao nosso sistema.

Suba o seu sistema e efetue o login como root em caso de modo texto e, em caso de modo gráfico, efetue o login normalmente e depois abra o terminal e torne-se root através do comando "su". Como root, vá ao diretório /boot/grub/.

# cd /boot/grub/

Vamos editar o arquivo menu.lst, use o seu editor de texto favorito.

# vim menu.lst

Antes de continuarmos explicarei um pouco sobre os principais parâmetros do GRUB.

Opções do arquivo de configuração

Esta seção descreve os parâmetros globais do arquivo de configuração menu.lst, localizado no diretório /boot/grub.

timeout = Define um tempo de espera em segundos. Se nenhuma tecla for pressionada, carrega a imagem padrão do sistema.

default = Define qual será a opção padrão a ser automaticamente selecionada caso nenhuma tecla seja pressionada ou até que o timeout se esgote.

color = Permite que você, através deste parâmetro, configure as cores usadas no menu de boot do GRUB.

password = Permite que você especifique uma senha, que será utilizada para evitar a edição dos parâmetros de boot durante a inicialização. Essa senha será pedida sempre que uma função diferente de carregar imagem seja pedida ao GRUB durante a sua inicialização (Usaremos essa opção neste tutorial).

title = Define qual o texto que aparecerá no menu de boot, é usado para identificar qual imagem será carregada.

root = Determina qual a partição raiz do sistema a ser inicializada.

kernel = Nessa opção você informa qual o kernel será inicializado.

lock = Usado para controlar a inicialização do sistema. Se habilitada, o sistema só iniciara após você ter digitado a sua senha e selecionado a imagem a ser carregada (Vamos aprender a usar essa opção nesse tutorial).

Bom, passados os parâmetros básicos do GRUB, vamos pôr a mão na massa.

Primeiramente vamos tirar o comentário "#" da linha "password" ou digitar a opção "password", que deve vir antes das configurações de arranque do sistema operacional.

Podemos usar dois tipos de senha aqui, sem criptografia e com criptografia, vamos ver as duas opções.

1. Sem criptografia.

Você pode usar uma senha legível, comum em frente à opção password (Fig. 2.0), porém essa opção não é muito recomendada, pois um usuário comum com acesso ao sistema poderia visualizar o arquivo de configuração do GRUB e também visualizar a sua senha, mas para esse caso vamos usá-la assim mesmo.
Linux: Definindo senha no Grub
Fig. 2.0
Agora basta reiniciar o sistema e tentar "roubar" a senha de root novamente, você não conseguirá a menos que pressione "p" e digite a senha do GRUB.

Essa configuração não impedirá que o usuário inicialize o sistema, vamos ver como impedir isso mais a frente.

2. Com criptografia MD5.

Bom, vimos que usar uma senha legível não é muito aconselhável, vamos usar agora o aplicativo grub-md5-crypt para gerar uma senha criptografada. Digite o comando como root e pressione enter, o shell pedirá a senha, digite-a e pressione Enter, o aplicativo fornecerá uma string criptografada (Fig. 2.1).
Linux: grub-md5-crypt
Fig. 2.1
Copie e vá novamente ao arquivo de configuração do GRUB (menu.lst) e, na frente da opção password, cole essa string copiada (Fig. 2.2).
Linux: Grub com password MD5
Fig. 2.2
Essa configuração não impedirá que o usuário inicialize o sistema.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Implantando senhas no GRUB
   3. Impedindo o acesso ao sistema sem senha
Outros artigos deste autor

Instalação do Debian Linux (passo-a-passo)

ALSA

Leitura recomendada

Servidor DHCP rápido e fácil para Conectiva Linux

Instalação Minimalista do Void Linux

Servidor web nginx com PHP-FPM e memcached

Drivers de impressão para clientes com Windows 7/XP

HOWTO - Usando PSP no Gentoo Linux

  
Comentários
[1] Comentário enviado por fabio em 06/11/2008 - 15:22h

Muito bom! Se não me falhe a memória, é o primeiro artigo completo sobre este assunto publicado aqui no VOL. Geralmente textos sobre senha no boot loader vão para a seção de dicas :)

Um abraço.

[2] Comentário enviado por brunosalmito em 06/11/2008 - 15:29h

Muito Obrigado pela força amigo.

[3] Comentário enviado por thiagomlx em 06/11/2008 - 15:31h

Bem interessante a dica. Algo que as vezes passa despercebido.

Parabéns pelo artigo. Está bem explicativo.
Abs

[4] Comentário enviado por samuK em 06/11/2008 - 16:08h

Parabéns Pelo Artigo Bruno!! Muito bom mesmo!

Assunto interessante e muito bem explicado!

[]'s

[5] Comentário enviado por brunosalmito em 06/11/2008 - 16:13h

Muito obrigado a todos pela força.

[6] Comentário enviado por rafaelfreitas em 06/11/2008 - 16:37h

Foi uma excelente abordagem sobre o assunto, parabéns brother.

[7] Comentário enviado por rweu em 06/11/2008 - 21:17h

Cara, gostei muito do artigo , e inclusive tomei a liberdade de incluir o short cut dele em um post no site www.fedora.org.br, segue:

http://www.fedora.org.br/post37789.html#37789

Blz



[8] Comentário enviado por dbahiaz em 07/11/2008 - 01:20h

Dúvida!! Tentei no opensuse 11 e não consegui. Se alguém souber como fazer, o boot do opensuse 11 é o seguinte:

title openSUSE 11.0 - 2.6.25.18-0.2
root (hd0,2)
kernel /boot/vmlinuz-2.6.25.18-0.2-default root=/dev/disk/by-id/scsi-SATA_Maxtor_6Y160M0_Y43WWBEE-part3 resume=/dev/sda2 splash=silent sho$
initrd /boot/initrd-2.6.25.18-0.2-default

De qualquer forma seu artigo mostra que nenhum sistema é totalmente seguro, show de bola!

[9] Comentário enviado por brunosalmito em 07/11/2008 - 22:30h

rweu.
Valeu pela divulgação :P

[10] Comentário enviado por guilhermecunha em 08/11/2008 - 01:58h

Isto acontece também se tu rodar com single no final ...

[11] Comentário enviado por edersg em 09/11/2008 - 22:59h

Bruno Salmito Filizola de Faria:
> (...)
> Bom amigos fico por aqui, espero que tenham gostado e qualquer
> dúvida reportem, terei o maior prazer em ajudá-los.

Olá Bruno! Muito boa noite!

Como você está? Espero que esteja a cada dia melhor!

Meus parabéns pelo excelente artigo. Graças a ele, eu acabei de
acrescentar uma senha no grub do meu Debian. Segurança nunca é
demais, pelo contrário, quanto mais segurança em nossos sistemas,
melhor.

Obrigado Bruno!

Tenha uma
E X C E L E N T E
semana!

FÉ, SAÚDE e PAZ!


[12] Comentário enviado por fabioarnoni em 10/11/2008 - 05:12h

Muito bom , parabéns !!! Agora meu Debian está protegido heheheh abraços!

[13] Comentário enviado por jovera em 11/11/2008 - 08:53h

Botar senha no Grub não é suficiente...
pois um qualquer usuário cadastrado no sistema poderá ter acesso a ela..
basta dar um cat /boot/grub/menu.lst ir na seção password e o usuário irá visualizar a senha...
é necessário dar um chmod como root mudando as permissões.
chmod 770 é uma sugestão.


[14] Comentário enviado por brunosalmito em 11/11/2008 - 09:34h

Sim amigo jovera isso é verdade, só que no tuto também estou colocando como usar essa senha usando a criptografia, ou seja caso o usuário Venha a dar um cat no menu.lst ele vai ver a senha criptografada, mas a sua idéia também é uma segurança a mais, muito obrigado pela a sua observação.

Muito obrigado pela força jovera, vo incluir a sua dica no meu tuto.

Muito obrigado de coração.

[15] Comentário enviado por zene1308 em 11/11/2008 - 14:12h

excelente artigo!
valeu pela dica...
parabéns

[16] Comentário enviado por removido em 12/11/2008 - 15:53h

Parabéns pelo artigo.
No meu ububtu 8.10 ficou assim para funcionar a senha criptografada no grub:
password --md5 `senha criada pelo usuário`
Peguei essa dica no próprio comentário do arquivo
No seu artigo não cita o --md5. De qualquer forma muito bom, simples e prático.
Marcio

[17] Comentário enviado por removido em 22/01/2009 - 02:01h

Bruno,

Muito lega a dica... mais se o usuário fizer o que está na dica do riav aqui do VOL.

http://www.vivaolinux.com.br/dica/Recuperando-a-senha-do-root-com-o-Kurumin/

Ache que podemos dificultar mais nao tem como controlar isso

Abs.

[18] Comentário enviado por ramontcruz em 23/03/2009 - 11:49h

Muito bom!!!
Tinha ouvido falar disso mas não tinha entendido como fazer. As figuras mataram todas as minhas dúvidas!!!
Valeu!!!

[19] Comentário enviado por aleksandre em 12/01/2010 - 08:57h

E quanto ao grub 2, tem como colocar senha nele?
Considero um erro grave aquela opção recovery mode do Ubuntu 9.10 que dá acesso de root a qualquer um.
Ateh!

[20] Comentário enviado por pauloedson em 23/07/2012 - 22:41h

por falar em grub II

o "menu.lst" nao se encontra nesse caminho: /boot/grub

alias, creio que esse arquivo "menu.lst" nao mais existe com esse nome!

salvo engano, o novo caminho é: "/etc/default" e "/etc/grub.d"

alguem discorda?!

[21] Comentário enviado por gabi74 em 03/11/2012 - 08:52h

No Grub II coloca-se senha no ficheiro 00_header que se encontra no /etc/grub.d!

No fim do ficheiro escreve-se (dando como exemplo o utilizador: gabi e a senha: novembro)

Se quiser encriptar a senha:

cat << EOF
set superusers="gabi"
password_pbkdf gabi grub.pbkdf2.sha512.10000.F7511F9973C87195FF9055DA141CD77E6FE821B4C4237CC6C07AE8EB6EC2B462F680
CF66341BF3FECDFFCCFA36D75E21EA3E4881A6706582E669E913903BA7BB.4DE46C6DFE1A5199921E6759275AD77
8DCA5A048D59E684A6E6A07501418060474537B52FFAE70BE9ADB384470DC1112E6456B9D82D62674CD644AAFB47854E8
EOF

Nota: O nome de utilizador é mesmo entre aspas ("") na primeira linha!

No fim basta salvar as alterações e dar um update-grub no Terminal

Ao reiniciar já terá a senha se tentar editar!

(Exemplo sem encriptar):

cat << EOF
set superusers="gabi"
password gabi novembro
EOF


A senha encriptada pode ser obtida escrevendo o comando: grub-mkpasswd-pbkdf2
Lembro que convem executar isto como root para que tudo funcione bem!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts