¿Por qué montar un recurso compartido nfs desde Linux requiere el uso de un puerto privilegiado?

11

Exporto un directorio en una caja de Linux y puedo montarlo desde otra caja de Linux usando

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

El mismo comando falla en 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

Al mismo tiempo, kurush:/var/logs/syslogregistra esta línea:

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

Cuando intento ir a través de la GUI (buscador-> conectar al servidor-> nfs://kurush/media/lynk-> conectar), obtengo un error inmediato (no puedo conectarme y c) y el syslog de Linux Box registra el authenticated mount request.

El problema se resuelve utilizando un puerto privilegiado :

Línea de comando:

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

Para habilitar la GUI:

sudo vifs

luego agrega una línea

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

Las preguntas son :

  • ¿Por qué necesito usar un puerto privilegiado? ¿Es algo que hago en el lado de Linux? Me parece recordar que alguna vez monté esa parte sin la magia antes mencionada.

  • ¿Cómo le digo a MacOSX que use el puerto privilegiado sin usar la línea de comando? Pensé que Apple era para la multitud "no tecnológica", ¡así que debe ser posible!

sds
fuente
Hola. Normalmente cerramos las preguntas que existen para preguntar "¿Por qué Apple hizo X?" Pero hay algunos detalles técnicos agradables aquí. Su pregunta podría funcionar mejor si hace la pregunta simplemente (edítela) y luego pone toda la respuesta en la sección de respuestas. Si necesita hacer una pregunta de seguimiento que explique cuál es el problema, tal vez podría funcionar. ¿Qué harás eventualmente con la historia de "por qué" Apple la diseñó de esta manera?
bmike
1
@bmike: cambié el "por qué" a "cómo".
sds

Respuestas:

10

¿Por qué tienes que hacerlo? Tradición, en su mayoría. Érase una vez, restringir NFS a puertos privilegiados (<1023) se consideraba una medida de seguridad. Cuando la gente usaba computadoras mainframe, esto aseguraba que el software NFS en el lado del cliente fuera parte del sistema operativo / aprobado por el administrador, ya que un programa solo puede usar un puerto privilegiado si es ejecutado por el usuario root. Hoy en día, esto no tiene sentido porque cualquiera puede tener una computadora y tener acceso a la raíz, por lo que esto no significa nada en términos de seguridad.

Por defecto, muchos servidores NFS no permiten puertos de origen sin privilegios. Algunos clientes NFS (como los de Ubuntu) usan de manera predeterminada un puerto fuente privilegiado a menos que se especifique lo contrario, por lo que su cliente Linux funciona sin problemas. Claramente, el cliente OS X no hace esto. No sé si fue una elección de diseño de Apple o algo heredado de BSD. Sé que Solaris también se predetermina a un puerto no privilegiado.

Las dos formas de evitar este problema son, decirle al cliente OS X que use un puerto privilegiado, como descubrió, o configurar su servidor NFS para permitir puertos no privilegiados (búsquelo en la documentación de su servidor).

¿Cómo hace que OS X use un puerto privilegiado usando una GUI? Hasta donde yo sé, no puedes en versiones> 10.6. Uno solía poder montar recursos compartidos NFS en la Utilidad de Discos y escribir opciones adicionales, pero eso fue eliminado. ( detalles ) Nunca fue un simple botón ni nada. NFS es apenas algo que la mayoría de la multitud "no técnica" necesita, por lo que supongo que no era una prioridad y hay razones por las que el uso rutinario de puertos privilegiados no es una gran idea.

No lo he probado, pero http://www.bresink.com/osx/NFSManager.html parece permitir la configuración de las funciones NFS de OS X sin la línea de comando.

Michael DM Dryden
fuente
1
Acerca de "o configurar su servidor NFS para permitir puertos no privilegiados": para nfs-kernel-server son las insecureopciones /etc/exports. Por ejemplo:/media/sda3 192.168.1.0/24(rw,async,no_subtree_check,insecure)
tungd
gracias, inseguro permite que Mac se conecte a NFS usando Finder -> Ir -> Conectarse al servidor
waza123
Esta es una preocupación de seguridad activa para los sistemas actuales, generalmente dentro de una intranet y no a través de Internet. Debido a que los sistemas tienden a montar recursos compartidos NFS dentro del sistema de archivos, hay mucho espacio para el abuso. Requerir puertos privilegiados aún evita que los usuarios manipulen el sistema de archivos cuando no deberían hacerlo. Por supuesto, si el usuario ya tiene root, no importa.
jtpereyda