Android

Como instalar e configurar um servidor nfs no centos 8

Servidor NFS en Centos 8 Para Clientes Windows y Linux (ITLA) - VeryTutos

Servidor NFS en Centos 8 Para Clientes Windows y Linux (ITLA) - VeryTutos

Índice:

Anonim

O Network File System (NFS) é um protocolo de sistema de arquivos distribuído que permite compartilhar diretórios remotos em uma rede. Com o NFS, você pode montar diretórios remotos no sistema e trabalhar com os arquivos na máquina remota como se fossem arquivos locais.

O protocolo NFS não é criptografado por padrão e, ao contrário do Samba, ele não fornece autenticação do usuário. O acesso ao servidor é restrito pelos endereços IP ou nomes de host dos clientes.

Neste tutorial, você seguirá as etapas necessárias para configurar um servidor NFSv4 no CentOS 8. Também mostraremos como montar um sistema de arquivos NFS no cliente.

Pré-requisitos

Supomos que você tenha um servidor executando o CentOS 8 no qual configuraremos o servidor NFS e outras máquinas que atuarão como clientes NFS. O servidor e os clientes devem poder se comunicar através de uma rede privada. Se o seu provedor de hospedagem não oferecer endereços IP privados, você poderá usar os endereços IP públicos e configurar o firewall do servidor para permitir o tráfego na porta 2049 apenas de fontes confiáveis.

As máquinas neste exemplo têm os seguintes IPs:

NFS Server IP: 192.168.33.148 NFS Clients IPs: From the 192.168.33.0/24 range

Configurar o servidor NFS

Esta seção explica como instalar os pacotes necessários, criar e exportar os diretórios NFS e configurar o firewall.

Instalando o servidor NFS

O pacote "nfs-utils" fornece os utilitários e daemons NFS para o servidor NFS. Para instalá-lo, execute o seguinte comando:

sudo dnf install nfs-utils

Quando a instalação estiver concluída, ative e inicie o serviço NFS digitando:

sudo systemctl enable --now nfs-server

Por padrão, no CentOS 8 NFS versões 3 e 4.x estão ativadas, a versão 2 está desativada. O NFSv2 é bem antigo agora e não há motivo para ativá-lo. Para verificar, execute o seguinte comando cat :

sudo cat /proc/fs/nfsd/versions

-2 +3 +4 +4.1 +4.2

As opções de configuração do servidor NFS são definidas nos arquivos /etc/nfs.conf e /etc/nfs.conf . As configurações padrão são suficientes para o nosso tutorial.

Criando os sistemas de arquivos

Ao configurar um servidor NFSv4, é uma boa prática usar um diretório raiz NFS global e vincular a montagem dos diretórios reais ao ponto de montagem do compartilhamento. Neste exemplo, usaremos o diretório /srv/nfs4 como raiz do NFS.

Para explicar melhor como as montagens NFS podem ser configuradas, compartilharemos dois diretórios ( /var/www e /opt/backups ) com diferentes configurações.

O /var/www/ pertence ao usuário e ao grupo apache e /opt/backups pertence ao root .

Crie o sistema de arquivos de exportação usando o comando mkdir :

sudo mkdir -p /srv/nfs4/{backups, www}

Monte os diretórios reais:

sudo mount --bind /opt/backups /srv/nfs4/backups sudo mount --bind /var/www /srv/nfs4/www

Para tornar as montagens de ligação permanentes, inclua as seguintes entradas no arquivo /etc/fstab :

sudo nano /etc/fstab / etc / fstab

/opt/backups /srv/nfs4/backups none bind 0 0 /var/www /srv/nfs4/www none bind 0 0

Exportando os sistemas de arquivos

A próxima etapa é definir os sistemas de arquivos que serão exportados pelo servidor NFS, as opções de compartilhamento e os clientes com permissão para acessar esses sistemas de arquivos. Para fazer isso, abra o arquivo /etc/exports :

sudo nano /etc/exports

Exporte os diretórios www e backups e permita o acesso somente de clientes na rede 192.168.33.0/24 :

/ etc / exportações

/srv/nfs4 192.168.33.0/24(rw, sync, no_subtree_check, crossmnt, fsid=0) /srv/nfs4/backups 192.168.33.0/24(ro, sync, no_subtree_check) 192.168.33.3(rw, sync, no_subtree_check) /srv/nfs4/www 192.168.33.110(rw, sync, no_subtree_check)

