Como instalar e configurar servidor NFS – Linux

nfs

O NFS (Network File System) é uma solução amplamente usada para compartilhamento de arquivos em rede em sistemas Linux. Ele permite que arquivos e diretórios em um servidor sejam acessados remotamente como se estivessem localmente na máquina do cliente.

Caso esteja precisando apenas configurar um cliente NFS, veja nosso post sobre o assunto.

Configurar um NFS Server é simples e oferece várias opções de controle de acesso e restrições de rede. Neste tutorial, vamos abordar a instalação e configuração do NFS Server no Debian e Red Hat em uma abordagem combinada, já que os passos são bastante semelhantes.

Instalação

No Debian, a instalação é feita usando o apt:

sudo apt update
sudo apt install nfs-kernel-server

No Red Hat, usamos o dnf para instalar os pacotes necessários:

sudo dnf install nfs-utils

Ambos os sistemas exigem a instalação do pacote correspondente ao servidor NFS.

Iniciar e Habilitar o Serviço

No Red Hat e no Debian, o serviço NFS precisa ser iniciado e habilitado para iniciar automaticamente:

sudo systemctl enable --now nfs-server

Configuração do NFS Server

Criar o Diretório a Ser Compartilhado

Crie o diretório que será compartilhado via NFS:

sudo mkdir /srv/nfs_share
sudo chown nobody:nogroup /srv/nfs_share # Debian
sudo chown nfsnobody:nfsnobody /srv/nfs_share # Red Hat
sudo chmod 755 /srv/nfs_share

Apenas os IDs de usuários/grupos são diferentes entre Debian e Red Hat. No Debian, usamos nobody:nogroup, enquanto no Red Hat usamos nfsnobody:nfsnobody.

Configurar o Arquivo de Exportação

Edite o arquivo /etc/exports para definir os diretórios que serão compartilhados e aplicar restrições de rede:

sudo nano /etc/exports

Adicione as seguintes linhas para exportar o diretório com permissões e restrições de rede configuráveis:

/srv/nfs_share 192.168.1.0/24(rw,sync,no_subtree_check) # Rede local com permissão de leitura e escrita
/srv/nfs_share 192.168.2.0/24(ro,sync,no_subtree_check) # Somente leitura para outra rede
/srv/nfs_share 10.10.0.0/16(ro,sync,no_root_squash) # Rede com permissão root
/srv/nfs_share 172.16.0.0/16(rw,sync,root_squash) # Permissão com root restrito

Opções Explicadas:

  • rw/ro: Permite leitura e escrita (rw) ou somente leitura (ro).
  • sync: Garante que as operações de escrita no NFS sejam síncronas e gravadas diretamente no disco.
  • no_subtree_check: Evita verificações de subárvore, melhorando a performance.
  • root_squash: Restringe os privilégios de root nos clientes.
  • no_root_squash: Permite que o root no cliente tenha privilégios de root no servidor.

Aplicar as Configurações

Após configurar o arquivo /etc/exports, reinicie o serviço NFS para aplicar as mudanças:

sudo systemctl restart nfs-server

Atualize as exportações para que o sistema carregue as novas permissões:

sudo exportfs -a

Ajustar o Firewall

Permitir o tráfego NFS pelo firewall é essencial para garantir que as máquinas clientes possam acessar os diretórios compartilhados.

Usamos firewall UFW, execute:

sudo ufw allow from 192.168.1.0/24 to any port nfs
sudo ufw allow from 192.168.2.0/24 to any port nfs

Usamos firewall-cmd, execute:

sudo firewall-cmd --add-service=nfs --permanent
sudo firewall-cmd --reload

Usando iptables, execute:

sudo iptables -A INPUT -p tcp --dport 2049 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 2049 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 111 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 111 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 20048 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 20048 -j ACCEPT

Usando nftables, execute (troque table filter e chain input para o que usar no seu ambiente):

sudo nft add rule inet filter input tcp dport {2049,111,20048} accept
sudo nft add rule inet filter input udp dport {2049,111,20048} accept

Conclusão

Configurar um servidor NFS no Debian e no Red Hat segue um fluxo bem semelhante. A maior parte do processo é compartilhada entre os dois sistemas, com exceções mínimas nos detalhes de permissões e comandos. Com essas configurações, você pode controlar quem tem acesso a quais dados, oferecendo segurança e flexibilidade na configuração de compartilhamento de arquivos em redes corporativas ou domésticas.

Fontes:
https://kifarunix.com/install-and-setup-nfs-server-on-debian-12/
https://www.linuxtechi.com/setup-nfs-server-on-centos-8-rhel-8/

Publicar comentário