Pourquoi le montage d'un partage nfs depuis Linux nécessite-t-il l'utilisation d'un port privilégié?

11

J'exporte un répertoire sur une boîte Linux et je peux le monter à partir d'une autre boîte Linux en utilisant

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

La même commande échoue sur 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

En même temps, kurush:/var/logs/syslogenregistre cette ligne:

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

Lorsque j'essaie de passer par l'interface graphique (finder-> se connecter au serveur-> nfs://kurush/media/lynk-> se connecter), j'obtiens un échec immédiat (impossible de se connecter & c) et la boîte linux syslog enregistre le authenticated mount request.

Le problème est résolu en utilisant un port privilégié :

Ligne de commande:

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

Pour activer l'interface graphique:

sudo vifs

puis ajoutez une ligne

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

Les questions sont :

  • Pourquoi dois-je utiliser un port privilégié? Est-ce quelque chose que je fais du côté Linux? Il me semble me rappeler qu'il était une fois que j'ai monté cette part sans la magie susmentionnée.

  • Comment dire à MacOSX d'utiliser le port privilégié sans utiliser la ligne de commande? Je pensais qu'Apple était pour la foule "non-technophile", donc ça doit être possible!

sds
la source
Salut. Normalement, nous fermons les questions qui existent pour demander "Pourquoi Apple a-t-il fait X?" mais il y a de jolis détails techniques ici. Votre question pourrait mieux fonctionner si vous posez la question simplement (modifiez-la), puis mettez toutes les réponses dans la section des réponses. Si vous avez besoin de poser une question de suivi expliquant quel est le problème - cela pourrait peut-être fonctionner. Que ferez-vous finalement avec l'histoire du «pourquoi» Apple l'a conçu ainsi?
bmike
1
@bmike: J'ai changé le "pourquoi" en "comment".
sds

Réponses:

10

Pourquoi faut-il? Tradition, surtout. Il était une fois, restreindre NFS à des ports privilégiés (<1023) était considéré comme une mesure de sécurité. À l'époque où les gens utilisaient des ordinateurs centraux, cela garantissait que le logiciel NFS côté client faisait partie du système d'exploitation / approuvé par l'administrateur, car un programme ne peut utiliser un port privilégié que s'il est exécuté par l'utilisateur root. Aujourd'hui, cela n'a aucun sens car n'importe qui peut posséder un ordinateur et avoir un accès root, donc cela ne signifie rien en termes de sécurité.

Par défaut, de nombreux serveurs NFS n'autorisent pas les ports source non privilégiés. Certains clients NFS (comme ceux d'Ubuntu) utilisent par défaut un port source privilégié, sauf indication contraire, c'est pourquoi votre client Linux fonctionne sans problème. De toute évidence, le client OS X ne fait pas cela. Je ne sais pas si c'était un choix de conception Apple ou quelque chose hérité de BSD. Je sais que Solaris utilise également par défaut un port non privilégié.

Les deux façons d'éviter ce problème sont de dire au client OS X d'utiliser un port privilégié, comme vous l'avez découvert, ou de configurer votre serveur NFS pour autoriser les ports non privilégiés (recherchez-le dans la documentation de votre serveur).

Comment faire pour que OS X utilise un port privilégié à l'aide d'une interface graphique? Pour autant que je sache, vous ne pouvez pas sur les versions> 10.6. L'un était capable de monter des partages NFS dans l'Utilitaire de disque et de taper des options supplémentaires, mais cela a été supprimé. ( Détails ) Il n'a jamais été un bouton simple , ou quoi que ce soit. NFS n'est guère quelque chose dont la plupart des utilisateurs "non-tech" ont besoin, donc je suppose que ce n'était pas une priorité et qu'il y a des raisons d'utiliser régulièrement des ports privilégiés n'est pas une bonne idée.

Je ne l'ai pas essayé, mais http://www.bresink.com/osx/NFSManager.html semble permettre la configuration des fonctionnalités NFS d'OS X sans la ligne de commande.

Michael DM Dryden
la source
2
À propos de "ou la configuration de votre serveur NFS pour autoriser les ports non privilégiés": pour nfs-kernel-server, ce sont les insecureoptions de /etc/exports. Par exemple:/media/sda3 192.168.1.0/24(rw,async,no_subtree_check,insecure)
tungd
merci, l'insécurité permet à Mac de se connecter à NFS à l'aide du Finder -> Aller -> Se connecter au serveur
waza123
Il s'agit aujourd'hui d'une préoccupation de sécurité active pour les systèmes, généralement dans un intranet plutôt que sur Internet. Parce que les systèmes ont tendance à monter des partages NFS dans le système de fichiers, il y a beaucoup de place pour les abus. L'exigence de ports privilégiés empêche toujours les utilisateurs de manipuler le système de fichiers alors qu'ils ne le devraient pas. Bien sûr, si l'utilisateur a déjà root, cela n'a pas d'importance.
jtpereyda