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.
![]() |
Copyright © 1997-1998 - Buick. All Rights Reserved. | ![]() |