• Olá Visitante, se gosta do forum e pretende contribuir com um donativo para auxiliar nos encargos financeiros inerentes ao alojamento desta plataforma, pode encontrar mais informações sobre os várias formas disponíveis para o fazer no seguinte tópico: leia mais... O seu contributo é importante! Obrigado.

Usuário especial para desligar servidores Linux

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Procedimentos indicados em situações onde usuários comuns necessitem desligar o equipamento, seja por motivo de dias chuvosos ou por outro motivo qualquer que a empresa ou o administrador de rede julgue correto.

Por: Dorival Junior

Introdução
Quem nunca ouviu do cliente ou patrão: "deixa a senha de root anotada ali para que qualquer um possa desligar o equipamento quando precisar".

Trabalho de forma autônoma na implementação de servidores em pequenas e grandes empresas. A grande maioria não tem conhecimento de utilização de Linux, muito menos sobre o poder da "senha de root". Claro que é uma questão de conscientização e parte de um processo de implementação da política de segurança, mas a maioria das microempresas não pensam e nem querem pensar desta forma.

O fato é que em algumas destas empresas é solicitado que exista uma forma de que alguém possa desligar o equipamento sem maiores complicações, e é claro sem a utilização de senha de administrador. A principal situação para isso ocorrer é em dias de chuva e que o administrador não está no local, seja por viagem ou manutenção em qualquer outro local físico.

Os procedimentos a seguir são indicados nestas situações onde usuários comuns necessitem desligar o equipamento, seja por motivo de dias chuvosos ou por outro motivo qualquer que a empresa ou o administrador de rede julgue correto.

Lembro aqui que este tipo de permissão deve ser bem especificada na política de segurança da empresa, evitando a possibilidade de falhas. Os usuários que receberem permissão para esta funcionalidade, devem assinar um termo de responsabilidade de senha.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Procedimentos
Criação do usuário para desligar
Aqui demonstro como exemplo o usuário "desliga" com a senha "123456", que é claro deve ser alterada.

(Pode-se utilizar o comando useradd afim de definir diretamente o caminho do bash e então pular a etapa 5 abaixo)

# adduser desliga


Criação do script para desligar a máquina
Este script tem por objetivo única e exclusivamente desligar a máquina. Ele pode ser salvo dentro do home do novo usuário ou outro local que o administrador julgar viável. Assim, no meu exemplo em /home/desliga/desligando.sh tenho o script:

#!/bin/bash
echo ""
echo "===> ATENCAO: DESLIGANDO O COMPUTADOR <===="
echo "Em caso de problemas contate o administrador: (xx)xxxx-xxxx"
echo ""
/sbin/shutdown -t1 -a -h now


Definição das permissões e grupo do script
O script deve ter permissão apenas de execução para usuários, evitando brechas na segurança, pois um potencial invasor pode aproveitar-se da permissão de escrita por parte deste usuário junto ao script, incrementando-o com comandos estratégicos para invasão ou coleta de informações. Assim, primeiramente altere o grupo do usuário para "desliga":

# chown root:desliga /home/desliga/desligando.sh

Em seguida atribua a permissão 750 para que apenas usuário root e grupo "desliga" consigam executar o script, além de só o root poder alterá-lo:

# chmod 750 /home/desliga/desligando.sh
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Definição das permissões e grupo do shutdown
É necessário ser superusuário (id 0) para executar o comando shutdown. Desta forma precisaremos do auxílio da técnica de suid bit, que a meu ver pode ser um ponto negativo na segurança. Porém com o auxilio de ferramentas de monitoramento o uso de suid bit é tolerável.

A ativação do suid bit permitirá a execução do shutdown por qualquer usuário como se fosse root, assim como é feito o comando passwd que nativamente tem o suid bit ativo.

Primeiro é necessário alterar o grupo do comando shutdown para o grupo "desliga". Faz-se isso através do comando:

# chgrp desliga /sbin/shutdown

Em seguida, ativa-se o suid bit:

# chmod 4754 /sbin/shutdown

Caso queira uma garantia de que os comandos funcionaram, observe se o arquivo ficará da seguinte forma:

# ls /sbin/shutdown -l
-rwsr-xr-- 1 root desliga 18572 2006-05-23 07:39 /sbin/shutdown

 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Facilitando a vida do usuário
Até este momento já resolvemos nosso problema, pois o usuário poderá logar-se no terminal ou remotamente e executando o script, desligar a máquina. Porém, pode-se facilitar as coisas ainda mais.

Edite o arquivo /etc/passwd e altere o caminho do comando de shell do usuário para que o mesmo seja o script. Desta forma basta que o usuário digite o login e senha para que o script entre em funcionamento, sem liberar shell para o usuário, fechando assim a segurança no que tange a criação de usuários desnecessários e consequentemente possíveis de se utilizar para invasão.

Linha alterada no /etc/passwd:

Antes:

desliga:x:1001:1002:Usuário para desligar,,,:/home/desliga:/bin/bash

Depois:

desliga:x:1001:1002:Usuário para desligar,,,:/home/desliga:/home/desliga/desligando.sh


Obs.: Tentei informar como bash diretamente o comando shutdown, mas o sistema não reconhece as opções para execução devido ao espaço entre palavras. Isso pode ser tratado futuramente.


 
Topo