acesso e controle SSH

3

Existe uma maneira ideal de limitar o acesso aos administradores do servidor quanto ao que eles podem ou não fazer com o sudo? Eu gostaria de ter níveis de acesso de ações básicas de linha de comando para habilidades mais avançadas, como controle de serviço. Eu também não quero que eles tenham a capacidade de tocar na raiz ou editar logs.

Estou rodando o CentOS 6 com o CPanel nas caixas.

    
por Tiffany Walker 13.06.2012 / 17:31

3 respostas

2

Você pode usar aliases de comando para permitir ou proibir essas ações, por exemplo:

Cmnd_Alias OPS  = /usr/sbin/shutdown,\
                  /usr/sbin/reboot,\
                  /bin/su,\
                  /bin/sh,\
                  /bin/csh


%dev        ALL = (ALL:ALL) ALL, !OPS

Basicamente, %dev significa qualquer parte do grupo dev, pode fazer qualquer coisa, como qualquer usuário, EXCETO OPS , que fornece uma lista de comandos que você não deseja que sejam executados como sudo.

Como alternativa, você pode criar seu próprio Cmnd_Alias e fazer %dev ALL=OPS para permitir o uso apenas das operações listadas.

    
por 13.06.2012 / 17:58
1

Você pode definir comandos sudo separados separados por usuário. Por exemplo, ao invés de dar a eles todos os comandos, podemos dar a um determinado usuário chamado testando a permissão para reiniciar o servidor web com o sudo:

testing ALL=/etc/init.d/httpd restart

(isso deve estar no seu arquivo sudoers)

    
por 13.06.2012 / 17:39
1

Além de sudo , você pode escrever scripts para fazer coisas com suid bit set (não necessariamente suid root, talvez suid www-data ou mesmo suid nobody) e group execute bit set, e permitir que pessoas o executem adicionando-os para o grupo apropriado que possui o script em questão.

sudo é melhor, porque deixa uma trilha de auditoria detalhada e pode ser bastante flexível, embora a página sudoers(5) man seja bastante hostil a humanos e cheia de spaghetti Backus-Naur. E sudo tende a vomitar e parar de trabalhar com qualquer erro de sintaxe em / etc / sudoers, então é melhor você definir uma senha de root real para o tempo que você configurou sudoers file, ou você pode se encontrar bloqueado com sudo quebrado.

sudo ou não sudo , tenha muito cuidado ao projetar scripts, analisar argumentos de linha de comando, gravar em arquivos controláveis pelo administrador.

Um exemplo, vamos imaginar que você tenha um script que seja invocado sob uma conta privilegiada (root ou qualquer outro), e pelo modo como ele escreve com truncamento (>) em um arquivo que seu administrador pode substituir por um link simbólico você nunca pensou em.

Outro exemplo, editando / etc / network / interfaces (ou um análogo dele em sua distro) e, em seguida, ifup'ing uma interface pode parecer inocente, mas existem scripts pré / post-up / down que são chamados como root . Opa.

    
por 13.06.2012 / 18:03