TL;DR

a much shorter guide is available in the Ubuntu Server Guide If you need more info, read below.

introdução

NFS (sistema de Ficheiros de rede) permite-lhe ‘partilhar’ uma pasta localizada num computador em rede com outros computadores/dispositivos nessa rede. O computador onde o diretório localizado é chamado de servidor e computadores ou dispositivos conectando-se a esse servidor são chamados de clientes. Os clientes normalmente ‘montar’ o diretório compartilhado para torná-lo uma parte de sua própria estrutura de diretório.,

NFS é perfeito para criar NAS (armazenamento ligado em rede) no ambiente Linux/Unix. É um protocolo nativo Linux / Unix em oposição ao Samba que usa o protocolo SMB desenvolvido pela Microsoft. O Apple OS tem um bom suporte para NFS. O Windows 7 tem algum suporte para NFS.

NFS é talvez melhor para mais’ permanentes ‘ diretórios montados em rede, tais como / home diretórios ou recursos compartilhados regularmente acessados. Se quiser uma partilha de rede a que os utilizadores convidados se possam ligar facilmente, o Samba é mais adequado., Isso ocorre porque as ferramentas existem mais facilmente através de sistemas operacionais antigos e proprietários para montar e separar temporariamente as ações do Samba.

Ubuntu antes de implantar o NFS, deverá estar familiarizado com:

  • Linux file and directory permissions
  • montagem e Desmontagem (Desmontagem) sistemas de ficheiros

Este HowTo torna o Ubuntu server NFSv4 pronto.

NFS quick start

desde que compreenda o que está a fazer, use esta passagem rápida para configurar um servidor NFSv4 no Ubuntu (sem segurança de autenticação). Em seguida, montar a parte em um cliente Ubuntu., Foi testado em Ubuntu 14.04.

NFS server

para verificar que o servidor de NFS não está instalado, pode fazê-lo…

  • $ dpkg -l | grep nfs-kernel-server

Instalar os pacotes necessários…

  • # apt-get install nfs-kernel-server

para uma manutenção mais fácil, isolaremos todas as exportações de NFS numa única pasta, onde as pastas reais serão montadas com a opção –bind.

  • digamos que queremos exportar as pastas domésticas dos nossos utilizadores em /home/users., Primeiro criamos o sistema de arquivos de exportação:

    # mkdir -p /export/users 

    é importante que o /export e /export/users tenham 777 permissões, pois estaremos acessando a partilha NFS do cliente sem a autenticação LDAP/NIS. Isto não se aplica se usar a autenticação (ver abaixo)., Agora monte o real diretório de usuários, com:

    # mount --bind /home/users /export/users

    Para salvar-nos de escrever isso após cada reinicialização adicionamos o seguinte

    linha ao /etc/fstab

    /home/users /export/users none bind 0 0

  • A única opção importante em /etc/default/nfs-kernel-server, agora, é NEED_SVCGSSD. É definido como ” não ” por padrão, o que é bom, porque não estamos ativando a segurança NFSv4 desta vez.

para que os nomes de ID sejam mapeados automaticamente, tanto o cliente como o servidor necessitam do /etc/idmapd.,conf file para ter o mesmo conteúdo com os nomes de domínio corretos. Além disso, este arquivo deve ter as seguintes linhas na seção de Mapeamento:

  • Nobody-User = nobodyNobody-Group = nogroup

    no Entanto, o cliente pode ter requisitos diferentes para Ninguém e Ninguém do Grupo. Por exemplo, em variantes RedHat, é nfsnobody para ambos. cat / etc /passwd e cat/etc / group devem mostrar as contas “ninguém”.

desta forma, o servidor e o cliente não precisam que os utilizadores partilhem o mesmo UID/GUID.,

para aqueles que usam a autenticação baseada em LDAP, adicione as seguintes linhas ao idmapd do seu cliente.conf:

Method = nsswitch

isto fará com que o idmapd saiba para olhar para o nsswitch.conf para determinar onde ele deve procurar por informações credenciais (e se você tem a autenticação LDAP já funcionando, nsswitch não deve exigir mais explicações).

exportar nossos diretórios para um local de rede 192.168.1.0/24 que adicionar as seguintes linhas ao /etc/exports

Portmap de Bloqueio

opcional

Adicionar a seguinte linha ao /etc/hosts.,negar:

