Dlaczego montowanie udziału nfs w systemie Linux wymaga użycia uprzywilejowanego portu?

11

Eksportuję katalog na Linux-a i mogę go zamontować z innego Linux-a za pomocą

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

To samo polecenie kończy się niepowodzeniem w systemie 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

Jednocześnie kurush:/var/logs/syslogrejestruje ten wiersz:

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

Kiedy próbuję przejść przez GUI (finder-> connect to server-> nfs://kurush/media/lynk-> connect), dostaję natychmiastową awarię (niemożność połączenia i c) i syslog Linux-a rejestruje authenticated mount request.

Problem został rozwiązany za pomocą uprzywilejowanego portu :

Wiersz poleceń:

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

Aby włączyć GUI:

sudo vifs

następnie dodaj linię

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

Pytania są następujące :

  • Dlaczego muszę korzystać z uprzywilejowanego portu? Czy to coś, co robię po stronie Linuxa? Wydaje mi się, że pamiętam, że kiedyś zamontowałem tę część bez wyżej wspomnianej magii.

  • Jak powiedzieć MacOSX, aby korzystał z uprzywilejowanego portu bez korzystania z wiersza poleceń? Myślałem, że Apple jest dla tłumu „non-techie”, więc to musi być możliwe!

sds
źródło
Cześć. Zwykle zamykamy istniejące pytania, aby zadać pytanie „Dlaczego Apple zrobił X?” ale jest tu kilka ciekawych szczegółów technicznych. Twoje pytanie może działać lepiej, jeśli po prostu zadasz pytanie (edytujesz je), a następnie umieścisz całą odpowiedź w sekcji odpowiedzi. Jeśli musisz zadać pytanie wyjaśniające, na czym polega problem - być może to zadziała. Co ostatecznie zrobisz z historią „dlaczego” Apple zaprojektował ją w ten sposób?
bmike
1
@bike: Zmieniłem „dlaczego” na „jak”.
sds

Odpowiedzi:

10

Dlaczego musisz Głównie tradycja. Dawno, dawno temu ograniczenie NFS do uprzywilejowanych portów (<1023) było uważane za środek bezpieczeństwa. Kiedy ludzie korzystali z komputerów mainframe, upewniło się, że oprogramowanie NFS po stronie klienta było częścią systemu operacyjnego / zostało zatwierdzone przez administratora, ponieważ program może korzystać z uprzywilejowanego portu tylko wtedy, gdy jest uruchamiany przez użytkownika root. Dzisiaj nie ma to sensu, ponieważ każdy może posiadać komputer i mieć dostęp do konta root, więc nie ma to nic wspólnego z bezpieczeństwem.

Domyślnie wiele serwerów NFS nie zezwala na nieuprzywilejowane porty źródłowe. Niektóre klienty NFS (takie jak Ubuntu) domyślnie używają uprzywilejowanego portu źródłowego, chyba że określono inaczej, dlatego klient Linux działa bez problemu. Najwyraźniej klient OS X tego nie robi. Nie wiem, czy był to wybór Apple, czy coś odziedziczonego po BSD. Wiem, że Solaris również domyślnie korzysta z portu nieuprzywilejowanego.

Dwa sposoby uniknięcia tego problemu to: poinformowanie klienta OS X, aby używał uprzywilejowanego portu, jak odkryłeś, lub skonfigurowanie serwera NFS, aby zezwalał na porty nieuprzywilejowane (sprawdź to w dokumentacji serwera).

Jak przekonać OS X do korzystania z uprzywilejowanego portu za pomocą GUI? O ile mi wiadomo, nie można w wersjach> 10.6. Jeden z nich był w stanie zamontować udziały NFS w Narzędziu dyskowym i wpisać dodatkowe opcje, ale zostało to usunięte. ( szczegóły ) To nigdy nie był prosty przycisk ani nic takiego. NFS nie jest czymś, czego większość „nietechnicznych” tłumów potrzebuje, więc myślę, że nie był to priorytet, a istnieją powody, aby rutynowo używać uprzywilejowanych portów, nie jest świetnym pomysłem.

Nie próbowałem tego, ale wydaje się , że http://www.bresink.com/osx/NFSManager.html pozwala na konfigurację funkcji NFS OS X bez wiersza poleceń.

Michael DM Dryden
źródło
2
O „lub konfigurowanie serwera NFS, aby zezwalał na porty nieuprzywilejowane”: w przypadku serwera nfs-kernel-serverinsecure opcje są dostępne /etc/exports. Na przykład:/media/sda3 192.168.1.0/24(rw,async,no_subtree_check,insecure)
tungd 16.09.15
dzięki, niepewny pozwala
Macowi
Jest to obecnie aktywny problem związany z bezpieczeństwem systemów, zwykle w obrębie intranetu, a nie przez Internet. Ponieważ systemy zwykle instalują udziały NFS w systemie plików, istnieje wiele miejsca na nadużycia. Wymaganie uprzywilejowanych portów nadal uniemożliwia użytkownikom manipulowanie systemem plików, gdy nie powinni. Oczywiście, jeśli użytkownik ma już root, nie ma to znaczenia.
jtpereyda