>_Nfs

Introdução teórica

O NFS Network File System, é um sitema de arquivos especial capaz de exportar um diretório via rede.
Ao importar um diretório, a impressão que o cliente tem é de que o diretório está localizado no próprio computador,  o que torna o acesso e utilização do diretório transparente para o usuário final, o que torna o NFS uma solução interessante para centralização de diretórios pessoais e recursos compartilhados em rede, já que as operações de backup e manutenção serão centralizadas.

Assim como o Samba, o NFS é um servidor que precisa ser habilitado manualmente na maior parte das distribuições. No Fedora, CentOS, Mandriva e outras distribuições derivadas do Red Hat, procure pelo serviço “nfs“. Nas distribuições derivadas do Debian, procure pelo serviço “nfs-kernel-server“.

Para que os cleintes possam acessar o servidor NFS é necessário que os seguintes serviços estejam sendo executados no servidor:

O NFS utiliza um outro serviço, o portmap, para gerenciar as requisições dos clientes. Este serviço precisa estar ativo para que o NFS funcione, ou seja, para inicializar o servidor NFS, você precisa ativar os dois. Nas distribuições derivadas do Debian temos ainda um terceiro serviço, o “nfs-common”, que deve ser ativado antes do módulo servidor, como em:

# /etc/init.d/portmap start
# /etc/init.d/nfs-common start
# /etc/init.d/nfs-kernel-server start
Ou apenas:
# exportfs -a -v

Nas distribuições derivadas do Red Hat você precisa ativar apenas os serviços “portmap” e “nfs”, como em:

# service portmap start
# service nfs start
Ou apenas:
# exportfs -a -v

A configuração do NFS é feita em um único arquivo, o “/etc/exports“, onde vai a configuração dos diretórios compartilhados, um por linha. Originalmente, este arquivo fica vazio, ou contém apenas um comentário.

Com os serviçoes instalados e startados, podemos determinar quais diretórios pretendemos compartilhar, editando o arquivo /etc/exports

Onde temos as seguintes opções mais usadas:

ro – Compartilhar apenas leitura
rw – Compartilhar para leitura e gravação
root_squash – Para que o usuário root seja um usuário limitado nos privilégios
no_root_squash – É justamente ao contrário da opção acima
async – Útil em redes locais pois permite que o NFS transfira arquivos de forma assíncrona, sem precisar esperar pela resposta do cliente a cada pacote enviado, aumenta um pouco a velociadade de transferência de dados.

/diretório_compartilhado ip/mascará (rw,no_root_squash,no_subtree_check)

Por padrão no compartilhamento no compartilhamento, ele sempre assume a opção:
no_subtree_check“, está opção faz com que os subdiretórios do compartilhamento sejam exportados. Veja o manual do /etc/exports em man 5 exports.

Exemplo:

Crie o diretório que será exportado
# mkdir -p /mnt/nfs-1

dentro do arquivo /etc/exports
# vim /etc/exports
/mnt/nfs-1 192.168.0.0/27(rw,root_squash)

Após a configuração do arquivo, reinicie o serviço NFS.

CentOS – /etc/init.d/nfs restart
Debian – invoke-rc.d nfs-kernel-server restart

Verificando em quais portas locais o nfs está trabalhando:
# rpcinfo -p localhost

Clientes

Em máquinas clientes Debian/Ubuntu, basta instalar o pacote nfs-common
# apt-get install nfs-common

Para verificar todos os diretórios compartilhados pelo srv através do comando
# showmount -e 192.168.0.4

Para verificar todas as conexões com oservidor
# showmount -a 192.168.0.4

Para verificar o status do servidor “nfs”, digite o comando
# nfsstat

Para reler os arquivo do /etc/exports, basta executar o comando abaixo
# exports -r

Firewall

NFS abre a porta 111, em micros com duas placas de rede, compartilhando internet e de cara para o mundo. Precisa fechar esta porta para conexões entrante da internet.

Aplique esta regra no firewall.

  # Fechar NFS (portmap) para o mundo
  $iptables -A INPUT -p tcp -i $EXTERNA --syn --dport 111 -j DROP

Caso tenha problemas de conexão e tenha firewall no servidor NFS, tente fazer testes com firewall desabilitado, se funcionar sem firewall, então aplique regras para abrir a porta 111 somente para a rede interna, algo neste formato.

  $iptables -A INPUT -p tcp --dport 111 -i $INTERNA -j ACCEPT
  $iptables -A INPUT -p udp --dport 111 -i $INTERNA -j ACCEPT

Pronto!
Até a próxima.

 

 

 

 

>_Nfs
Tagged on:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: