autenticação SMB vs NFS

2

Alguém pode me descrever brevemente qual é a maior diferença entre a autenticação SMB e a autenticação do NFS v.3?

Acho que no SMB é baseado no login e na senha do usuário, enquanto no NFS ele é baseado na autenticação do host.

    
por TheOpti 20.05.2014 / 17:50

2 respostas

8

Você basicamente tem isso.

Autenticação de usuário vs máquina vs. compartilhamento

O SMB / CIFS baseia o acesso em credenciais de usuário de algum tipo (sejam eles tokens KRB, pares de usuário / senha ou o que você tem) por sessão em que cada sessão é mapeada para um usuário. O NFSv3 usa autenticação baseada em host, onde todos os usuários de uma determinada máquina remota compartilham a mesma conexão. O SMB / CIFS, especificamente a implementação do Samba, também permite permissão / negação baseada no host, se você precisar do recurso; servidor de arquivos de janela provavelmente funciona tão bem e se não estiver no subsistema do servidor de arquivos, o firewall irá lidar com isso.

O SMB / CIFS também implementa a autenticação baseada em compartilhamento, em que o compartilhamento tem sua própria senha.

O NFSv4 pode ser configurado para usar a autenticação por usuário via kerberos.

Modelo de Confiança

O NFSv3 depende muito da máquina remota para impor permissões, esperando que o remoto envie IDs numéricos verdadeiras e coerentes com a máquina em solicitações, enquanto o SMB / CIFS aplica permissões no disco local com base na conexão (sessão) - usuário remoto autenticado .

Como conseqüência do NFSv3, se um usuário tiver raiz na caixa remota, geralmente (ou seja, por padrão) terá acesso root somente leitura a todo o compartilhamento NFSv3 e poderá representar qualquer outro ID de usuário. Para um compartilhamento em uma máquina de usuário único, o NFS tem all_squash como solução alternativa, mas isso é por IP.

Por outro lado, a maioria das implementações smb.mount do tipo unix (linux pré-3.3, freebsd, solaris) não suportam montagens multi-sessão (multiusuários) em todo o sistema, portanto, ao montar um sistema de arquivos SMB remoto, sessão é como apenas o usuário definido na montagem, viz. todos os usuários agem com as permissões do nome de usuário definido no momento da montagem. O Linux 3.3 e mais recente têm cifrados para mitigar e existem implementações do FUSE SMB / CIFS disponíveis. Como esperado, isso nunca foi um problema com os clientes Windows.

Mapeamento de ID

Também no NFSv3, seus UIDs numéricos devem mapear exatamente: o usuário 1001 na máquina cliente receberá permissões como usuário 1001 no servidor; não há mapeamento de nome de usuário textual. Como o SMB / CIFS liga o ID à sessão, o mapeamento é automático; seu UID de compartilhamento corresponde às suas credenciais.

O NFSv4 tem um daemon para mapeamento de IDs de usuários autenticados no domínio GSS, mas se você ainda não tiver um domínio GSS implantado, provavelmente será mais fácil sincronizar seus UIDs.

ACLs

O NFSv3 e anteriores podem ser um pouco imprecisos com o suporte da ACL (e os xattrs estão certos). As "POSIX ACLs" do NFS são implementadas em um RPC de banda lateral (não no protocolo principal), portanto, há mais algumas coisas que podem dar errado e nem todos os SOs suportam ACLs POSIX do NFS.

O SMB / CIFS geralmente não apresenta problemas com as ACLs. Se você precisar modificá-los, o windows e os clientes unix-like podem modificar os compartilhamentos do Samba com seus mecanismos padrão (GUI e setfacl respectivamente). Não tenho certeza se clientes semelhantes a unix podem modificar permissões do tipo ACL em um compartilhamento de servidor de arquivos do Windows.

O NFSv4 tem ACLs incorporados.

    
por 20.05.2014 / 20:49
1

O SMB e o NFS são apenas meramente protocolos de transporte para mover dados através de uma conexão de rede. Os protocolos não fornecem qualquer tipo de autenticação. Cabe ao servidor que hospeda o compartilhamento fornecer autenticação e permitir / proibir solicitações de conexão.

    
por 20.05.2014 / 20:28