Iremos configurar um servidor
NFS (Network File System), que tem como objetivo compartilhar diretórios e arquivos entre máquinas conectadas em rede, através deste protocolo.
Configurando Server
A Instalação será feita em um Fedora 25, começando com o seguinte comando:
sudo dnf install nfs-utils
Arquivos de configuração:
Diretório Finalidade
/etc/exports Arquivo principal de configuração
/etc/hosts.allow hosts para habilitar acesso
/etc/hosts.deny Hosts para negar acesso
Para utilizar o serviço nfsd, será necessário ativar os itens abaixo:
sudo systemctl enable rpcbind
$ sudo systemctl enable nfs-server
$ sudo service rpcbind start
$ sudo service nfs-server start
Para verificar o status do serviço:
service nfs status
Agora, iremos prover os diretórios de compartilhamento, criando diretórios, arquivos e aplicando permissões:
sudo mkdir -p /home/compartilhamento/leitura
sudo mkdir -p /home/compartilhamento/leituraescrita
sudo mkdir -p /home/compartilhamento/vip
sudo mkdir -p /home/compartilhamento/multirules
sudo chmod 777 /home/compartilhamento/leitura
sudo chmod 777 /home/compartilhamento/leituraescrita
sudo chmod 777 /home/compartilhamento/vip
sudo chmod 777 /home/compartilhamento/multirules
Criando arquivos de teste:
sudo echo 'sou escrita' /home/compartilhamento/leituraescrita/escrita.txt
sudo echo 'sou leitura' /home/compartilhamento/leitura/leitura.txt
sudo echo 'apenas o escolhido' /home/compartilhamento/vip/vip.txt
sudo echo 'aqui tem duas regra' /home/compartilhamento/multirules/multirules.txt
Observação: o parâmetro "-p" do "mkdir", significa "parents", que cria toda a hierarquia até o diretório desejado.
Diretório Finalidade
leitura Apenas leitura
leituraescrita Apenas leitura
vip Apenas uma das máquinas da rede poderá enxergar o diretório
multirules Onde a rede poderá usar leitura e uma máquina poderá editar
Configurando /etc/exports
A configuração precisará da faixa ou IP, onde o compartilhamento será disponibilizado.
Verifique com o comando:
ifconfig
Depois de recuperar a faixa de IP, iremos configurar:
- /home/compartilhamento/leitura 192.168.2.0/255.255.255.0(ro,sync,no_subtree_check,no_root_squash)
- /home/compartilhamento/leituraescrita 192.168.2.0/255.255.255.0(rw,sync,no_subtree_check,no_root_squash)
- /home/compartilhamento/vip 192.168.2.108(ro,sync,no_subtree_check,no_root_squash)
- /home/compartilhamento/multirules 192.168.2.0/255.255.255.0(ro,sync,no_subtree_check,no_root_squash) 192.168.2.108(rw,sync,no_subtree_check,no_root_squash)
Descrição da configuração acima: /diretorio/para/compartilhar → IP_OU_FAIXA_OU_HOST/MASCARA(OPCIONAL) (OPCOES)
No meu caso, minha faixa é 192.168.2.0. Também é possível disponibilizar apenas para um host.
Aplicando mudança, com o comando:
sudo exportfs -ra
Opções disponíveis:
Diretório Finalidade
(rw) Leitura e escrita
(ro) Leitura
(no_root_squash) Impede que usuários root conectados remotamente tenham
privilégios de root
(async) Opção de melhor desempenho onde o servidor grava dados
sem intervalo regular, porém se houver falha durante a
escrita solicitada pelo host, os dados podem ser
perdidos, principalmente se forem feitos por hosts
diferentes ao mesmo tempo
(wdelay) Faz com que o servidor retenha a gravação caso haja
suspeita de outra solicitação de escrita. Somente pode
ser usada com a opção sync
(no_wdelay) O oposto à opção wdelay
(all_squash) Identificar o IDs de usuário e grupo a que serão usados
por usuários remotos
(no_subtree_check) Não é checada a hierarquia de diretório que está sendo
acessada. Para grande volume, tem um desempenho melhor
(sync) Usado por padrão, aguarda a confirmação de escrita quando
o arquivo terminar a escrita
Reiniciando serviço NFS Server:
sudo systemctl restart nfs-server
Caso tenha alterado os arquivos
/etc/hosts.allow ou
/etc/host.deny, será necessário reiniciar o serviço nfs:
sudo systemctl status nfs
Configurando /etc/hosts.allow
sudo vim /etc/hosts.allow
Aplique as seguintes configurações, Usando a mesma faixa ou host da SUA rede:
portmap:192.168.2.0/255.255.255.0
lockd:192.168.2.0/255.255.255.0
mountd:192.168.2.0/255.255.255.0
rquotad:192.168.2.0/255.255.255.0
statd:192.168.2.0/255.255.255.0
Configurando /etc/hosts.deny
sudo vim /etc/hosts.deny
Aplique as seguintes configurações:
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
Finalizado o servidor, iremos ao próximo passo.