NFS HOWTO

Nicolai Langfeldt janl@math.uio.no
V0.5, 9 de março de 1997.
Traduzido por: Bruno H. Collovini - buick@microlink.com.br
Tradução 23 de Julho de 1997.

Aviso: Esta tradução não está relacionada com o Projeto de Documentação do Linux LDP) que no Brasil é representada pela LDP-BR em <http://www.dca.fee.unicamp.br/~malheiro/linux/LDP-br.html>, este material é uma tradução técnica e básica somente para auxiliar os colegas com a leitura em português.

Outros documentos você pode obter em: <http://www.microlink.com.br/~buick/>

HOWTO montando clientes e servidores de NFS.

1. Preâmbulo

1.1. Materiais legais

(C)opyright 1997 Nicolai Langfeldt e Alan Cox. Não modifique se emendar registre, distribua livremente mas retenha esta mensagem protegido por direitos autorais.

1.2. Outros materiais

Este documento nunca será terminado, por favor envie-me mail com seus problemas e sucessos, para fazer melhor este HOWTO. Então por favor envie dinheiro, comentários e/ou perguntas a janl@math.uio.no. Se você for enviar E-mail por favor tenha certeza que o endereço de retorno está correto, eu recebo muitos E-mail. Por favor.

Se você quizer traduzir este HOWTO me notifique assim eu posso manter um rastro de que idiomas foi publicado :-).

Maldições e graças a Olaf Kirch que conseguiu que eu escrevesse e então deu boas sugestões :-)

1.3. Dedicação

Este HOWTO é dedicado a Anne Line Norheim. Embora ela provavelmente nunca ira ler isto desde que ela não seja este tipo de menina.

2. README.first

NFS, o Sistema de Arquivo de Network tem duas características importantes:

· que faz para compartilhando de arquivos em cima de uma network possível.

· abre um grande risco de segurança pelos que são bem compreendidos pelos crackers, e facilmente explorados para adquirir acesso a (leitura, escrever e apaguar) para todos os seus arquivos.

Eu direi algo em ambos os assuntos neste HOWTO. Por favor tenha certeza que você leu todo este HOWTO, e você não será vulnerável a menos a riscos de segurança tolos. Não diga que eu não o adverti. As passagens sobre segurança são às vezes bem técnicas e requerer alguns conhecimentos sobre networking de IP e as condições usadas. Se você não sabe ou não reconhece estas condições você pode regressar para conferir o HOWTO networking, obtenha, ou adquira um livro sobre TCP/IP admininstração de network para se familiarizar com o TCP/IP. Isso é de qualquer maneira uma boa idéia se você é um administrador de máquinas de UNIX/Linux. Um bom livro com o mesmo assunto é Administração de Network TCP/IP por Craig Hunt, publicado pela O'Reilly & Associates, Inc. E depois de você ler e entender você vai ter o seu valor mais alto no mercado de trabalho, você não pode acreditar ;-)

3. Montando um servidor de NFS

3.1. Condições prévias

Antes de você continuar lendoeste HOWTO você precisará ser capaz de dar um telnet de um lado para o outro entre a máquina que você está usando como servidor e o cliente. Se isso não funciona você precisa conferir o HOWTO Networking/NET-2 e montar a sua network corretamente.

3.2. Começando o path

Antes de nós possamos fazer qualquer outra coisa precisamos de um servidor de NFS montado. Se você é parte de um departamento ou network de uma universidade há provavelmente numerosos Servidores de NFS já montados. Se eles lhe deixarão adquirir acesso à eles, ou realmente, se você está lendo este HOWTO para adquirir acesso para um deles você não precisa ler esta seção obviamente e pode saltar à frente para a seção ``montando um cliente de NFS''.

Se você precisa montar um não-Linux box como servidor que você terá que ler o manual(is) de sistema que irão descobrir como habilitar o NFS que serve e exportar o sistema de arquivo por NFS. As palavras chaves (Keywords) são: nfsd, ferramenta de administração de sistema, scripts de rc, scripts de boot, seqüência de boot, /etc/exports, exportfs. Depois que você configurar tudo aquilo de fora você pode continuar lendo a próxima seção deste HOWTO. Ou ler mais nesta seção como algumas das coisas que eu direi que são pertinente e não importa que tipo de máquina que você usa como servidor.