rpcbind mountd nfsd statd lockd rquotad : ALL

bloqueando todos os clientes em primeiro lugar, apenas os clientes em /etc/hosts.permitir abaixo será permitido acessar o servidor.

Agora adicione a seguinte linha A/etc / hosts.permitir:

rpcbind mountd nfsd statd lockd rquotad : list of IP addresses

onde a cadeia de “Lista de endereços IP” está, você precisa fazer uma lista de endereços IP que consiste no servidor e todos os clientes. Estes têm que ser endereços IP por causa de uma limitação no portmap (ele não gosta de hostnames). Note que se você tiver NIS configurado, basta adicionar estes à mesma linha.,

Nota: Certifique-se de que a lista de autorizadas endereços IP inclui o endereço de localhost (127.0.0.1) como os scripts de inicialização em versões recentes do Ubuntu, use o comando rpcinfo para descobrir NFSv3 de apoio, e este será desativado se o localhost é possível conectar-se.,a unt a exportação completa árvore com um único comando:

podemos também montar um exportados subárvore com:

  • # mount -t nfs -o proto=tcp,port=2049 <nfs-server-IP>:/users /home/users

Para salvar-nos de escrever isso após cada reinicialização vamos adicionar a seguinte linha ao /etc/fstab:

  • <nfs-server-IP>:/ /mnt nfs auto 0 0

    Se após a montagem, a entrada em /proc/mounts aparece como <nfs-server-IP>:// (duas barras) e, em seguida, você pode precisar especificar duas barras em /etc/fstab, ou então umount se queixe de que não é possível encontrar a montagem.,

    a opção automática aumenta no arranque. No entanto, isto não irá funcionar se o seu cliente usar uma ligação Wi-Fi gerida a nível do Utilizador (após a autenticação), porque a rede não estará disponível no arranque. No Ubuntu 12.04 LTS e mais tarde, as conexões Wi-Fi são gerenciadas ao nível do sistema por padrão, então auto-montagem de ações NFS no tempo de arranque deve funcionar bem.

o servidor Ubuntu não vem com nenhum init.d / netfs ou outros scripts para fazer isso para você.

Lockdown Portmap

opcional

adicione a seguinte linha A/etc / máquinas.,negar:

rpcbind : ALL

bloqueando todos os clientes em primeiro lugar, apenas os clientes em/etc / hosts.permitir abaixo será permitido acessar o servidor.

Agora adicione a seguinte linha A/etc / hosts.allow:

rpcbind : NFS server IP address

Where “NFS server IP address” is the IP address of the server. Isto deve ser numérico! É assim que o portmap funciona.

servidor NFS

configuração pré-instalação

nenhuma das seguintes etapas Pré-instalação são estritamente necessárias.

as permissões do utilizador

NFS são baseadas no ID do utilizador (UID)., UIDs de qualquer usuário no cliente deve corresponder aqueles no servidor, a fim de que os usuários tenham acesso. As formas típicas de se fazer isso são:

  • Manual do ficheiro de palavra-passe de sincronização
  • o Uso de LDAP

  • o Uso de NIS

também É importante notar que você tem que ser cuidadoso em sistemas onde o usuário principal tem acesso root – que o usuário pode alterar UID no sistema para permitir-se o acesso de qualquer pessoa arquivos. Esta página assume que a equipe administrativa é o único grupo com acesso root e que todos são confiáveis., Qualquer outra coisa representa uma configuração mais avançada, e não será abordada aqui.

Permissões de grupo

com NFS, o acesso de um utilizador a ficheiros é determinado pela sua pertença a grupos no cliente, não no servidor. No entanto, há uma limitação importante: um máximo de 16 grupos são passados do cliente para o servidor, e, se um usuário é membro de mais de 16 grupos no cliente, alguns arquivos ou diretórios podem ser inesperadamente inacessíveis.

nomes das máquinas

opcional se usar DNS

adicione qualquer nome do cliente e endereços IP a /etc/máquinas. O real (não 127.,0.0.1) o endereço IP do servidor já deve estar aqui. Isto garante que o NFS continuará a funcionar mesmo que o DNS caia. Podes confiar no DNS Se quiseres, depende de ti.

NIS

opcional-execute apenas passos se usar NIS