A primeira linha contém fsid=0 que define o diretório raiz do NFS /srv/nfs . O acesso neste volume NFS é permitido apenas aos clientes da sub-rede 192.168.33.0/24 . A opção crossmnt é necessária para compartilhar diretórios que são subdiretórios de um diretório exportado.

A segunda linha mostra como especificar várias regras de exportação para um sistema de arquivos. Ele exporta o diretório /srv/nfs4/backups e permite apenas acesso de leitura a todo o intervalo 192.168.33.0/24 e acesso de leitura e gravação ao 192.168.33.3 . A opção de sync informa ao NFS para gravar as alterações no disco antes de responder.

A última linha deve ser auto-explicativa. Para obter mais informações sobre todas as opções disponíveis, digite man exports em seu terminal.

Salve o arquivo e exporte os compartilhamentos:

sudo exportfs -ra

Você precisa executar o comando acima sempre que modificar o arquivo /etc/exports . Se houver algum erro ou aviso, eles serão mostrados no terminal.

Para visualizar as exportações ativas atuais e seu estado, use:

sudo exportfs -v

A saída incluirá todos os compartilhamentos com suas opções. Como você pode ver, também existem opções que não definimos no arquivo /etc/exports . Essas são opções padrão e, se você quiser alterá-las, precisará defini-las explicitamente.

