implicações de usar o NFSv4 fsid = 0 e exportar a raiz NFS para toda a LAN (ou não)

2

Nos tutoriais sobre o NFSv4, é comum ver a recomendação de exportar um diretório raiz compartilhado para a sub-rede inteira, semelhante a este do wiki do Arch:

/ etc / exports:

/srv/nfs        192.168.1.0/24(rw,sync,crossmnt,fsid=0,no_subtree_check)
/srv/nfs/music  192.168.1.0/24(rw,sync,no_subtree_check)
/srv/nfs/public 192.168.1.0/24(ro,all_squash,insecure,no_subtree_check) desktop(rw,sync,all_squash,anonuid=99,anongid=99,no_subtree_check)

Seria mais seguro não ter a primeira linha? (Em toda a minha pergunta, quando menciono "primeira linha", estou me referindo à primeira linha de exportação no snippet acima.)

Com o NFSv4, fsid = 0 é opcional, e parece ser uma conveniência para encurtar o caminho (traduzindo / srv / nfs para /). Nos meus testes preliminares, as exportações funcionam corretamente sem a primeira linha, desde que você use / srv / nfs. Quais são as funções importantes que essa primeira linha fornece?

Eu também quero considerar o exemplo quando sabemos que há pelo menos mais uma montagem de bind como esta:

/srv/nfs/projects

(Suponha que o conteúdo de "projetos" seja sensível, ao contrário da montagem de bind de música.)

A primeira linha de exportação, como está escrita acima, parece dar a cada cliente no acesso LAN para todo o sistema de arquivos exportado, especialmente com crossmnt e, no_subtree_check. Não estou sugerindo que as permissões de proprietário e grupo sejam ignoradas, mas estou pensando que as exportações funcionariam tão bem sem a primeira linha e que as outras associações de bind sob / srv / nfs (como / srv / nfs / projects) não seria desnecessariamente aberto para toda a sub-rede, expondo eventuais descuidos em torno das permissões do proprietário e do grupo.

Naturalmente, pode-se adicionar uma exportação semelhante a isso corretamente "projetos":

/ etc / exports:

/srv/nfs/projects 192.168.1.123(rw,sync,root_squash,subtree_check)

Esta nova linha é afetada de alguma forma pela primeira linha? Não consigo ver como a primeira linha de exportação serviu a qualquer propósito importante.

Se a linha for útil ou recomendada, seria sensato fazer algo assim?

/srv/nfs        192.168.1.0/24(ro,sync,fsid=0,subtree_check,all_squash)

É correto que as exportações mais específicas que se seguem substituam essa? Por exemplo, a seguinte linha forneceria acesso RW a "música" mesmo quando a primeira linha fosse alterada para ro e se tornasse mais restritiva como no exemplo abaixo?

/srv/nfs        192.168.1.0/24(ro,sync,fsid=0,subtree_check,all_squash)
/srv/nfs/music  192.168.1.2(rw,sync,no_subtree_check)

A ordem é importante para listar as exportações? O que determina precedência? Endereços mais específicos (por exemplo, 192.168.1.2) substituem os mais gerais (192.168.1.0/24)?

OBSERVAÇÃO: há um único tema focalizado nesta questão, e provavelmente poderia usar um título melhor para deixar isso claro, mas não estou chegando com o título certo para isso até agora. Congratulo-me com edições.

    
por MountainX 02.03.2018 / 04:23

0 respostas

Tags