Anúncios

DonkeyMails.com: No Minimum Payout
Mostrando postagens com marcador grub2. Mostrar todas as postagens
Mostrando postagens com marcador grub2. Mostrar todas as postagens

terça-feira, 5 de abril de 2011

Dica: proteger com senha o Modo de Recuperação no Grub

Estou de volta!

Quando temos algum problema com o sistema (Ubuntu Linux) e o mesmo fica incapacitado de ser iniciado ou não funciona devidamente (ao ponto de impedir que o usuário, iniciando o sistema normalmente, acesse o terminal) é comum recorrermos ao modo de recuperação. Nele temos acesso a um terminal sendo executado como root, tornando possível manipularmos o sistema "livremente", de modo a aplicarmos as correções necessárias.
Certamente ele é algo útil. O problema é que, "nas mãos" de alguém mal intencionado, pode comprometer toda a segurança e integridade do sistema.

Hoje vou falar (na realidade, escrever) sobre como proteger com senha a opção do "modo de recuperação" do Ubuntu no Grub, lembrando que é válido apenas para versão 2 (Grub 2) e talvez superiores.

Para tal, primeiramente é preciso criar um "super usuário" do Grub com senha para acessar as entradas protegidas. Para fazer isso é preciso editar o arquivo "/etc/grub.d/00_header", adicionando ao seu final as seguintes linhas:
 cat << EOF
set superusers="nomeDoSuperUsuario"
password nomeDoSuperUsuario senhaDoSuperUsuario
EOF

Creio que não haja muito a ser comentado sobre o caso acima... é só substituir "nomeDoSuperUsuario"
e "senhaDoSuperUsuario" pelo nome de usuário e senha desejados. O único problema é que, se alguém acessar o arquivo "00_header", terá acesso a tais informações de maneira explicita. Visando evitar isso, é possível fazer uso de uma senha criptografada, assim como descrito no caso abaixo:
 cat << EOF
set superusers="nomeDoSuperUsuario"
password_pbkdf2 nomeDoSuperUsuario senhaCriptografadaDoSuperUsuario
EOF

Da mesma forma que ocorre na situação anterior, basta
substituir "nomeDoSuperUsuario" e "senhaCriptografadaDoSuperUsuario" pelo nome de usuário desejado e a senha criptografada.
Para gerar tal senha, é preciso executar no terminal "grub-mkpasswd-pbkdf2" que irá requisitar o password desejado, a confirmação do mesmo e, por fim, irá devolvê-lo de forma criptografada (que será utilizada no lugar de "senhaCriptografadaDoUsuario"). Aproveito para alertar que,
no lucid (10.04), é meio "bugado", tendo vezes em que ele retorna a senha criptografada e vezes em que não faz o mesmo (tive de tentar várias vezes até funcionar), e também que, quando gerada, será uma sequência de caracteres bem grande (começando a partir de "grub.pbkdf2..."), mas é algo normal.

Tendo sido estas alterações feitas, agora é hora de partir para o arquivo "/etc/grub.d/10_linux". Aqui, aproximadamente na linha 72, há um trecho mais ou menos assim:
 if ${recovery} ; then
title="$(gettext_quoted "%s, with Linux %s (recovery mode)")"
else
title="$(gettext_quoted "%s, with Linux %s")"
fi
printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${version}"
O que é preciso fazer é deixar este bloco da seguinte forma:
 if ${recovery} ; then
title="$(gettext_quoted "%s, with Linux %s (recovery mode)")"
printf "menuentry '${title}' ${CLASS} --users nomeDoSuperUsuario {\n" "${os}" "${version}"
else
title="$(gettext_quoted "%s, with Linux %s")"
printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${version}"
fi
Fazendo desta forma, a senha será aplicada apenas ao modo de recuperação.
Perceba que a seguinte linha agora só se apresenta dentro do bloco "if .. else", não mais fora do mesmo...
printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${version}"  
... e que ela também sofreu uma pequena alteração, que foi destacada, caso a condição (é modo de recuperação?) seja verdadeira.
 if ${recovery} ; then
title="$(gettext_quoted "%s, with Linux %s (recovery mode)")"
printf "menuentry '${title}' ${CLASS} --users nomeDoSuperUsuario {\n" "${os}" "${version}"
Se a condição for falsa, ela fica inalterada (não requerendo autenticação):
 else
title="$(gettext_quoted "%s, with Linux %s")"
printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${version}"
fi

Se tudo estiver certo até aqui, agora só resta executar o comando "update-grub"...
 sudo update-grub
... e testar se as alterações estão funcionando.
No menu do Grub, é só selecionar alguma opção de modo de recuperação que será exibida uma "tela preta" requisitando o usuário e, em seguida, a senha. Caso esteja tudo certo, o sistema será iniciado pelo modo escolhido, senão, aparecerá uma mensagem informando que as informações estão incorretas, pedindo que seja pressionada qualquer tecla para continuar, voltando para o menu anteriormente exibido (se alguma tecla for pressionada, é claro).

