Почему монтирование общего ресурса nfs из linux требует использования привилегированного порта?

11

Я экспортирую каталог на ящик linux и могу смонтировать его из другого ящика linux используя

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

Сбой той же команды в 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

В то же время kurush:/var/logs/syslogзаписывает эту строку:

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

Когда я пытаюсь перейти через GUI (finder-> connect to server-> nfs://kurush/media/lynk-> connect), я получаю немедленный сбой (не удается подключиться и c), и системный журнал linux box записывает authenticated mount request.

Проблема решается с помощью привилегированного порта :

Командная строка:

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

Чтобы включить графический интерфейс:

sudo vifs

затем добавьте строку

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

Вопросы :

  • Почему мне нужно использовать привилегированный порт? Это то, что я делаю на стороне Linux? Кажется, я вспоминаю, что однажды я установил эту акцию без вышеупомянутой магии.

  • Как сказать MacOSX использовать привилегированный порт без использования командной строки? Я думал, что Apple была для "нетехнической" толпы, так что это должно быть возможно!

ДСН
источник
Здравствуй. Обычно мы закрываем вопросы, которые существуют, чтобы спросить: «Почему Apple сделала X?» но здесь есть несколько приятных технических деталей. Ваш вопрос может работать лучше, если вы просто зададите вопрос (отредактируйте его), а затем разместите все ответы в разделе ответов. Если вам нужно задать вопрос, объясняющий, в чем проблема - возможно, это сработает. Что вы в конечном итоге будете делать с историей «почему» Apple разработала ее таким образом?
bmike
1
@bmike: я изменил «почему» на «как».
sds

Ответы:

10

Почему ты должен? Традиция, в основном. Когда-то ограничение NFS привилегированными портами (<1023) считалось мерой безопасности. В те времена, когда люди использовали мэйнфрейм-компьютеры, это гарантировало, что программное обеспечение NFS на стороне клиента было частью ОС / утверждено администратором, поскольку программа может использовать привилегированный порт, только если она запускается пользователем root. Сегодня это не имеет смысла, потому что любой может владеть компьютером и иметь root-доступ, так что это ничего не значит с точки зрения безопасности.

По умолчанию многие серверы NFS не допускают непривилегированные исходные порты. Некоторые клиенты NFS (например, Ubuntu) по умолчанию используют привилегированный порт источника, если не указано иное, поэтому ваш клиент Linux работает без проблем. Ясно, что клиент OS X этого не делает. Я не знаю, был ли это выбор дизайна Apple или что-то унаследованное от BSD. Я знаю, что по умолчанию Solaris использует непривилегированный порт.

Существует два способа избежать этой проблемы: указание клиенту OS X использовать привилегированный порт, как вы обнаружили, или настройка сервера NFS для разрешения непривилегированных портов (см. Его в документации вашего сервера).

Как заставить OS X использовать привилегированный порт с графическим интерфейсом? Насколько я знаю, вы не можете на версии> 10.6. Раньше была возможность смонтировать общие ресурсы NFS в Дисковой утилите и ввести дополнительные параметры, но это было удалено. ( детали ) Это никогда не было простой кнопкой или чем-то еще. NFS вряд ли является чем-то, что нужно большинству «нетехнических» людей, поэтому я думаю, что это не было приоритетом, и есть причины, по которым обычное использование привилегированных портов не является хорошей идеей.

Я не пробовал, но http://www.bresink.com/osx/NFSManager.html позволяет конфигурировать функции NFS в OS X без командной строки.

Майкл Д.М. Драйден
источник
2
О «или настройке вашего NFS-сервера для разрешения непривилегированных портов»: для nfs-kernel-server это insecureопции в /etc/exports. Например:/media/sda3 192.168.1.0/24(rw,async,no_subtree_check,insecure)
tungd
спасибо, небезопасный позволяет Mac подключиться к NFS с помощью Finder -> Go -> Connect to server
waza123
Сегодня это активная проблема безопасности для систем, как правило, внутри интрасети, а не через Интернет. Поскольку системы обычно монтируют общие ресурсы NFS в файловой системе, существует много возможностей для злоупотреблений. Требование привилегированных портов все еще удерживает пользователей от манипулирования файловой системой, когда они не должны. Конечно, если у пользователя уже есть root, это не имеет значения.
Jtpereyda