Estou procurando um software que forneça ao usuário uma identidade única em vários computadores. Ou seja, um usuário deve ter as mesmas permissões em cada computador e deve ter acesso a todos os seus arquivos (diretório inicial móvel) em cada computador. Parece haver muitas soluções para essa idéia geral, mas estou tentando determinar a melhor para mim. Aqui estão alguns detalhes, juntamente com os requisitos:
- A rede de máquinas são instâncias do Amazon EC2 executando o Ubuntu.
- Acessamos as máquinas com SSH.
- Algumas máquinas nesta LAN podem ter usos diferentes, mas estou discutindo apenas máquinas para um determinado uso (executando uma plataforma de multilocação).
- O sistema não terá necessariamente uma quantidade constante de máquinas.
- Podemos ter que alterar permanente ou temporariamente a quantidade de máquinas em execução. Essa é a razão pela qual estou analisando a autenticação / armazenamento centralizado.
- A implementação desse efeito deve ser segura.
- Não temos certeza se os usuários terão acesso direto ao shell, mas seu software estará em execução (sob nomes restritos de usuário do Linux, é claro) em nossos sistemas, o que é tão bom quanto o acesso direto ao shell.
- Vamos supor que o software deles possa ser malicioso por questões de segurança.
Ouvi falar de várias tecnologias / combinações para alcançar meu objetivo, mas não tenho certeza das ramificações de cada uma.
- Uma publicação mais antiga do ServerFault recomendava NFS e NIS, embora a combinação tenha problemas de segurança, de acordo com este artigo antigo da Symantec . O artigo sugere a mudança para o NIS +, mas, como é antigo, este artigo da Wikipedia citou declarações que sugerem uma tendência do Sun para o NIS +. A substituição recomendada é outra coisa que ouvi falar ...
- LDAP. Parece que o LDAP pode ser usado para salvar informações do usuário em um local centralizado em uma rede. O NFS ainda precisaria ser usado para atender ao requisito de 'pasta inicial móvel', mas vejo referências deles sendo usados juntos. Como o artigo da Symantec apontou problemas de segurança no NIS e no NFS, existe algum software para substituir o NFS ou devo prestar atenção às sugestões desse artigo para bloqueá-lo? Estou tendendo ao LDAP porque outra peça fundamental da nossa arquitetura, o RabbitMQ, possui um plugin de autenticação / autorização para o LDAP. O RabbitMQ estará acessível de maneira restrita aos usuários do sistema, portanto, eu gostaria de unir os sistemas de segurança, se possível.
- O Kerberos é outro protocolo de autenticação segura que ouvi falar. Eu aprendi um pouco sobre isso alguns anos atrás, em uma aula de criptografia, mas não me lembro muito disso. Vi sugestões online de que ele pode ser combinado com o LDAP de várias maneiras. Isso é necessário? Quais são os riscos de segurança do LDAP sem o Kerberos? Também me lembro do Kerberos sendo usado em outro software desenvolvido pela Carnegie Mellon University ...
- Andrew File System, ou AFS. O OpenAFS está disponível para uso, embora sua configuração pareça um pouco complicada. Na minha universidade, o AFS fornece os dois requisitos ... Posso efetuar login em qualquer máquina e minha "pasta AFS" está sempre disponível (pelo menos quando adquiro um token AFS).
Juntamente com sugestões para qual caminho eu deveria procurar, alguém tem algum guia particularmente útil? Como o texto em negrito apontou, o LDAP parece ser a melhor opção, mas estou particularmente interessado nos detalhes da implementação (Keberos? NFS?) Com relação à segurança.
Esta é uma resposta parcial.
NIS / NIS +
Não use NIS. Use LDAP com esquema nis.
OpenLDAP (também conhecido como slapd no Ubuntu)
Certifique-se de configurar ACLs e SSF adequados (fatores de força de segurança).
É muito fácil enviar senhas de maneira clara, se você não tomar cuidado.
http://www.openldap.org/doc/
NFS
NFS não é um criptografado.
Pode ser envolto em ssl com alguns truques.
Sem o Kerberos, o ip_addr conta com autenticação.
Com o Kerberos, é possível que o SASL seja usado para criptografar tudo.
Kerberos
Requer que o OpenLDAP possua autenticação de passagem SASL para autenticação LDAP. (Não é difícil.)
Deve usar entradas DNS. (Não é necessário, mas muito útil).
GSSAPI pode ser usado em vez de ssh-keys. (Podem coexistir.) As
máquinas KDC devem ser separadas das máquinas clientes.
OpenAFS
criptografado com DES. (Não é considerado seguro.)
Requer kerberos ou seu próprio servidor de autenticação legado.
Possui suas próprias ACLs do sistema de arquivos.
fonte