Quem obtém acesso root?

8

Estou trabalhando em um aplicativo da web que lida com alguns dados confidenciais. Estamos ficando muito rígidos com a segurança e estabelecendo políticas para bloquear o acesso a máquinas e registrar tudo para fins de auditoria técnica.

A pergunta para a qual voltamos sempre é: quem se enraíza?

Nossas instâncias do servidor terão um usuário root. Esse usuário root terá uma senha. Quem deve ter acesso a isso? É possível / desejável ter uma máquina em que ninguém possa ter acesso root?

Agradeço qualquer opinião que você tenha sobre o assunto.

Ross McFarlane
fonte
Isso chamou minha atenção. Parece uma boa prática.
Ross McFarlane

Respostas:

14

Ninguém. Faça com que eles sejam usados sudopara que todos os comandos no nível raiz sejam registrados e atribuíveis a uma pessoa específica.

ceejayoz
fonte
6
+1. Altere a senha do root para algo aleatório, imprima-a e sele-a em um envelope apenas para uso emergencial.
EEAA 28/02
4
Além disso, altere sua conta raiz .bashrc para que PROMPT_COMMAND seja configurado para registrar tudo como usuário root simples no syslog. Handy.
Sirex
1
o usuário pode usar o sudo para executar shell, então comandos não irá login (login única bash)
ooshro
verdade, a menos que eles façam "sudo bash -l" - como deveriam. se você definir o comando .bashrc raiz, ele também registrará isso, e é por isso que vale a pena fazer isso.
Sirex 28/02
+1 Além disso, certifique-se de configurar o sudo para níveis de acesso mais altos. Em um local, todas as senhas raiz foram mantidas em um envelope lacrado por razões justificativas; se o selo foi quebrado, ele teve que ser relatado por segurança e as senhas foram alteradas.
31311 sthvgf:
3

Ninguém, exceto, talvez, um administrador de hardware obtém a senha de root! A senha root deve ser usada apenas no console, não via SSH ou outros serviços.

Use grupos para definir o acesso a diferentes conjuntos de programas com privilégios escalados usando sudo. Por exemplo, o grupo wheel é geralmente para pessoas que obtêm privs de root, mas tudo é registrado como usuário. Se as pessoas não precisarem de privilégios de root completos, mas apenas alguns comandos como outro usuário, faça outro grupo.

Caleb
fonte
-1

Se você usa e implementa o selinux, é possível remover a conta "típica que tudo vê, que tudo sabe" que é a configuração raiz normal e convertê-la em uma conta mais sensível à segurança.

Sirex
fonte
1
como? A resposta não é realmente útil, contanto que ele não dá quaisquer indicações quanto à forma;)
0xC0000022L
É um tópico muito grande para caber em uma resposta. Mas, que eu saiba, o selinux pode ser (e geralmente é) usado para esse fim.
quer
-5

Minha opinião é que as pessoas não devem estar executando comandos que exigem permissões de root, exceto é claro quando estão realmente logados como root.

Eu recomendaria o uso de su (alterna para usuário root) em vez de sudo (aumenta temporariamente as permissões para o nível raiz por um comando) por esse motivo. Se eles precisarem de permissão root, faça com que eles mudem para usuário root.

Minha pergunta é: o que seus usuários estão fazendo e acham que precisam de raiz?

user76897
fonte
4
@ user76897: Eu discordo. sudoé perfeitamente adequado para a finalidade e registra cada comando emitido diretamente com o sudoanexo. Onde, quando su é usado, você obtém um shell e nada dentro dele é registrado. /etc/sudoerspode ser ajustado muito. Você pode dizer qual comando pode ser executado como qual usuário, por qual usuário e se deve exigir senha ou não, além de várias outras opções úteis. Uma razão pela qual alguém pode precisar de root é reiniciar um daemon. Isso é facilmente alcançado sudosem dar acesso total à conta raiz.
0xC0000022L
Esta resposta não faz sentido ou aborda a questão. A preferência pelo suexcesso sudonão é defendida e, de acordo com a maioria das outras vozes aqui, seria realmente parte do problema original dos caras, não uma solução.
Calebe