/srv/nfs4/backups 192.168.33.3(sync, wdelay, hide, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/www 192.168.33.110(sync, wdelay, hide, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4 192.168.33.0/24(sync, wdelay, hide, crossmnt, no_subtree_check, fsid=0, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/backups 192.168.33.0/24(sync, wdelay, hide, no_subtree_check, sec=sys, ro, secure, root_squash, no_all_squash)

root_squash é uma das opções mais importantes relacionadas à segurança do NFS. Isso evita que os usuários root conectados dos clientes tenham privilégios root nos compartilhamentos montados. Ele nogroup UID e o GID raiz para nobody / nogroup UID / GID .

Para que os usuários nas máquinas clientes tenham acesso, o NFS espera que os IDs de usuário e grupo do cliente correspondam aos do servidor. Outra opção é usar o recurso de mapeamento de id do NFSv4 que converte os IDs de usuário e grupo em nomes e vice-versa.

É isso aí. Neste ponto, você configurou um servidor NFS no servidor CentOS. Agora você pode passar para a próxima etapa, configurar os clientes e conectar-se ao servidor NFS.

Configuração de firewall

FirewallD é a solução de firewall padrão no Centos 8.

O serviço NFS inclui regras predefinidas para permitir o acesso ao servidor NFS.

Os seguintes comandos permitirão permanentemente o acesso a partir da sub-rede 192.168.33.0/24 :

sudo firewall-cmd --new-zone=nfs --permanent sudo firewall-cmd --zone=nfs --add-service=nfs --permanent sudo firewall-cmd --zone=nfs --add-source=192.168.33.0/24 --permanent sudo firewall-cmd --reload sudo firewall-cmd --zone=nfs --add-source=192.168.33.0/24 --permanent sudo firewall-cmd --reload

Configurar os clientes NFS

Agora que o servidor NFS está configurado e os compartilhamentos são exportados, a próxima etapa configura os clientes e monta os sistemas de arquivos remotos.

Você também pode montar o compartilhamento NFS em máquinas macOS e Windows, mas focaremos nos sistemas Linux.

Instalando o cliente NFS

Nas máquinas do cliente, instale as ferramentas necessárias para montar sistemas de arquivos NFS remotos.

  • Instale o cliente NFS no Debian e Ubuntu

    O nome do pacote que inclui programas para montar sistemas de arquivos NFS em distribuições baseadas no Debian é nfs-common . Para instalá-lo, execute:

    sudo apt update sudo apt install nfs-common

    Instale o cliente NFS no CentOS e Fedora

    No Red Hat e seus derivados, instale o pacote nfs-utils :

    sudo yum install nfs-utils

Montando Sistemas de Arquivos

Trabalharemos na máquina cliente com IP 192.168.33.110 , que possui acesso de leitura e gravação ao sistema de arquivos /srv/nfs4/www e acesso somente leitura ao sistema de arquivos /srv/nfs4/backups .

Crie dois novos diretórios para os pontos de montagem. Você pode criar esses diretórios em qualquer local que desejar.

sudo mkdir -p /backups sudo mkdir -p /srv/www

Monte os sistemas de arquivos exportados com o comando mount :

sudo mount -t nfs -o vers=4 192.168.33.148:/backups /backups sudo mount -t nfs -o vers=4 192.168.33.148:/www /srv/www

Onde 192.168.33.148 é o IP do servidor NFS. Você também pode usar o nome do host em vez do endereço IP, mas ele precisa ser resolvido pela máquina cliente. Isso geralmente é feito mapeando o nome do host para o IP no arquivo /etc/hosts .

Ao montar um sistema de arquivos NFSv4, você precisa omitir o diretório raiz do NFS; portanto, em vez de /srv/nfs4/backups você precisa usar /backups .

Verifique se os sistemas de arquivos remotos foram montados com sucesso usando o comando mount ou df :

df -h

O comando imprimirá todos os sistemas de arquivos montados. As duas últimas linhas são os compartilhamentos montados:

… 192.168.33.148:/backups 9.7G 1.2G 8.5G 13% /backups 192.168.33.148:/www 9.7G 1.2G 8.5G 13% /srv/www

Para tornar as montagens permanentes na reinicialização, abra o arquivo /etc/fstab :

sudo nano /etc/fstab

e adicione as seguintes linhas:

/ etc / fstab

192.168.33.148:/backups /backups nfs defaults, timeo=900, retrans=5, _netdev 0 0 192.168.33.148:/www /srv/www nfs defaults, timeo=900, retrans=5, _netdev 0 0

Para obter mais informações sobre as opções disponíveis ao montar um sistema de arquivos NFS, digite man nfs no seu terminal.

Outra opção para montar os sistemas de arquivos remotos é usar a ferramenta autofs ou criar uma unidade systemd.

Testando o acesso NFS

Vamos testar o acesso aos compartilhamentos criando um novo arquivo em cada um deles.

Primeiro, tente criar um arquivo de teste no diretório /backups usando o comando touch :

sudo touch /backups/test.txt

O sistema de arquivos /backup é exportado como somente leitura e, como esperado, você verá uma mensagem de erro Permission denied :

touch: cannot touch '/backups/test': Permission denied

Em seguida, tente criar um arquivo de teste para o diretório /srv/www como raiz usando o comando sudo :

sudo touch /srv/www/test.txt

Mais uma vez, você verá a mensagem Permission denied .

touch: cannot touch '/srv/www': Permission denied

O diretório /var/www pertence ao usuário apache e esse compartilhamento possui a opção root_squash definida, que mapeia o usuário root para o grupo de usuários e grupos nogroup que não possui permissões de gravação no compartilhamento remoto.

Supondo que exista um apache usuário na máquina cliente com o mesmo UID e GID que no servidor remoto (que deve ser o caso se, por exemplo, você instalou o apache nas duas máquinas), você pode testar para criar um arquivo como apache usuário com:

sudo -u apache touch /srv/www/test.txt

O comando não mostrará saída, o que significa que o arquivo foi criado com sucesso.

Para verificar, liste os arquivos no diretório /srv/www :

ls -la /srv/www

A saída deve mostrar o arquivo recém-criado:

drwxr-xr-x 3 apache apache 4096 Jun 23 22:18. drwxr-xr-x 3 root root 4096 Jun 23 22:29.. -rw-r--r-- 1 apache apache 0 Jun 23 21:58 index.html -rw-r--r-- 1 apache apache 0 Jun 23 22:18 test.txt

Desmontando o sistema de arquivos NFS

sudo umount /backups

Se o ponto de montagem estiver definido no arquivo /etc/fstab , remova a linha ou comente-a adicionando # no início da linha.

Conclusão

Neste tutorial, mostramos como configurar um servidor NFS e como montar os sistemas de arquivos remotos nas máquinas clientes. Se você estiver implementando o NFS na produção e compartilhando dados confidenciais, é uma boa ideia habilitar a autenticação kerberos.

Como alternativa ao NFS, você pode usar o SSHFS para montar diretórios remotos em uma conexão SSH. O SSHFS é criptografado por padrão e muito mais fácil de configurar e usar.

Sinta-se livre para deixar um comentário se tiver alguma dúvida.

terminal de montagem nfs centos