esquema sudoer para permitir acesso útil a outro desenvolvedor da web e ainda reter o controle futuro de um servidor virtual?

5

Histórico: Servidor Privado Virtual

Eu tenho um servidor privado virtual para hospedar vários sites e fornecer acesso a outro desenvolvedor da web. Eu não me importo em colocar muitas restrições sobre ele, embora eu não me importe em isolar o site que ele estará desenvolvendo de outros sites no servidor que eu desenvolverei.

O problema: manter o controle

Principalmente, o que eu quero é garantir que eu mantenha o controle sobre o servidor no futuro. Quero reservar a capacidade de criar / promover / rebaixar e outras funções administrativas que não lidam com software da web. Se eu fizer dele um admin, ele pode sudo su - e tornar-se root e remover o controle de raiz de mim, por exemplo.

Preciso que ele não seja capaz de:

  • tire outras permissões de administrador
  • altere a senha da raiz
  • tem controle sobre outras funções administrativas / de segurança

Eu gostaria que ele ainda pudesse:

  • instalar software (através do apt-get)
  • reinicie o apache
  • acessa o mysql
  • configure o mysql / apache
  • reinicializar
  • edite arquivos do tipo de configuração de desenvolvimento da web em /etc/

Outras configurações padrão seriam consideradas com prazer

Eu nunca criei um bom arquivo sudoers, por isso as configurações simples de exemplo seriam muito úteis, mesmo que sejam apenas um pouco semelhantes às configurações que eu espero acima.

Edit: Eu ainda não finalizei as permissões, então configurações de sudo padrão e úteis são certamente uma opção, as listas acima são mais o que eu espero que eu possa fazer, eu não sei essa configuração pode ser feita. Tenho certeza de que as pessoas resolveram esse tipo de problema antes de alguma forma, e eu gostaria de ir com algo um pouco testado ao invés de algo que eu tenha feito.

    
por Kzqai 16.03.2010 / 18:04

3 respostas

1

Dependendo da quantidade de aplicativos que você deseja permitir que ele execute, uma opção seria permitir que ele execute comandos sem precisar sudo. Isso pode impedir que você dê a ele acesso root, enquanto ainda permite que ele execute suas tarefas: Para fazer isso, inclua no arquivo sudoers uma linha como esta para cada aplicativo que ele deveria poder fazer:

username ALL=NOPASSWD: /path/to/application

Edit: a solução de máquina virtual seria, com certeza, a opção mais segura

    
por 16.03.2010 / 18:33
1

Se você não está preso no Debian / Ubuntu (e você tem a capacidade de alterar / escolher o seu sistema operacional), o Jails do FreeBSD foi construído com isso em mente e está em produção há anos:

link

    
por 17.03.2010 / 14:23
0

Infelizmente, considerando os privilégios que você deu a ele, não é uma boa maneira de criar uma configuração infalível que o impeça de tentar bloquear o acesso de você. Sendo capaz de editar arquivos arbitrários em / etc, ser capaz de instalar o software quase certamente significa que a pessoa terá a capacidade de contornar qualquer coisa que você configurar com o sudo.

A verdadeira questão volta ao acesso físico. Se você tem acesso físico ao sistema, não há nada que ele possa fazer que você não possa ignorar facilmente simplesmente reiniciando o sistema a partir de um utilitário e reparando coisas.

Acredito que, atualmente, a maioria das pessoas aborda esse tipo de problema configurando uma VM e dando acesso à VM. Se eles fizerem algo errado ou fizerem um erro de configuração, então consertar as coisas normalmente é uma reinicialização.

    
por 16.03.2010 / 18:29