Por que montar um compartilhamento nfs no linux requer o uso de uma porta privilegiada?

11

Eu exporto um diretório em uma caixa linux e posso montá-lo a partir de outra caixa linux usando

# mount -t nfs kurush:/media/lynk /mnt/kurush/

O mesmo comando falha no Mac OS X:

$ sudo mount -t nfs kurush:/media/lynk /Volumes/lynk
mount_nfs: can't mount /media/lynk from kurush onto /Volumes/lynk: Operation not permitted

Ao mesmo tempo, kurush:/var/logs/syslogregistra esta linha:

rpc.mountd[7943]: authenticated mount request from sds-MacBook-Pro.home:1009 for /media/lynk (/media/lynk)

Quando tento acessar a GUI (localizador-> conectar-se ao servidor-> nfs://kurush/media/lynk-> conectar), recebo uma falha imediata (incapaz de conectar-se etc.) e o syslog do linux box registra o arquivo authenticated mount request.

O problema é resolvido usando uma porta privilegiada :

Linha de comando:

sudo mount -o resvport -t nfs kurush:/media/lynk /Volumes/lynk

Para ativar a GUI:

sudo vifs

depois adicione uma linha

kurush:/media/lynk /Volumes/lynk nfs resvport,ro,user,noauto

As perguntas são :

  • Por que preciso usar uma porta privilegiada? É algo que eu faço no lado do linux? Lembro-me de que, uma vez, montei essa parte sem a mágica mencionada acima.

  • Como digo ao MacOSX para usar a porta privilegiada sem usar a linha de comando? Eu pensei que a Apple era para o público "não técnico", então deve ser possível!

sds
fonte
Oi. Normalmente, fechamos as perguntas existentes para perguntar "Por que a Apple fez o X?" mas há alguns detalhes técnicos interessantes aqui. Sua pergunta pode funcionar melhor se você fizer a pergunta com simplicidade (editá-la) e depois colocar toda a resposta na seção de respostas. Se você precisar fazer uma pergunta a seguir, explicando qual é o problema - talvez ele possa funcionar. O que você fará com a história de "por que" a Apple a desenhou assim?
bmike
1
@ Mike: Eu mudei o "porquê" para "como".
Sds

Respostas:

10

Por que você precisa? Tradição, principalmente. Uma vez, restringir o NFS a portas privilegiadas (<1023) era considerado uma medida de segurança. Quando as pessoas usavam computadores mainframe, isso fazia com que o software NFS no lado do cliente fizesse parte do sistema operacional / aprovado pelo administrador, pois um programa só pode usar uma porta privilegiada se for executado pelo usuário raiz. Hoje, isso não faz sentido, porque qualquer pessoa pode possuir um computador e ter acesso root, portanto, isso não significa nada em termos de segurança.

Por padrão, muitos servidores NFS não permitem portas de origem não privilegiadas. Alguns clientes NFS (como o Ubuntu), usam como padrão uma porta de origem privilegiada, a menos que especificado de outra forma, e é por isso que seu cliente Linux funciona sem problemas. Claramente, o cliente OS X não faz isso. Não sei se isso foi uma escolha de design da Apple ou algo herdado do BSD. Eu sei que o Solaris também assume como padrão uma porta não privilegiada.

As duas maneiras de evitar esse problema são: instruir o cliente OS X a usar uma porta privilegiada, como você descobriu, ou configurar o servidor NFS para permitir portas não privilegiadas (consulte a documentação do servidor).

Como você faz com que o OS X use uma porta privilegiada usando uma GUI? Tanto quanto eu sei, você não pode nas versões> 10.6. Era possível montar compartilhamentos NFS no Disk Utility e digitar opções extras, mas isso foi removido. ( detalhes ) Nunca foi um botão simples ou algo assim. O NFS dificilmente é algo que a maioria das pessoas "não-tecidas" precisa, então eu acho que não era uma prioridade e há razões para usar rotineiramente portas privilegiadas não é uma boa idéia.

Eu não tentei, mas http://www.bresink.com/osx/NFSManager.html parece permitir a configuração dos recursos NFS do OS X sem a linha de comando.

Michael DM Dryden
fonte
1
Sobre "ou configurar seu servidor NFS para permitir portas não privilegiadas": para nfs-kernel-server estão as insecureopções /etc/exports. Por exemplo:/media/sda3 192.168.1.0/24(rw,async,no_subtree_check,insecure)
tungd
graças, inseguro permite Mac de conexão para NFS usando Finder -> Go -> Conectar ao servidor
waza123
Atualmente, essa é uma preocupação de segurança ativa dos sistemas, normalmente dentro de uma intranet e não através da Internet. Como os sistemas tendem a montar compartilhamentos NFS dentro do sistema de arquivos, há muito espaço para abuso. Exigir portas privilegiadas ainda impede que os usuários manipulem o sistema de arquivos quando não deveriam. Obviamente, se o usuário já possui root, isso não importa.
Jtpereyda