Se você ainda esta lendo precisará configurar vários programas.

3.3. O portmapper

O portmapper em Linux é chamado de portmap ou rpc.portmap. A página de man do meu sistema diz que é uma "porta de DARPA e mapeamento de programa pelo número de RPC''. É o primeiro furo de segurança que você sabe ao ler este HOWTO. Descrição de como fechar um dos buracos é na seção de ``segurança''. O qual eu, novamente lhe direi.

Comece o portmapper. É chamado portmap ou rpc.portmap e deveria estar no diretório de /usr/sbin (em algumas máquinas é chamado de rpcbind). Você pode começar à por a mão agora, mas precisará ser recomeçado toda vez que você da o boot em sua máquina assim você precisará make/edit o script de rc. Seus scripts de rc são explicados melhores na página do man init, eles normalmente residem em /etc/rc.d, /etc/init.d ou /etc/rc.d/init.d. Se há um script chamado algo como inet provavelmente é o script certo para se editado. Mas, o que o script fazas é fora do âmbito deste HOWTO. Comece o portmap, e cheque se esta vivo rodando o ps -aux. Sim? Bom.

3.4. Mountd e o nfsd

Os próximos programas nós precisamos rodar o mountd e o nfsd. Mas primeiro nós precisamos editar outro arquivo. O /etc/exports agora. Digo eu quero o arquivo /mn/eris/local do sistema que se mantém na máquina eris para estar disponível à máquina chamada apollon. Então eu diria isto no /etc/exports do eris:

  ______________________________________________________________________
  /mn/eris/local  apollon(rw)
  ______________________________________________________________________

A linha a acima dá ao apollon leitura/escritura (read/write) o acesso a /mn/eris/local. Em vez de rw poderia dizer ro que só le (se você pode não deixe o default somente para leitura). Há outras opções que você pode usar, e eu discutirei um pouco de segurança depois relacionado. Eles são enumerados nas exportações na página man que você deveria ter lido pelo menos uma vez em sua vida. Também há modos melhores listando todos os hosts no arquivo de exportações. Você pode usar grupos net por exemplo se você está correndo NIS (ou NYS) (NIS era conhecido como YP), e sempre especifica o domínio atráves dos cartões e o IP-subnets como hosts para os que são permitidos montar logo. Mas você deve considerar que pode adquirir acesso para o servidor sem autorização se você usa tais autorizações gerais.

Nota: exporta arquivos não é a mesma sintaxe que usado em outros Unixes. A maioria dos outros Unixes usam um formato com opções separadas por vírgulas (,) e lista de hosts separado por dois pontos (:). Há um ``exemplo pequeno mais adiante'' na seção de otimização. Com exceção do Solaris 2 que é completamente diferente.

