Novo servidor web: quais contas de usuário devo criar e permissões fornecer

Novo servidor web: quais contas de usuário devo criar e permissões fornecer

Esta é uma continuação da minha perguntaaqui.

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

Para 2 desenvolvedores, tenho 2 contas (e elas são adicionadas ao grupo suplementar devs) e somente elas têm permissão para fazer ssh no servidor. Para a aplicação web (baseada em Django), criei 1 usuário normal, app(não o configurei como --systemusuário e pertence ao grupo app) com acesso shell. Os 2 desenvolvedores, após o ssh para o servidor, irão solicitar appquaisquer atualizações e iniciar/parar o aplicativo. O usuário appnão tem permissão para executar su(bloqueado por não adicionar à configuração do grupo em /etc/pam.d/suusing pam_wheel.so). Eu também tenho uma terceira conta sem surecursos para tarefas relacionadas a backup, onde uma tarefa cron fará ssh e buscará arquivos de log, status, etc.

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

Responder1

surequer o compartilhamento de uma senha. Eu prefiro sudo. Portanto, os desenvolvedores executariam sudo -u app commandpara executar commandcomo app, ou executariam sudo -u app -ipara iniciar um shell interativo como app. Possivelmente sudo -u app -i /bin/bashse você configurou appo shell de para algo como /bin/false ou /bin/true.

Se eles não precisarem de um shell completo como aplicativo, mas apenas reiniciarem 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 lhes dê acesso para fazer isso.

Normalmente prefiro usar chaves apenas para ssh. Se você puder fazer isso, desative as senhas dos desenvolvedores e defina as regras do sudo para não exigir senha. Então não há necessidade de senhas 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 faço para configurar o sudo". Talvez seguido pelo gerenciamento de chaves ssh.

informação relacionada