
Dank der kürzlich erfolgten Einstellung des Supports von MS für Windows 7 konnten wir auch den letzten unserer widerspenstigen Windows 7-Benutzer endlich auf Windows 10 umstellen, sodass das gesamte Unternehmen nun entweder Ubuntu 18.04 oder Windows 10 verwendet.
Da Windows 10 über einen NFS-Client verfügt, stellt sich nun die Frage, ob SAMBA zugunsten von NFS aufgegeben werden soll.
Gibt es insbesondere einen Grund, SAMBA beizubehalten, jetzt wo alle unsere Windows-Clients NFS unterstützen?
Antwort1
SMB 3.xx weist im Vergleich zur „generischen“ TCP-Konnektivität eine besser abgestimmte Leistung auf und verfügt über Funktionen wie RDMA und Multichannel-Unterstützung, die Microsoft mit „seinem“ (eigentlich lizenzierten) NFS-Client nicht implementiert hat.
Antwort2
Server Message Block (SMB), das von der Samba-Software verwendete Protokoll, lässt sich möglicherweise mit ausreichender Sicherheit einfacher einsetzen. Network File System, abgekürzt NFS, wird scherzhaft „No File Security“ genannt. Das ist der scherzhafte Name, aber „No File-Level Security“ könnte ein Name mit einigen zutreffenden Implikationen sein. Mit anderen Worten: NFS-Sicherheit basiert auf der gemeinsamen Nutzung einer Partition, nicht einer einzelnen Datei, sodass Berechtigungen auf Dateiebene nicht durch das NFS-Protokoll erzwungen werden.
So wie ich das verstehe, ist es möglich, dass ein NFS-Server auf Dateien achtet und ungültige Anfragen ablehnt. Allerdings macht das nicht jede NFS-Software. Das Protokoll verlangt normalerweise, dass der Client einen Datenblock auf einem Laufwerk anfordert, und ein Server könnte diese Anforderung erfüllen, indem er den Block von der Festplatte liest, ohne unbedingt darauf achten zu müssen, zu welcher Datei dieser Block gehört.
Selbst wenn Sie herausgefunden haben, dass eine NFS-Implementierung sicher ist, was verhindert die Möglichkeit einer späteren Änderung, die zu einer weniger sicheren Implementierung/Bereitstellung von NFS führt? Wenn Sie Sicherheitsbedenken haben, kann es sehr wertvoll sein, eine Antwort auf eine solche Frage zu haben.
Mit SMB geben Benutzer Verzeichnisse und keine Partitionen frei. So können Sie sicher sein, dass Sie nur das Verzeichnis freigeben, das Sie möchten, und keine anderen Verzeichnisse, die sich in einem anderen Teil der Laufwerkshierarchie befinden.
Edit: Hier kommt ein neuer Herausforderer. In einem Kommentar zu dieser Antwort wurde behauptet, dass dies nicht das Ziel ist. Also suchte ich nach altbewährter Dokumentation, die dies untermauert. Und ich fand problemlos Material, das die Behauptungen aus meiner Antwort untermauert:
Zuallererst,"Secure Networks Inc." hat am 7. März 1997 einen "Security Advisory" mit dem Titel "4.4BSD NFS File Handles" veröffentlicht.. (Dieser Hyperlink stammt von der OpenBSD-Website:SecList.org BugTraq Mailinglistenarchiv von 1997: 4.4BSD NFS-Dateihandleszeigt dasselbe, was als Teil einer alten Mailingliste gepostet wurde, fügt aber eine Kopfzeile hinzu. PacketStormSecurity: Hinweis zu SNI BSD-Dateihandleszeigt auch das gleiche Dokument.)
In diesem Artikel wird die blockbasierte Art und Weise erörtert, wie NFS Daten bereitstellt (und dies ist wahrscheinlich der Grund für mein Verständnis dieser speziellen Sicherheitslücke).
Dieses Dokument wurde von mehreren Organisationen gehostet. Hier ist ein anderer Bericht, der anscheinend nichts mit diesem Dokument zu tun hat: Teile von„Warum NFS Mist ist“, von „Olaf Kirch“ von „SUSE/Novell Inc.“[email geschützt]sagen:
"NFS ist es egal, ob Sie Reiser, Ext3 oder XFS exportieren, eine CD oder eine DVD. Eine direkte Konsequenz davon ist, dass NFS einen ziemlich allgemeinen Mechanismus benötigt, um die Objekte zu identifizieren, die sich auf einem Dateisystem befinden." ... "Nur der Server muss das interne Format eines Dateihandles verstehen." ... "Linux führte das Konzept des Verzeichniscaches ein, auch bekannt als Dcache. Ein Eintrag im Dcache wird als Dentry bezeichnet." ... "praktisch alle Funktionen in der VFS-Schicht erwarten ein Dentry als Argument anstelle (oder zusätzlich zu) dem Inode-Objekt, das sie früher verwendet haben." "Das machte die Sache für den NFS-Server interessant, weil die Inode-Informationen nicht mehr ausreichen, um etwas zu erstellen, mit dem die VFS-Schicht arbeiten möchte." ... "Angreifer könnten ein Paket mit gültigen Anmeldeinformationen abfangen und die NFS-Anforderung manipulieren, um ihre eigenen schändlichen Absichten zu verwirklichen."
Was meine Behauptung über den Spitznamen betrifft, https://news.ycombinator.com/item?id=10967064sichert:
1987 war es unter den Ingenieuren bei Sun allgemein bekannt, dass NFS für „No File Security“ stand.
Der erste Bildschirm zeigt einige verschiedene Schwachstellen an, z. B. die Möglichkeit, jemandem zu vertrauen, basierend auf dem Hostnamen, der vom Clientcomputer gemeldet wird.
Google Books: zitiertes Material aus „A Practical Guide to Ubuntu Linux“Anmerkungen:
Die standardmäßige NFS-Sicherheit ist marginal bis nicht vorhanden (ein gängiger Witz besagt, dass NFS für „No File Security“ oder „Nightmare File System“ steht). Daher sollte ein solcher Zugriff außerhalb Ihres Netzwerks auf Maschinen, denen Sie nicht vertrauen, nicht gestattet werden.
eTutorials.org-Abschnitt zur NFS-KonfigurationAnmerkungen:
Wenn Sie Ihre Dateisysteme über das Internet mounten, können die übertragenen Dateien jederzeit gestört oder sogar manipuliert werden (manche Leute scherzen, dass NFS die Abkürzung für „No File Security“ (Keine Dateisicherheit) ist).