Para mais informações sobre como proteger as entradas do Grub com senha, recomendo dar uma olhada neste tópico do UbuntuForums.Org.

Novamente espero que este post tenha sido de alguma ajuda! Se houver qualquer dúvida, é só fazer uso dos comentários!

As formatações efetuadas nos comandos e trechos de arquivos de configuração foram geradas utilizando a "ferramenta" Source Code Formatter, encontrada neste link.
As fontes de informação utilizadas para a criação deste tópico foram este tópico do forum UbuntuForum-BR.org e este do UbuntuForum.Org.

sábado, 2 de abril de 2011

Dica: Parar contagem regressiva do Grub

Eis que aqui estou novamente postando uma dica! Desta vez irei falar sobre o Grub!
...
Quando instalamos o Ubuntu ou outra distribuição Linux, que use o Grub como "gerenciador de boot", em Dual Boot com outro sistema operacional, percebemos que o menu com as opções para boot fica disponível apenas por 10 segundos (contagem que se apresenta na parte inferior da tela), sendo iniciada a opção default (que fica destacada) após o término do tempo.
No caso de muitas pessoas que tem o costume de ligar o computador e ir fazer outras coisas enquanto o sistema não é iniciado por completo, isto pode ser um incomodo, pois pode acabar sendo carregado outro SO que não seja o desejado caso a pessoa se esqueça de selecionar a opção devida dentro do tempo disponível.

Para aumentar ou simplesmente acabar com tal contagem regressiva, basta editar um determinado arquivo de configuração do Grub.

No caso de versões anteriores ao Grub 2, o arquivo em questão é o "/boot/grub/menu.lst". Nele é só procurar pela linha abaixo e efetuar as alterações de acordo com a necessidade:
 timeout 10 #Vale lembrar que o valor do timeout pode estar diferente
Para iniciar o sistema default ("padrão") de imediato, sem a contagem, é só atribuir o valor 0 (zero):
 timeout 0

Para remover a contagem, permitindo que o menu fique ativo até alguma opção ser selecionada, basta remover ou comentar a linha:
 #timeout 10

Para aumentar o tempo da contagem regressiva, logicamente, aumenta-se o valor atribuído:
 timeout 60 #Contagem aumentada para 60 segundos

No caso do Grub 2, as coisas funcionam de modo um pouco diferente. Nele não existe o arquivo "menu.lst", mas, em contra partida, há o "/etc/default/grub". Além disso, após qualquer alteração, é necessário executar o comando "update-grub" para que as mudanças tenham efeito.
Seguindo a mesma ordem do caso acima, para iniciar o sistema padrão de imediato, é só atribuir 0 (zero) a "GRUB_TIMEOUT", assim como feito abaixo:
 GRUB_TIMEOUT=0

Para remover a contagem, deixando o menu de maneira estática até que algo seja selecionado, basta atribuir um número negativo à mesma opção:
 GRUB_TIMEOUT=-1 #Comentá-la não funcionaria, pois seria considerado um valor padrão, que é 10

Para aumentar o tempo da contagem, como no caso anterior, aumenta-se o valor atribuído:
 GRUB_TIMEOUT=60 #Contagem aumentada para 60 segundos

Tendo sido as alterações feitas conforme necessário, agora é só executar o comando "update-grub" como root que as mesmas terão efeito:
 sudo update-grub

Bom, eu citei várias vezes um tal opção "padrão" (default), certo? Para quem não faz ideia do que estou falando, ela é a que, no menu, fica "selecionada" por padrão, sendo geralmente a primeira. Para alterar qual será a entrada "default" basta:
  • Em versões anteriores ao Grub 2: alterar o valor atribuído à "default", lembrando que a contagem começa a partir do 0 (zero);
  • No Grub 2: alterar o valor atribuído à "GRUB_DEFAULT", lembrando novamente que a contagem começa a partir do 0 (zero).
Como de costume, espero que esta dica tenha sido útil! Se houver qualquer dúvida ou encontrarem qualquer erro neste post, não deixem de comentar!

Na próxima postagem pretendo aproveitar o "embalo" e falar novamente sobre o Grub 2, especificamente, escreverei sobre "como proteger o modo de recuperação com senha".

Até a próxima!

As formatações efetuadas nos comandos e trechos de arquivos de configuração foram geradas utilizando a "ferramenta" Source Code Formatter, encontrada neste link.
Quanto as fontes utilizadas para a criação deste tópico, não tenho como informar ao certo, pois foi constituído de informações coletadas há muito tempo e de diversos lugares. Além disso, a forma de remover a contagem no Grub 2 descobri na tentativa e erro.

Anúncios

DonkeyMails.com: No Minimum Payout