Novo servidor da Web: o que todas as contas de usuário devem criar e permissões para fornecer

3

Este é um acompanhamento da minha pergunta aqui .

Estou configurando o primeiro servidor da Web e estou confuso com quais contas de usuário criar e permissões para fornecer melhor segurança. Abaixo está o que eu tenho.

Para dois desenvolvedores, eu tenho duas contas (e elas são adicionadas ao grupo suplementar devs ) e somente elas têm permissão para ssh no servidor. Para o aplicativo da web (baseado no Django), criei um usuário normal, app (não o configurei como --system user e pertence ao grupo app ) com acesso ao shell. Os 2 desenvolvedores, após o ssh para o servidor, irão su a app para quaisquer atualizações e iniciar / parar o aplicativo. O usuário app não tem permissão para executar su (bloqueado por não adicionar à configuração de grupo em /etc/pam.d/su usando pam_wheel.so ). Eu também tenho uma terceira conta com nenhum recurso de su para tarefas relacionadas ao backup, onde um trabalho cron irá ssh e buscar arquivos de log, status, etc.

Deixe-me saber se os aspectos de segurança precisam ser melhorados. (PS: sou novato aqui)

    
por Ethan 06.10.2013 / 22:33

1 resposta

2

su requer o compartilhamento de uma senha. Eu prefiro o sudo. Portanto, os desenvolvedores executariam sudo -u app command para executar command como app ou executar sudo -u app -i para iniciar um shell interativo como app . Possivelmente sudo -u app -i /bin/bash se você tiver definido o shell de app para algo como / bin / false ou / bin / true.

Se eles não precisarem de um shell completo como o aplicativo, mas precisarem apenas reiniciar o aplicativo, você poderá limitar os comandos que eles podem executar como aplicativo. Use uma ACL padrão nos diretórios que eles precisam acessar, o que concede acesso aos desenvolvedores e ao aplicativo para que você não tenha problemas de permissão do sistema de arquivos. O princípio do menor privilégio é o que você precisa seguir, IMHO. Se eles não precisarem fazer isso, não dê acesso a eles.

Normalmente, prefiro usar chaves apenas para ssh. Se você puder fazer isso, desative senhas para os devs e defina as regras de sudo para não exigir uma senha. Então não há senhas necessárias para ninguém e, portanto, nenhuma senha para divulgar / perder / redefinir.

Tarefa de leitura para esta noite, porque é um pouco demais para este post: "como funcionam as ACLs do sistema de arquivos" e "como configuro o sudo". Talvez seguido pelo gerenciamento de chaves ssh.

    
por 06.10.2013 / 23:43