Warum erfordert das Mounten einer NFS-Freigabe unter Linux die Verwendung eines privilegierten Ports?

11

Ich exportiere ein Verzeichnis auf einer Linux-Box und kann es mit einer anderen Linux-Box mounten

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

Der gleiche Befehl schlägt unter Mac OS X fehl:

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

Gleichzeitig wird kurush:/var/logs/syslogdiese Zeile aufgezeichnet:

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

Wenn ich versuche, über die GUI zu gehen (Finder-> Verbindung zum Server herstellen nfs://kurush/media/lynk- > -> Verbindung herstellen), wird sofort ein Fehler angezeigt (Verbindung nicht möglich & c) und das Linux-Box-Syslog zeichnet das auf authenticated mount request.

Das Problem wird mithilfe eines privilegierten Ports gelöst :

Befehlszeile:

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

So aktivieren Sie die GUI:

sudo vifs

Fügen Sie dann eine Zeile hinzu

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

Die Fragen sind :

  • Warum muss ich einen privilegierten Port verwenden? Ist es etwas, was ich auf der Linux-Seite mache? Ich scheine mich zu erinnern, dass ich diesen Anteil einst ohne die oben erwähnte Magie bestiegen habe.

  • Wie kann ich MacOSX anweisen, den privilegierten Port ohne Verwendung der Befehlszeile zu verwenden? Ich dachte, Apple sei für die "Nicht-Technikfreaks", also muss es möglich sein!

sds
quelle
Hallo. Normalerweise schließen wir Fragen, um zu fragen: "Warum hat Apple X gemacht?" Aber hier gibt es einige nette technische Details. Ihre Frage könnte besser funktionieren, wenn Sie die Frage einfach stellen (nach unten bearbeiten) und dann die gesamte Antwort in den Antwortbereich einfügen. Wenn Sie eine Folgefrage stellen müssen, in der das Problem erläutert wird, könnte dies möglicherweise funktionieren. Was werden Sie letztendlich mit der Geschichte machen, warum Apple es so gestaltet hat?
bmike
1
@bmike: Ich habe das "Warum" in "Wie" geändert.
SDS

Antworten:

9

Warum musst du Meistens Tradition. Es war einmal eine Sicherheitsmaßnahme, NFS auf privilegierte Ports (<1023) zu beschränken. Als Benutzer Mainframe-Computer verwendeten, stellte dies sicher, dass die NFS-Software auf der Clientseite Teil des Betriebssystems war / vom Administrator genehmigt wurde, da ein Programm einen privilegierten Port nur verwenden kann, wenn er vom Root-Benutzer ausgeführt wird. Heutzutage macht dies keinen Sinn, da jeder einen Computer besitzen und über Root-Zugriff verfügen kann. Dies bedeutet also nichts für die Sicherheit.

Standardmäßig erlauben viele NFS-Server keine nicht privilegierten Quellports. Einige NFS-Clients (z. B. Ubuntus) verwenden standardmäßig einen privilegierten Quellport, sofern nicht anders angegeben. Aus diesem Grund funktioniert Ihr Linux-Client problemlos. Der OS X-Client tut dies natürlich nicht. Ich weiß nicht, ob das eine Wahl für das Apple-Design war oder etwas, das von BSD geerbt wurde. Ich weiß, dass Solaris standardmäßig auch einen nicht privilegierten Port verwendet.

Sie können dieses Problem auf zwei Arten vermeiden, indem Sie den OS X-Client anweisen, einen privilegierten Port zu verwenden, wie Sie festgestellt haben, oder Ihren NFS-Server so konfigurieren, dass nicht privilegierte Ports zugelassen werden (siehe Dokumentation Ihres Servers).

Wie bringt man OS X dazu, einen privilegierten Port über eine GUI zu verwenden? Soweit ich weiß, können Sie nicht auf Versionen> 10.6. Früher konnte man NFS-Freigaben im Festplatten-Dienstprogramm bereitstellen und zusätzliche Optionen eingeben, aber das wurde entfernt. ( Details ) Es war nie ein einfacher Knopf oder so. NFS ist kaum etwas, was die meisten "Nicht-Techniker" brauchen. Ich denke, es hatte keine Priorität und es gibt Gründe, warum die routinemäßige Verwendung privilegierter Ports keine gute Idee ist.

Ich habe es nicht ausprobiert, aber http://www.bresink.com/osx/NFSManager.html scheint die Konfiguration der NFS-Funktionen von OS X ohne Befehlszeile zu ermöglichen.

Michael DM Dryden
quelle
1
Informationen zu "oder Konfigurieren Ihres NFS-Servers, um nicht privilegierte Ports zuzulassen": Für nfs-kernel-server sind dies die insecureOptionen in /etc/exports. Zum Beispiel:/media/sda3 192.168.1.0/24(rw,async,no_subtree_check,insecure)
Tungd
Dank, unsicher ermöglicht Mac die Verbindung zu NFS über Finder -> Los -> Verbindung zum Server herstellen
waza123
Dies ist heutzutage ein aktives Sicherheitsrisiko für Systeme, normalerweise innerhalb eines Intranets und nicht über das Internet. Da Systeme dazu neigen, NFS-Freigaben im Dateisystem bereitzustellen, gibt es viel Raum für Missbrauch. Das Erfordernis privilegierter Ports verhindert weiterhin, dass Benutzer das Dateisystem manipulieren, wenn sie dies nicht sollten. Wenn der Benutzer bereits root hat, spielt das natürlich keine Rolle.
jtpereyda