Pesquisa de site

Como proteger com senha o modo de usuário único no CentOS 7


Em um de nossos artigos anteriores, descrevemos como inicializar no modo de usuário único no CentOS 7. Também é conhecido como “modo de manutenção”, onde o Linux inicia apenas alguns serviços para funcionalidades básicas para permitir um único usuário (geralmente um superusuário) executa certas tarefas administrativas, como usar o fsck para reparar sistemas de arquivos corrompidos.

No modo de usuário único, o sistema executa um shell de usuário único onde você pode executar comandos sem quaisquer credenciais de login (nome de usuário e senha), você vai direto para um shell limitado com acesso a todo o sistema de arquivos.

Esta é uma enorme falha de segurança, pois dá aos invasores acesso direto a um shell (e possível acesso a todo o sistema de arquivos). Portanto, é importante proteger com senha o modo de usuário único no CentOS 7 conforme explicado abaixo.

No CentOS/RHEL 7, os alvos de resgate e de emergência (que também são modos de usuário único) são senha protegido por padrão.

Por exemplo, quando você tenta alterar o target (runlevel) via systemd para rescue.target (também emergency.target), será solicitada uma senha de root, conforme mostrado na imagem a seguir.

systemctl isolate rescue.target
OR
systemctl isolate emergency.target

No entanto, se um invasor tiver acesso físico a um servidor, ele poderá selecionar um kernel para inicializar a partir do item de menu grub pressionando a tecla e para editar a primeira opção de inicialização.

Na linha do kernel que começa com “linux16“, ele/ela pode alterar o argumento ro para “rw init=/sysroot/bin/sh ” e inicialize no modo de usuário único no CentOS 7 sem que o sistema solicite uma senha de root, mesmo se a linha SINGLE=/sbin/sushell for alterada para SINGLE=/sbin/sulogin no arquivo /etc/sysconfig/init.

Portanto, a única maneira de proteger com senha o modo de usuário único no CentOS 7 é proteger o GRUB com senha usando as instruções a seguir.

Como proteger o Grub com senha no CentOS 7

Primeiro crie uma senha criptografada forte usando o utilitário grub2-setpassword conforme mostrado.

grub2-setpassword

O Hash da senha é armazenado em /boot/grub2/user.cfg & usuário, ou seja, ”root” é definido em / boot/grub2/grub.cfg, você pode visualizar a senha usando o comando cat conforme mostrado.

cat /boot/grub2/user.cfg

Agora abra o arquivo /boot/grub2/grub.cfg e procure a entrada de inicialização que você deseja proteger com senha, ela começa com menuentry. Assim que a entrada for localizada, remova o parâmetro --unrestricted dela.

Salve o arquivo e feche, agora tente reiniciar o sistema CentOS 7 e modifique as entradas de inicialização pressionando a tecla e, você será solicitado a fornecer as credenciais conforme mostrado.

É isso. Você protegeu com sucesso seu menu GRUB do CentOS 7 com senha.