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.