Estou apenas respondendo a pergunta de segurança aqui, já que é com isso que tenho mais experiência.
O NFS é complicado de proteger. A coisa mais importante que eu poderia recomendar é usar o NFS4 com mecanismos de autenticação do GSS, mas continuarei respondendo como se você estivesse usando o NFS3 (ou mesmo o NFS2).
- Especifique IPs, nomes de host ou netgroups no seu arquivo de exportações. Nunca exporte para
*
, pois isso permite que qualquer pessoa acesse seu compartilhamento em qualquer lugar. - Nunca use as opções
insecure
ouno_root_squash
export.secure
mantém a confiança do servidor limitada à raiz no cliente, não apenas a qualquer usuário, eroot_squash
remapeia solicitações por raiz paranobody
, impedindo o acesso a arquivos confidenciais do sistema por meio do compartilhamento. - Como você já está tentando fazer, não permita o acesso ao portmapper, rpc.nfsd ou rpc.mountd da Internet. Uma boa configuração de rede (firewalls, ACLs de roteador, etc.) garantirá isso, mas a opção
-i
paraportmap
e o uso do arquivohosts.allow
para limitar o acesso a IPs locais também são boas ideias.
Se você quiser testar sua configuração para problemas de segurança, escrevi um programa em Python para contornar os mecanismos básicos de segurança do NFS, NfSpy . Sinta-se à vontade para experimentar e ver se você pode acessar sua exportação de maneiras que você não esperava.
P.S. Em relação às tentativas de reconexão do cliente, consulte a seção MOUNT OPTIONS
da página man do nfs (5). Em geral, as opções retrans
e hard
/ soft
controlam o que você deseja, mas por solicitação. A montagem em si permanecerá ativa mesmo se o servidor ficar inoperante por longos períodos. Essas configurações determinam como as solicitações específicas (leitura, gravação, etc.) são tratadas.