Nota: Isto só funciona se usar NIS. Caso contrário, você não pode usar o netgroups, e deve especificar IP ou hostnames individuais em /etc/exports. Leia a secção de erros no man netgroup.

edite /etc / netgroup e adicione uma linha para classificar os seus clientes. (Este passo não é necessário, mas é para conveniência).,

myclients (client1,,) (client2,,)

obviamente, mais clientes podem ser adicionados. os miclientes podem ser qualquer coisa que você goste; este é um nome de grupo de rede.

execute este comando para reconstruir a base de dados YP:

sudo make -C /var/yp

Lockdown Portmap

opcional

adicione a seguinte linha A /etc/máquinas.negar:

rpcbind mountd nfsd statd lockd rquotad : ALL

bloqueando todos os clientes em primeiro lugar, apenas os clientes em /etc/hosts.permitir abaixo será permitido acessar o servidor.

Agora adicione a seguinte linha A/etc / hosts.,permitir:

rpcbind mountd nfsd statd lockd rquotad : list of IP addresses

onde a cadeia de “Lista de endereços IP” está, você precisa fazer uma lista de endereços IP que consiste no servidor e todos os clientes. Estes têm que ser endereços IP por causa de uma limitação no portmap (ele não gosta de hostnames). Note que se você tiver NIS configurado, basta adicionar estes à mesma linha.,

Instalação e Configuração

Instalar o Servidor NFS

sudo apt-get install rpcbind nfs-kernel-server

Ações

Edite o arquivo /etc/exports e adicione as partilhas:

/home @myclients(rw,sync,no_subtree_check)/usr/local @myclients(rw,sync,no_subtree_check)

acima de ações /home /usr/local para todos os clientes no myclients netgroup.

As ações / home acima e / usr / local para dois clientes com endereços IP fixos. Melhor usado apenas com máquinas que têm endereços IP estáticos.

/home 192.168.0.0/255.255.255.0(rw,sync,no_subtree_check)/usr/local 192.168.0.0/255.255.255.0(rw,sync,no_subtree_check)

the above shares /home and /usr/local to all clients in the private network falling within the designated ip address range.,