Agora nós podemos começar a configurar o mountd (ou talvez chamar rpc.mountd e então o nfsd (que poderia ser chamado em rpc.nfsd). Ambos irão ler o arquivo de exportação (exports). Se você editar o arquivo /etc/exports você terá que fazer com que o nfsd e mountd saiba que os arquivos foram mudados. Na maioria dos sistemas de Unix o comando é exportfs. Se você usar exportfs-less você pode instalar este script em sua máquina:

  ______________________________________________________________________
  #!/bin/sh
  killall -HUP /usr/sbin/rpc.mountd
  killall -HUP /usr/sbin/rpc.nfsd
  echo re-exported file systems
  ______________________________________________________________________

Salve em, digamos em, /usr/sbin/exportfs, e não esquece de usar o chmod a+rx. Agora, sempre que você mudar o seu arquivo de exportações, você rode o exportfs depois de, esta como root.
Agora você deve conferir aquele mountd e o nfsd se estão rodando corretamente. Primeiro com o rpcinfo -p. deve mostrar algo assim:

    ______________________________________________________________________
     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 você vê o portmapper anunciou os serviços, e assim temos o mountd e o nfsd.

Se você adquirir do rpcinfo: an't contact portmapper: RPC: Remote system error

- A Conexão recusou ou algo semelhante ao invés então o portmapper não está rodando. Configure-o. Se você não adquirir: No remote programs registered. então ou o portmapper não quer falar a você, ou algo está quebrando. Mate(kill) o nfsd, mountd e o portmapper e tente a sequência novamente.

Depois de conferir que o portmapper informa os serviços que você pode conferir com o ps também. O portmapper continuar informando os serviços depois dos programas que os acessam acabar. Assim um checamento com o ps é inteligente se algo parece quebrando.

Claro que, você precisa modificar o seu sistema de arquivos de rc para começar o mountd e o nfsd como também o portmapper quando você da um boot. É muito provável que os scripts já existem em sua máquina, você tera uma seção comentada e crítica ou ativa disto no init rodando em seu sistema.

As Páginas do man ao qual você agora deve estar familiarizado com o: portmap, mountd, nfsd, e exports.

Bem, se você fez tudo exatamente como eu disse você deve estar com tudo configurado para começar o cliente do NFS.

4. Montando o cliente de NFS

Primeiro você precisará de um kernel com o arquivo de NFS no sistema compilado ou disponível como um módulo. Isto é configurado antes de você compilar o kernel. Se você nunca compilou um kernel antes você pode precisar conferiri o HOWTO kernel e entender. Se você está usando um distribuição mais recente (gosto do Red Hat) e você nunca tocou violino com o kernel ou módulos nisto (e assim arruinou isto ;-), nfs é estará provávelmente disponível automaticamente para você.

Você pode agora, usar o promot do root, entre com o comando apropriado de mount e o sistema de arquivo aparecerá. Continuando o exemplo da seção anterior ao qual nós queremos montar o /mn/eris/local do eris. Isto é feito com este comando:

  ______________________________________________________________________
  mount -o rsize=1024,wsize=1024 eris:/mn/eris/local /mnt
  ______________________________________________________________________

(Nós voltaremos ao rsize e opções de wsize). O sistema de arquivo esta agora disponível debaixo do /mnt e você pode dar um cd lá, e ls, e olhar os arquivos individualmente. Você notará que não é tão rápido quanto um sistema de arquivo local, mas muito mais conveniente que o ftp. Se, em vez de montando o sistema de arquivo, o mount produzir uma mensagem de erro como monte: eris:/mn/eris/local failed, a razão dada pelo servidor: Permission denied então o arquivo de exportações está errado, ou você esqueceu de rodar o exportfs depois de editando o arquivo de exportações. Se for dito no mount clntudp_create: RPC:

O Programa não registrou significa que o nfsd ou mountd não está rodando no servidor.

Para desligar o sistema de arquivo você pode usar

______________________________________________________________________ umount /mnt ______________________________________________________________________

Para fazer o sistema montar um sistema de arquivo de nfs no boot você precisá editar o arquivo /etc/fstab da maneira normal. Para o nosso exemplo uma linha para isto é é requerido:

  ______________________________________________________________________
  # device      mountpoint     fs-type     options              dump fsckorder
  eris:/mn/eris/local  /mnt    nfs        rsize=1024,wsize=1024 0    0
  ______________________________________________________________________

Isso é tudo tambem, por agora. Por favor prossiga lendo.

4.1. Otimizando o NFS

Normalmente, se não são especificados nenhum rsize e opções de wsize o NFS lê e escreve em pedaços grandes de 4096 ou 8192 bytes. Mas um pouco de combinações de Kernelde Linux e placas de network não podem receber, e não pode ser bom, de qualquer maneira. Assim nós temos que experimentar e achar um rsize e wsize que rode e seja tão rápido quanto o possível. Você pode testar a velocidade de suas opções com alguns comandos simples. Dado o comando de mount sobre e você tem que escrever acessos ao disco você pode fazer isto para testar o desempenho de escrita seqüêncial:

  ______________________________________________________________________
  time dd if=/dev/zero of=/mnt/testfile bs=16k count=4096
  ______________________________________________________________________

Isto cria um arquivo de 64Mb de bytes zerados. Faça um par (5-10?)de tempos e calcule a média das vezes. É o `Elapsed' ou `Wall clock' do tempo isso é muito interessante nesta conexão. Então você pode testar o desempenho de leitura lendo o arquivo anterior:

  ______________________________________________________________________
  time dd if=/mnt/testfile of=/dev/null bs=16k
  ______________________________________________________________________

faça várias vezes e uma média. Então umount, e monte novamente com um rsize maior e o wsize. Eles deve ser múltiplos de 1024, e provavelmente não maior quanto 16384 bytes, desde que os blocos grandes reduzem a velocidade abaixo acessos. Diretamente depois de montar com um cd no maior tamanho do sistema de arquivo montado e fazer coisas como o ls, explore o fs um bit para ter certeza de tudo como deve. Se o rsize/wsize é muito grande os sintomas são muito estranhos e não são 100% óbvio. Um típico sintoma é listas de arquivo incompletas quando fazemmos 'ls' sem erro de mensagens. Ou lendo arquivos que falham misteriosamente sem erro de mensagens. Depois de estabelecer o que é determinado para trabalhar com o rsize/wsize você pode fazer o teste de velocidade novamente. Plataformas de servidor diferentes são prováveis para ter ótimos tamanhos diferentes. SunOS e Solaris é supostamente muito mais rapidos com 4096 byte de blocks que com qualquer outro.

Kernel de Linux mais novos (desde 1.3 até hoje) execute lendo à o ahead para rsizes maiores ou igual ao tamanho da página do man. Em cpus de Intel o tamanho da página é 4096 bytes. Leia o ahead e aumentará significativamente a leitura do desempenho do NFS. Assim em uma máquina de Intel você quer 4096 rsize de byte é possível.

Lembre-se de editar o /etc/fstab para refletir o rsize/wsize que você quer.

Um truque para aumentar o desempenho da escritura do NFS é incapacitar o síncronismo de escritura do servidor. Os NFS especificação os estados que NFS escrevem os pedidos e não serão considerados acabados antes dos dados escritos é em média não-volátil (normalmente o disco). Isto restringe o desempenho de escritura um pouco, e a escritura assíncrona fará o NFS rodar depressa. O nfsd do Linux nunca faz síncronismo de escritura desde a implementação do arquivo do sistema do Linux não empresta a isto, mas em servidores não-Linux você pode aumentar o desempenho deste modo em seu arquivo de exportações:

  ______________________________________________________________________
  /dir    -async,access=linuxbox
  ______________________________________________________________________

ou algo semelhante. Por favor refira-se às páginas do export da máquina em questão.

4.2. Outras opções

Há algumas outras opções ao qual você deve considerar e combinando imediatamente. O modo de governo do cliente do NFS diriciona um crash no servidor. Há dois modos de fracasso distintos:

     soft
        O cliente de NFS informa e o erro para o processo que tem acesso a
        um arquivo de NFS montado no sistema de arquivo. Alguns programas
        podem direcionar isto com compostura, a maioria não vai. Eu não
        posso recomendar usar isto na configuração.

     hard
        O programa que tem acesso a um arquivo em um NFS arquivo testa
        o declinamento do sistema quando os crash de servidor. O
        processo não pode ser interrompido ou matado a menos que você
        também especifique intr. Quando o servidor de NFS esta online o
        programa continuará imperturbado onde era. Isto provavelmente é
        o que você quer. Eu recomendo usar  hard,intr em todo os NFS
        montados em sistemas de arquivo.

Obtendo o exemplo anterior, e assumindo que você achou que 4096 bytes seria ótimo para read/write segundo a classificação do tamanho, esta agora em seu fstab:

  ______________________________________________________________________
  # device      mountpoint     fs-type    options                  dump fsckorder
  eris:/mn/eris/local  /mnt    nfs        rsize=4096,wsize=4096,hard,intr 0 0
  ______________________________________________________________________

5. Segurança e NFS

Eu não sou nenhum perito em segurança de computador. Mas eu fui além do bloco e assim eu tenho um pouco de conselho para uma segurança consciente. Mas seja advertido: Isto não é uma lista completa de problemas relacionados ao NFS e se você pensa que está seguro somente com leitura e implementa tudo Eu tenho uma dica que eu quero lhe dar.

Esta seção provavelmente não é nenhuma preocupação se você está em uma network protegida onde você confia em todos os seus usuários, e se você não confia em nenhum que pode adquirir acesso a máquinas na network. I.e., não deveria haver nenhum modo para acessar a network, e não deveria ser conectado de nenhuma maneira por outras networks onde você não confia em todo mundo usando também segurança. Você pensa que eu sou paranóico? Eu não sou paranóico. Este é um pouco de conselho de segurança básica. E lembre-se, as coisas que eu digo aqui é justamente o começo. Um local seguro precisa de um dirigencia de admin educado que saiba onde achar informação corrente sobre problemas de segurança potenciais.

O NFS tem um problema básico em que o cliente, se não conta caso contrário, confia no servidor de NFS e vice-versa. Isto pode ser ruim. Esses meios que se confia no root do servidor pode ser quebrados totalmente e é fácilmente quebrado a conta do root do cliente. E vice-versa.
Há várias estratégias contidos aqui, o qual nós voltaremos a falar.

Algo que você deveria ler são os avisos(ou conselhos) sobre NFS do CERT (advisories on NFS), a maioria do texto abaixo são pedaços dos assuntos que a CERT descreve nos avisos. Veja em ftp.cert.org/01-README para uma lista atualizada dos avisos da CERT. Aqui são alguns dos avisos relacionado ao NFS:

  ______________________________________________________________________

  CA-91:21.SunOS.NFS.Jumbo.and.fsirand                            12/06/91

       Vulnerabilidade relativo a Sun Microsystems, Inc. (Sun) O Sistema
       de Arquivo de Network (NFS) e o programa de fsirand. São
       vulneravéis e afeta o SunOS versões 4.1.1, 4.1, e 4.0.3 em todas as
       arquiteturas.

       Os patchs(remendos) estão disponíveis para o SunOS 4.1.1.
       Um patch inicial para SunOS 4.1 NFS também está disponível.
       A Sun estaprovendo patchs completos para o SunOS 4.1 e SunOS 4.0.3
       ao mais recente.

    CA-94:15.NFS.Vulnerabilities                                    12/19/94

       Este aconselho(aviso) descreve como medir a segurança para guardar
       contra várias vulnerabilidade no Sistema de Arquivo de Network (NFS).
       O aviso era iniciado por um aumento com root que assumem compromissos
       por intrusos que usam ferramentas para explorar as vulnerabilidade.

  CA-96.08.pcnfsd                                                 04/18/96

       Este aviso descreve um vulnerabilidade no programa de pcnfsd (também
       conhecido como rpc.pcnfsd). Um patch é incluído.
  ______________________________________________________________________

5.1. Segurança de cliente

No cliente podemos decidir o que nós não queremos confiar no servidor também vários modos com opções para montar. Por exemplo nós podemos proibir programas suid para trabalhar com o sistema de arquivo NFS com a opção nosuid. Esta é uma boa idéia e você deveria considerar em usar isto em todos os discos de NFS montados. Significa que o usuário de root do servidor não pode fazer uma programa suid-root no sistema de arquivo, acessar como se fosse um cliente como um usuário normal e então usar o programa de suid-raiz para se tornar root no cliente também. Nós também poderíamos proibir a execução de arquivos no sistema de arquivos montado completamente com a opção de noexec. Mas isto é mais provável não prático que o nosuid desde que um sistema de arquivo provável é pelo menos conter alguns scripts ou programas que precisam ser executados.

Você entra com estas opções na coluna de opções, como o rsize e o wsize, separado por vírgulas.

5.2. Segurança no servidor: nfsd

No servidor podemos decidir o nós não queremos confiar no cliente com a conta de root. Nós podemos fazer isso usando a opção de root_squash no arquivo de exportações (export):

  ______________________________________________________________________
  /mn/eris/local apollon(rw,root_squash)
  ______________________________________________________________________

Agora, se um usuário com UID 0 na tentativa de cliente para ter acesso (ler, escrever, apaguar) o sistema de arquivo do servidor substitui o UID do servidores pela conta `Nobody'. Quais os meios que o usuário de root no cliente não pode ter acesso ou mudar arquivos que só prejudicariam o servidor para poder acessar ou mudar. Isso é bom, e você provavelmente deveria usar o root_squash em todos os sistemas de arquivo que você exporta. "Mas o usuário de root que é oo cliente ainda pode usar 'su' para se tornar qualquer outro usuário e acessar e mudar os arquivos" de usuários! diga. Para qual a resposta é: Sim, e é este modo, tem que estar com Unix. Isto tem uma importante implicação: Todos o binarioss importantes e arquivos devem ser possuídos através do root, e não no box ou outra conta de não-root, desde que a única conta de clientes prejudique o usuário não pode ter acesso aos servidores. Na página do nfsd há várias outras opções de formas listadas que você pode decidir desconfiar de quem (não pode fazer) acessa os clientes. Você também tem opções para controlar qualquer UID e GID que você quer.

Isto é descrito na página do man do nfsd do Linux.

Outra coisa importante é assegurar aqueles cheques do nfsd que tudo que é pedido vêm de uma porta privilegiada. Se aceito o pedido de qualquer porta velha no cliente um usuário sem privilégios especiais pode rodar um programa que é fácil de obter na Internet. Falar do protocol nfs reivindicar que qualquer usuário pode ser.

Fantasmagórico. O nfsd do Linux faz este cheque através da falta, em outro OSs você tem que habilitar este cheque. Isto deve ser descrito na página man do seu nfsd para o OS.

Outra coisa. Nunca exporte um sistema de arquivo para o 'localhost' ou 127.0.0.1. Confie em mim.

5.3. Segurança de servidor: o portmapper

O portmapper básico, em combinação com o nfsd tem um problema de desígnio isso torna possível adquirir arquivos em servidores de NFS sem qualquer privilégios. Afortunadamente o portmapper usados no Linux são relativamente protegidos deste ataque, e pode ser feito uma configuração mais segura com a lista de acesso em dois arquivos.

Primeiro nós editamos o /etc/hosts.deny. E deve conter a seguinte linha

  ______________________________________________________________________
  portmap: ALL
  ______________________________________________________________________

que nega o acesso para todo mundo. Isso é talvez um pouco drástico, mas assim nós abrimos novamente editando o arquivo /etc/hosts.allow. Mas primeiramente nós precisamos entender o porque disto. Deveriamos listar todas as máquinas basicamente que devem ter acesso ao seu portmapper. Em uma execução do miolho do Sistema do Linux há algumas máquinas que precisam de qualquer acesso por qualquerrazão. O nfsd do administrador do portmapper, mountd, ypbind/ypserv, pcnfsd, e 'serviços de r' gostam de ruptime e rusers. Destes só o nfsd, mountd, ypbind/ypserv e talvez pcnfsd são de qualquer conseqüência. Tudas as máquinas que precisam ter acesso a estes serviços em sua máquina devem ser permitidos fazer isto. Digamos que o seu endereço de máquinas é 129.240.223.254 e que se mantém a subnet 129.240.223.0 deve ter acesso a isto (nessas condições introduzidas pelo networking HOWTO, volte e refresca sua memória você precisa). Então nós escrevemos

  ______________________________________________________________________
  portmap: 129.240.223.0/255.255.255.0
  ______________________________________________________________________

em hosts.allow. Isto está igual ao endereço de cadeia para o que você dá a rota e a mascara da subnet do seu ifconfig. Para o dispositivo eth0 neste ifconfig de máquina deveria mostrar

  ______________________________________________________________________
  eth0      Link encap:10Mbps Ethernet  HWaddr 00:60:8C:96:D5:56
            inet addr:129.240.223.254  Bcast:129.240.223.255  Mask:255.255.255.0
            UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
            RX packets:360315 errors:0 dropped:0 overruns:0
            TX packets:179274 errors:0 dropped:0 overruns:0
            Interrupt:10 Base address:0x320
  ______________________________________________________________________

e o netstat -rn deve mostrar

  ______________________________________________________________________
  Kernel routing table
  Destination     Gateway         Genmask         Flags Metric Ref Use    Iface
  129.240.223.0   0.0.0.0         255.255.255.0   U     0      0   174412 eth0
  ______________________________________________________________________

(Endereço de cadeia esta na primeira coluna).

São descritos os hosts.deny e arquivos de hosts.allow no manual de páginas do mesmos nomes.

IMPORTANTE: Não ponha nada há menos que NÚMEROS de IP nas linhas do portmap destes arquivos. Lookups de nome de hosts podem causar atividades do portmap indiretamente que ativará lookups do hosts que pode causar indiretamente atividade de portmap que ativará...

Acima devemos fazer seu servidor mais seguro. O único problema que permane (Yeah, direito!) é alguém quebrar o root (ou bootar o MS-DOS) em uma máquina confiada e usando aquele privilégio para enviar pedidos de uma porta seguro como qualquer usuário que quer ser.

5.4. NFS e firewalls

É uma boa idéia usar firewall o nfs e portmap na porta em seu router ou firewall. O nfsd opera na porta 2049, nos protocolos udp e tcp.

O portmapper na porta 111, tcp e udp, e o mountd na porta 745 e 747, tcp e udp. Normalmente. Você deve conferir as portas com o comando rpcinfo -p.

Se por outro lado você quer que o NFS passe por um firewall há opções para nfsds mais novo e mountds para fazer estes usos específicos (nonstandard) nas portas que pode deixar abertas no firewall.

5.5. Resumo

Se você usa o hosts.allow/deny, root_squash, nosuid e características de privilegio de porta no software de portmapper/nfs você evita muitas dos bugs conhecidos presentemente no nfs e quase pode se sentir seguro aproximadamente ao menos. Mas ainda, afinal de contas: Quando um intruso tem acesso a sua network, ele pode fazer comandos estranhos parecer em seu .forward ou arquivso de caixa postal quando o /home ou /var/spool/mail estão montados em cima do NFS. Por esta razão, você nunca deve ter acesso a sua chave PGP dentro do nfs. Ou pelo menos você deve saber do risco envolvido. E agora você sabe um pouco disto.

O NFS e o portmapper compõe um subsistema complexo e então não é totalmente improvavelmente aqueles novos bugs serão descobertos, ou no desígnio básico ou na implementação que nós usamos. Poderia haver buracos até mesmo conhecidos agora, o qual alguém está abusando. Mas isso é a vida. Manter-se em frente das coisas que gostamos e que você deveria ler pelo menos o newsgroups comp.os.linux.announce e comp.security.announce é um absoluto mínimo.

6. FAQs

Esta é a seção de FAQ. A maioria delas foi escritas por Alan Cox.

1. Quando eu tento montar um sistema de arquivo eu adquiro
         can't register with portmap: system error on send

  Você está usando um sistema de Caldera provavelmente. Há um bug no
  script.  Por favor contacte a Caldera para obter instruções.

  2. Por que eu não posso executar um arquivo depois de copiar para o servidor de NFS?

  A razão é aqueles caches de nfsd manivelavéis de arquivos abertos para
  desempenho (lembra-se, rode no espaço do usuário). Enquanto o nfsd tem um
  arquivo aberto (como busca o caso de escritura), o kernel não permitite
  você executar. O Nfsds mais novo com o lançamento da fonte 95 de arquivos
  abertos depois de alguns segundos, o mais velho esperá há dias eles.

  3. Meus arquivos de NFS são somentes lidos
  O Servidor de NFS do Linux deixa de somente ler. O RTFM ``exports''
  e os manuais das páginas nfsds. Você precisará alterar o /etc/exports.

  4. Eu monto um servidor de nfs de linux e enquanto o ls trabalha eu não
  posso ler ou escreva nos arquivos.
  Em versões mais velhas do Linux você tem que montar uns servidores de NFS
  com  rsize=1024,wsize=1024.

  5. Eu monto um servidor de NFS num Linux com um tamanho de bloco entre
  3500-4000 e choca com Linux box regularmente
  Basicamente não faça então.

  6. Posso fazer NFS de Linux  em cima do TCP
  Não, não no momento.

  7. Eu adquiro leituras de erros estranhas que tentam montar uma máquina
  de um Linux box.
  Tenha certeza que seus usuários estão em 8 grupos ou menos. Servidores
  mais velhos requerem isto.

  8. Quando eu às vezes reinicio minha máquina ela pendura quando tenta
  usar o unmount num servidor de NFS pendurado.
  Não faça unmount em servidores de NFS quando reiniciando ou detidos, só
 ignore eles, não fere nada se você não faz unmount neles. O
 comando é umount -avt nonfs.

  9. Os clientes NFS do Linux estão muitos lentos quando escrever numa
  Sun & Sistemas BSD
  O NFS escreve normalmente síncronamente (você pode incapacitar isto se
  você não prestar atenção e arriscar perder os dados. Os Kernels derivados
  do BSD tenta impossibilitar trabalhos em blocos pequenos. Assim quando
  você escreve 4K de dados de um box de Linux nos 1K dos pacotes usados pelo
  BSD faz isto
               leia 4K página

               altere 1K

               escreva 4K no a disco físico

               leia 4K página

               altere 1K

               escreva 4K página atrás a disco físico

               etc..

  Sistemas melhores não têm este problema. O cliente de Linux porém
  reduz bastante a velocidade de qualquer maneira.

  10. Eu ouvi que NFS não são seguros é verdade?
  Sim, totalmente. O NFS corrente em um ambiente descontrolado é bastante
  inseguro como deixar a sua porta dianteira aberta com um painel dizendo
  'On holiday' pintado em sua casa e postando mapas para todos os criminosos
  conhecidos...
  Em um ambiente razoavelmente seguro ou quando você pode recuperar os dados
  de estúpidos OK. O pior que alguém pode fazer facilmente é alterar todos
  os arquivos em um disco montado de NFS e/ou chocar a máquina. Então em muito
  tempo como você não monta seu sistema arquivos para escritura você deveria
  ser vagamente seguro.

  11. Por que nós usamos o NFS então?
  Porque é o único arquivo uniformemente apoiado que compartilha
  protocolo para o Unix. E porque trabalha, principalmente.

  12. Como faço para quando um servidor pendura
  Estes são os três comportamentos de NFS principais do servidor:

     soft
        Seu cliente de NFS informará de um erro para o processo concedido
        e um servidor de NFS não responde depois da algumas tentativas novamente.
        Se você quer usar você deve conferir que seu software dirigice isto
        corretamente. Eu não recomendo usar esta colocação.

     hard
        Seu cliente de NFS sempre tentará a menos que exterminado. As
        operações serão reiniciados quando o servidor de NFS recuperar ou
        reinicia-do.

     hard,intr
        Como o hard mas o Ctrl-C interromperá um processo pendurado. Em
        alguns casos

        - notavelmente o discos nfs de /usr/spool/mail montados como os
          que não ajuda o shell estará ignorando o Ctrl-C quando conferir
          que você tem correio...  Eu recomendo esta colocação para todos
          os NFS montados e inclui o spool de correio.
   

7. PC-NFS

Algumas coisas permanecem melhores sem documento :-) Mas você definitivamente quer para rodar o pcnfsd, se você quer rodar o PC-NFS.

Boa Sorte.

Eu sei, isso que não é precisamente amigável, mas eu não estou familiarizado com PC NFS. Se você é por favor contacte me assim nós podemos colocar algo aqui talvez sobre o PC-NFS.


[Help OnLine] [Distribuições] [Novidades] [Eventos] [Usuários] [Aplicativos] [Hardware] [Projetos] [Vendedores] [Serviços]
[Linux Brasil]
WebSite Design: Buick
Copyright © 1997-1998 - Buick. All Rights Reserved.
[Linux-Org]