1566 Views
Tempo de leitura: 4 MinutosNeste 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)
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:
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.
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.
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!