Artigos > Configurando servidor NFS no Debian

1565 Views
Tempo de leitura: 4 Minutos 
Atualizado em:

Neste artigo veremos como configurar de modo prático e seguro um servidor NFS no Debian e/ou no Ubuntu. Os passos a seguir são aplicáveis para Debian 7 (Wheezy) ou superior e Ubuntu 13.10 (Saucy) ou superior.

Instalação de pacotes

A seguir, vamos configurar um servidor NFS. Digamos que o IP do servidor será 192.168.0.10. Ao término da configuração utilizaremos esse IP para montar nosso NFS.

No servidor, precisamos dos pacotes “nfs-common” e “nfs-kernel-server“. Portanto, o primeiro passo é instalá-los:

apt-get update
apt-get install nfs-common nfs-kernel-server

Agora vamos configurá-los.

Configurando o nfs-common no Debian ou Ubuntu

Primeiramente, faça um backup do arquivo de configuração do NFS:

cp /etc/default/nfs-common /etc/default/.nfs-common.bkp.$(date +%Y%m%d)
Aqui foi criado um arquivo oculto no diretório /etc/default. Para listá-lo, use ls -la

Abra o arquivo /etc/default/nfs-common e certifique-se de que o nfs-common esteja com a seguinte configuração:

# If you do not set values for the NEED_ options, they will be attempted
# autodetected; this should be sufficient for most people. Valid alternatives
# for the NEED_ options are "yes" and "no".

# Do you want to start the statd daemon? It is not needed for NFSv4.
NEED_STATD=

# Options for rpc.statd.
#   Should rpc.statd listen on a specific port? This is especially useful
#   when you have a port-based firewall. To use a fixed port, set this
#   this variable to a statd argument like: "--port 4000 --outgoing-port 4001".
#   For more information, see rpc.statd(8) or https://wiki.debian.org/SecuringNFS
STATDOPTS=

# Do you want to start the idmapd daemon? It is only needed for NFSv4.
NEED_IDMAPD=

# Do you want to start the gssd daemon? It is required for Kerberos mounts.
NEED_GSSD=</pre> 

<h2>Configurando o nfs-kernel-server</h2>

<p align="justify">Agora verifique o arquivo <strong>/ec/default/nfs-kernel-server</strong> e o configure do seguinte modo:</p>
 
<pre class="striped:false lang:sh decode:true " ># Number of servers to start up
RPCNFSDCOUNT=8

# Runtime priority of server (see nice(1))
RPCNFSDPRIORITY=0

# Options for rpc.mountd.
# If you have a port-based firewall, you might want to set up
# a fixed port here using the --port option. For more information,
# see rpc.mountd(8) or https://wiki.debian.org/?SecuringNFS
RPCMOUNTDOPTS="--manage-gids --port 892"

# Do you want to start the svcgssd daemon? It is only required for Kerberos
# exports. Valid alternatives are "yes" and "no"; the default is "no".
NEED_SVCGSSD=

# Options for rpc.svcgssd.
RPCSVCGSSDOPTS=

MOUNTD_PORT=892

Criando o diretório que será montado remotamente

Hora de determinar o diretório que será exportado e montado remotamente através do nosso servidor NFS. Esse diretório armazenará os arquivos em nosso servidor.

Crie o diretório que será utilizado como ponto de montagem do servidor NFS:

Exemplo:

mkdir /home/storage

Utilizaremos esse diretório na configuração a seguir.

Configurando /etc/exports

Configurar o /etc/exports envolve o aspécto da segurança. É preciso saber o que está sendo liberado, para quem e como será liberado.

Utilizamos o seguinte formato:

Diretório a ser montado
IP de quem poderá acessar
Permissão de acesso
/home/storage
192.168.0.100
(rw)

Na prática, a configuração será esta:

/home/storage 192.168.0.100(rw)

Este exemplo contém as seguintes liberações:

  • Diretório /home/storage para ser montado via NFS;
  • Somente o endereço IP 192.168.0.100 poderá montá-lo;
  • Permissão rw para leitura e escrita.
Com a configuração exemplo acima, todo arquivo criado no NFS ficará com owner ‘nobody’ que é criado quando instalamos o nfs-common. Isso é um padrão de segurança para evitar que esse storage seja infestado por malwares e coisas do tipo. Caso queira que o owner dos arquivos criados por root dentro desse storage seja mantido como root, adicione a permissão no_root_squash junto ao “rw” separando-os por vírgula. Exemplo: (rw,no_root_squash).

Podemos liberar toda uma rede substituindo, por exemplo, o último octeto do IP pelo caractére asterísco. Exemplo: 192.168.0.*.

Observação: Há outras opções que aperfeiçoam nosso NFS, como o “sync”, “async”, “subtree_check” e “no_subtree_check”. Vale a pena ler sobre cada um deles. Não os abordarei neste artigo.

Continuando nossa configuração, vamos reexportar nosso /etc/exports com o seguinte comando:

exportfs -r

Subindo os serviços

Agora que temos o diretório criado e exportado no /etc/exports, vamos reiniciar os serviços:

services nfs-common restart ; services nfs-kernel-server restart

Feito isso, com o comando `netstat`, verifique que as portas 111, 892 e 2049 estão “ouvindo”:

netstat -nplt | grep "111\|892\|2049"

Montando o NFS

Agora é hora de montar o NFS.

Como liberamos apenas para o IP 192.168.0.100, somente ele conseguirá montar.

Portanto, no computador com IP liberado no /etc/exportfs, siga os passos abaixo:

1 – Logue com “root”;

2 – Crie um diretório para montar o NFS. Exemplo:

mkdir /storage

3 – Vamos montar o NFS. Lembrando que, neste exemplo, o IP do servidor NFS é 192.168.0.10. Portanto, o comando para montar é:

mount 192.168.0.10:/home/storage /storage

Com isso teremos nosso NFS montado. Agora nos basta setar isso no /etc/fstab local para montar automagicamente a cada boot do sistema.

Se isso não funcionar, verifique se há conectividade de rede nas portas supracitadas entre o cliente e o servidor.

4 – Abra o arquivo /etc/fstab para edição e insira o seguinte conteúdo:

192.168.0.10:/home/storage               /storage                nfs     defaults,noatime,_netdev        0 0

O primeiro trecho da conf é o NFS. O /storage é o nosso ponto de montagem local. Utilizaremos o sistema de arquivos “NFS”. Até aqui sem novidades. Vamos utilizar o padrào “defaults” com noatime para acelerar a resposta do nosso NFS e _netdev para que, em caso de problemas no acesso a esse NFS, nosso sistema inicialize sem problemas, mesmo que não consiga montar o NFS. Por fim, utilizamos “0” e “0”, pois não faremos dump dessa partição nem queremos passar FSCK nela.

Qualquer dúvida sobre FSTAB, sugiro ao amigo leitor o Artigo Entendendo o /etc/fstab.

Observações

1 – Dependendo do cenário, precisará aplicar permissão no /home/storage em seu servidor onde o NFS Server roda.

2 – É preciso manter as portas 111, 892 e 2049 liberadas no seu firewall.

Conclusão

Fácil de configurar e de manter, um servidor NFS é algo realmente muito prático. Dependendo da ocasião, pode ser a solução perfeita.

Configurá-lo, como vimos, é mamão com açúcar!

Abraços!

0 - 0

Thank You For Your Vote!

Sorry You have Already Voted!