Informações de autenticação, autorização e diretório
Esta não é uma resposta completa para a sua pergunta, mas eu pensei que poderia ajudar a resolver suas dúvidas sobre o NIS x LDAP vs. Kerberos.
Comece com este , que fornece uma boa visão geral da diferença entre autenticação e autorização , o que é importante entender para este tipo de discussão.
O Kerberos é, como você diz, apenas um protocolo de autenticação. Dado um conjunto de credenciais, por exemplo, um nome de usuário e uma senha, ele informará se elas são válidas ou não. Isso é tudo que faz.
Por outro lado, tanto o NIS quanto o LDAP são serviços de diretório. Eles permitem que um cliente os consulte para obter informações sobre os usuários (qual é o seu diretório inicial? Qual é o seu ID de usuário?). Ambos podem ser usados como fontes de autenticação com diferentes graus de problemas.
O NIS realmente não realiza nenhuma autenticação por conta própria. Em vez disso, expõe um hash de senha a máquinas clientes, e seu sistema local executa a etapa de autenticação real da mesma forma que faria para as contas locais. O problema aqui é que qualquer pessoa com uma conta em um de seus clientes NIS pode pegar todos os seus hashes de senha, e então montar um ataque de força bruta sobre eles no seu tempo livre.
O LDAP é um pouco mais seguro, já que a etapa de autenticação é realmente executada no servidor. É necessário certificar-se de que você esteja criptografando suas sessões LDAP com SSL ou TLS, caso contrário, a senha será exposta em texto não criptografado, onde está vulnerável a sniffing de pacotes.
É muito comum usar o Kerberos para autenticação e, em seguida, NIS ou LDAP para autorização (geralmente isso significa "associação ao grupo") e informações de diretório. Eu diria que o NIS, depois de ter removido os hashes de senha (movendo sua autenticação para o Kerberos) não é realmente menos seguro que o LDAP, e tem a vantagem de estar disponível "fora da caixa" em qualquer distribuição Linux moderna. p>
O LDAP, por outro lado, é geralmente muito mais extensível, é melhor dimensionado se você tiver um grande número de usuários (ou outros objetos de diretório), fornecer consultas ricas e, geralmente, é mais gerenciável. O LDAP também é suportado nativamente em uma variedade de aplicações, enquanto o NIS tem uma estranha relação incestuosa com o sistema operacional central que pode ser indesejável.
Se você estiver construindo coisas do zero, eu sugeriria o Kerberos para autenticação e LDAP para o seu serviço de diretório.
Sistemas de arquivos
O NFS tem uma grande vantagem: você já o possui, é amplamente implementado e é geralmente estável. Existem duas desvantagens primárias no NFS:
-
Não dimensiona bem para E / S paralela. Se você tem um grande número de máquinas acessando o mesmo sistema de arquivos, seu único servidor NFS pode ter dificuldade em acompanhar. É por isso que os clusters maiores geralmente usam um sistema de arquivos em cluster (como Luster, GlusterFS, GPFS, GFS, etc.) que foi projetado para suportar i / o paralela.
-
Tem um modelo de segurança ruim. Geralmente, as decisões de segurança do NFS são baseadas inteiramente em seu ID de usuário numérico. Se você tem raiz em um sistema que pode montar um sistema de arquivos NFS, você tem acesso a todos os arquivos - porque você sempre pode criar um usuário local com o ID de usuário apropriado. Isso não é estritamente verdadeiro, porque tanto o NFSv3 quanto o NFSv4 possuem vários níveis de suporte para a autenticação Kerberos, mas ainda não encontrei ninguém usando isso ... então sua milhagem pode variar.
Para pequenas implementações, a maioria das pessoas usa o NFS apesar de suas limitações.
Existem várias outras soluções - os sistemas de arquivos em cluster que mencionei acima, bem como o AFS e outros - mas a maioria deles exigirá algum trabalho de sua parte para colocá-los em execução em qualquer distribuição que você tenha selecionado. Eu ouvi coisas boas sobre o GlusterFS recentemente, então se eu estivesse procurando por uma alternativa NFS que poderia ser o primeiro lugar que eu pareço.