rw faz a partilha ler / escrever, e a sincronização requer que o servidor só responda a pedidos uma vez que quaisquer alterações tenham sido enviadas para o disco. Esta é a opção mais segura (async é mais rápida, mas perigosa. Recomenda-se vivamente que leia a man exports.

Após a criação do /etc / exports, exporta as acções:

sudo exportfs -ra

irá querer fazer este comando sempre que o /etc/exports for modificado.,

Reiniciar os Serviços

Se o /etc/default/portmap foi alterado, portmap precisará ser reiniciado:

sudo service portmap restart

O NFS kernel server também exigirá uma reinicialização:

sudo service nfs-kernel-server restart

Nota de Segurança

Além do UID questões discutidas acima, deve ser destacado que um invasor pode masquerade como uma máquina que é permitido para mapear o compartilhamento, o que lhes permite criar arbitrário UIDs para acessar seus arquivos. Uma solução potencial para isso é IPSec, veja também a seção NFS e IPSec abaixo., Você pode configurar todos os seus membros de domínio para falar apenas uns com os outros sobre o IPSec, que irá autenticar efetivamente que o seu cliente é quem ele diz que é.

IPSec funciona criptografando o tráfego para o servidor com a chave do servidor, e o servidor envia de volta todas as respostas criptografadas com a chave do cliente. O tráfego é descodificado com as respectivas chaves. Se o cliente não tiver as chaves que o cliente deve ter, não pode enviar ou receber dados. uma alternativa ao IPSec é a separação física das redes., Isso requer um switch de rede separado e placas ethernet separadas, e segurança física dessa rede.

NFS Client

Installation

sudo apt-get install rpcbind nfs-common

Portmap Lockdown

optional

Add the following line to /etc/hosts.negar:

rpcbind : ALL

bloqueando todos os clientes em primeiro lugar, apenas os clientes em/etc / hosts.permitir abaixo será permitido acessar o servidor.

Agora adicione a seguinte linha A/etc / hosts.allow:

rpcbind : NFS server IP address

Where “NFS server IP address” is the IP address of the server. Isto deve ser numérico!, É assim que o portmap funciona.

nomes das máquinas

opcional se usar DNS

adicione o nome do servidor a/etc / máquinas. Isto garante que as montagens NFS ainda funcionarão mesmo se o DNS cair. Podes confiar no DNS Se quiseres, depende de ti.

montagens

verifique se tudo funciona

deve tentar montá-lo agora., O modelo básico que você vai usar é:

sudo mount ServerIP:/folder/already/setup/to/be/shared /home/username/folder/in/your/local/computer

por exemplo:

sudo mount 192.168.1.42:/home/music /home/poningru/music

Montagem na inicialização

os mounts NFS pode ser montado automaticamente quando acessado utilizando o autofs ou pode ser a configuração estática montagens usando as entradas em /etc/fstab. Ambos são explicados abaixo.

Automounter

Install autofs:

sudo apt-get install autofs

o seguinte exemplo de configuração configura as pastas domésticas para auto-montar um servidor NFS ao iniciar o registo. Outros diretórios podem ser configurados para montagem automática ao acessar também.,

adicione a seguinte linha ao final de /etc / auto.master:

 /home /etc/auto.home

now create /etc/auto.casa e insira o seguinte:

 * solarisbox1.company.com.au,solarisbox2.company.com.au:/export/home/&

Reinicie o autofs para permitir a configuração:

sudo service autofs start

Static Monta

Antes de configurar as montagens, certifique-se de que os diretórios que irão atuar como pontos de montagem já estão criados.

In / etc / fstab, add lines for shares such as:

servername:dir /mntpoint nfs rw,hard,intr 0 0

The rw Monts it read / write., Obviamente, se o servidor está compartilhando ele só lê, o cliente não será capaz de montá-lo como nada mais do que isso. O hard monta a partilha de tal forma que, se o servidor ficar indisponível, o programa irá esperar até que esteja disponível. A alternativa é suave. o intr permite-lhe interromper/matar o processo. Caso contrário, vai ignorar-te. A documentação para estas opções pode ser encontrada na secção de montagem nfs do man mount.

os sistemas de ficheiros podem agora ser montados com mount /mountpoint, ou mount-a para montar tudo o que deve ser montado no arranque.,

notas

NFS minimalistas criados

as etapas acima são muito abrangentes. O número mínimo de etapas necessárias para a criação de NFS está listado aqui:

http://www.ubuntuforums.org/showthread.php?t=249889

usando grupos com acções de NFS

ao usar grupos em acções de NFS (NFSv2 ou NFSv3), tenha em mente que isto pode não funcionar se um utilizador for membro de mais de 16 grupos. Isto é devido a limitações no protocolo NFS., Poderá encontrar mais informações sobre o Launchpad (“Permissão negada quando o utilizador pertence a um grupo que possui pastas de escrita ou setgid do grupo montadas através do nfs”) e neste artigo: “Qual é o problema da limitação de 16 id do grupo no NFS?”

notas do IPSec

Se estiver a usar o IPSec, a ordem de paragem por omissão no Breezy / Dapper faz com que o cliente seja suspenso à medida que está a ser desligado porque o IPSec desce antes do NFS., Para corrigir isso, faça:

sudo update-rc.d -f setkey removesudo update-rc.d setkey start 37 0 6 S .

Um bug foi arquivado aqui: https://launchpad.net/distros/ubuntu/+source/ipsec-tools/+bug/37536

Resolução de problemas

a Montagem de compartilhamentos NFS criptografados em casa, não trabalho no arranque

a Montagem de um compartilhamento NFS dentro de uma pasta pessoal criptografada só vai funcionar depois que você estiver conectado com êxito e a sua casa é descriptografado. Isto significa que usar o /etc/fstab para montar as partilhas de NFS no arranque não irá funcionar – porque a sua casa não foi descodificada no momento da montagem., Existe uma forma simples de contornar isso usando links Simbólicos:

  • Criar uma alternativa de diretório para montar os compartilhamentos NFS em:
$ sudo mkdir /nfs$ sudo mkdir /nfs/music
  • Edite o /etc/fstab para montar o compartilhamento NFS em que diretório em vez disso:

nfsServer:música /nfs/música nfs auto 0 0

  • Criar um link simbólico dentro de sua casa, apontando para o real local de montagem (no nosso caso, excluir a ‘Música’ o diretório já existente lá primeiro):
$ rmdir /home/user/Music$ ln -s /nfs/music/ /home/user/Music