(M)  s i s t e m a   o p e r a c i o n a l   m a g n u x   l i n u x ~/ · documentação · suporte · sobre

  Página seguinte Página anterior Índice

633. Configurando um Servidor NFS

633.1 Pré-Requisitos

Antes de continuar a ler este Como fazer, será necessário poder executar o programa telnet de e para as máquinas que serão usadas como servidor e cliente. Caso isso não esteja funcionando, pedimos que seja checada a rede e sugerimos a leitura do Como Fazer Net-2 para configurar a rede adequadamente.

633.2 Primeiros Passos

Antes que se possa fazer qualquer coisa, será necessário ter um servidor NFS configurado. Caso se faça parte de alguma rede de um departamento ou rede universitária provavelmente já existirão diversos servidores NFS sendo executados. Casos eles permitam o acesso ou ao invés disso, se esteja lendo este Como Fazer para se obter acesso a um servidor NFS, não é necessário ler esta seção, podendo passar diretamente à seção configurando um cliente NFS.

Caso se necessite configurar um sistema diferente do Linux para atuar como servidor, será necessário ler o manual do sistema para descobrir como habilitar o NFS e a exportação de sistemas de arquivos. Há uma seção neste documento explicando como fazer isto em muitos sistemas diferentes. Após se descobrir isso tudo pode-se continuar na leitura desta seção.

Aqueles que continuaram a sua leitura estão avisados: vamos ter que configurar uma série de programas.

633.3 O portmapper

O portmapper no Linux é chamado também de portmap ou rpc.portmap. A página de manual online diz que se trata de "mapeador de portas DARPA para números de programas RPC". Este é o primeiro problema de segurança com o qual nos deparamos neste Como Fazer. A descrição de como evitar estes problemas podem ser encontrada na seção de seguranção, a qual eu repito que deve ser lida.

Inicializando o portmapper! Ele é chamado de portmap ou rpc.portmap e deve estar localizado no diretório /usr/sbin (em algumas máquinas ele é chamado de rpcbind). Pode-se inicializá-lo manualmente por hora, mas ele deverá ser reinicializado toda vez que o sistema operacional for ativado, sendo então necessário editar os programas rc. Este programas são explicados mais detalhadamente na página de manual do processo init, e usualmente estão localizados nos diretórios /etc/rc.d, /etc/init.d ou /etc/rc.d/init.d. Caso haja um programa chamado inet ou algo similar, este provavelmente será aquele que deve ser editado. Porém, como fazê-lo está além do escopo deste documento. Deve-se iniciar o programa portmap e verificar se ele está ativo através do comando ps aux. Encontrou-o? Ótimo.

633.4 Mountd e nfsd

Os próximos programas que necessitam ser executados são chamados mountd e nfsd. Porém, antes, é necessário editar outro arquivo. Desta vez o /etc/exports. Digamos que se deseje que o sistema de arquivo /mn/parolin/local, o qual está localizado na máquina parolin se torne disponível para a máquina chamada batel. Deve-se então utilizar a seguinte configuração no arquivo /etc/exports na parolin:


/mn/parolin/local       batel(rw)

As linhas acima fornecem a batel acesso de leitura e gravação (rw) para /mn/parolin/local. Ao invés de rw poderíamos informar ro, o que fornece acesso somente para leitura e que é o padrão quando este parâmetro não é informado. Há diversas opções que podem ser utilizadas e que serão discutidas juntamente com aspectos de segurança mais adiante. Elas estão descritas nas páginas de manual online do comando exports, a qual deve ser lida ao menos uma vez na vida. Há ainda formas melhores de incluir diversas máquinas no arquivo exports. Pode-se por exemplo, usar grupos de rede caso se esteja utilizando NIS (ou NYS) (NIS foi conhecido como YP) e especificar sempre um domínio com caracteres de generalização, ou subredes IP como máquinas que têm permissão para montar algo. Porém é necessário considerar que poderá ser possível obter acesso ao servidor de forma não autorizadas caso se utilize autorizações tão genéricas.

Nota: o arquivo exports não tem a mesma sintaxe que em outros Unixes. Há uma seção específica neste Como fazer sobre arquivos exports de outros sistemas.

Agora que configuramos o mountd (ou talvez ele seja chamado rpc.mountd) e o nfsd (o qual pode ser chamado rpc.nfsd), ambos irão ler o arquivo exports.

Caso se edite o /etc/exports deve-se estar seguro de que os programas nfsd e mountd fiquem cientes destas alterações. A forma tradicional é através da execução do comando exportfs. Muitas distribuições Linux não possuem o programa exportfs. Caso este seja o seu caso, pode-se instalar o seguinte programa na máquina local:


#!/bin/sh
killall -HUP /usr/sbin/rpc.mountd
killall -HUP /usr/sbin/rpc.nfsd
echo re-exportando sistemas de arquivos

O programa acima deve ser salvo, como por exemplo como /usr/sbin/exportfs, e deve ser executado o comando chmod a+rx exportfs. Agora, toda vez que uma alteração for efetuada, deve-se executar o comando exportfs a seguir, com privilégios de superusuário.

Agora deve-se checar se mountd e nfsd estão sendo adequadamente executados. Inicialmente deve-se executar o comando rpcinfo -p. Ele deverá apresentar uma saída similar a:


   program vers proto   port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp    745  mountd
    100005    1   tcp    747  mountd
    100003    2   udp   2049  nfs
    100003    2   tcp   2049  nfs

Como se pode perceber, o portmapper anunciou os seus serviços, assim como mountd e nfsd.

Caso se obtenha uma mensagem similar a rpcinfo: não foi possível contactar o portmapper: RPC: Erro no sistema remoto - Conexão recusada ou algo similar, possivelmente o portmapper não esteja sendo executado. Caso se obtenha uma mensagem similar a Nenhum programa remoto registrado. então, ou o portmapper não deseja falar com a máquina local ou existe algum erro. Pode-se finalizar o nfsd, o mountd e o portmapper e tentar reiniciá-los nesta ordem novamente.

Após verificar os serviços disponíveis segundo o portmapper, pode-se fazer uma checagem através do comando ps. O portmapper continuará a reportar um serviço, mesmo após o programa responsável ter sido finalizado com erro, por exemplo. Então um comando ps poderá ser a maneira mais simples de descobrir que programas estão efetivamente sendo executados.

Evidentemente, será necessário modificar os arquivos rc do sistema para inicializar o mountd e o nfsd, assim como o portmapper, quando o sistema operacional for carregado. É muito provável que estes programas já existam na máquina local e que se deva somente descomentar as seções adequadas ou ativá-los nos níveis de execução corretos.

Páginas de manual online que já devem ter sido visitadas até agora: portmap, mountd, nfsd, e exports.

Bem, caso tudo tenha sido feito exatamente como foi descrito aqui, já temos à disposição todo o conjunto de ferramentas necessárias para iniciar um cliente NFS.


Página seguinte Página anterior Índice