NFSv4 authentifiziert zwar immer noch keine Benutzer, wie das etwa der CIFS-Server Samba macht. NFSv4-Clients und -Server können sich jedoch über Kerberos 5 sicher ausweisen, das sich auch zur Verschlüsselung eignet.
Kerberos wird seit Ende der 1970er Jahre ständig weiterentwickelt und liegt mittlerweile in der Version 5 vor. Die Sicherheits-Infrastruktur besteht aus einer Reihe von Diensten (Admin-Server, Distribution Center, Kerberos-Clients). Sie eignet sich besonders für lokale Netze und authentifiziert nicht nur einen Benutzer oder Client bei einem Server, sondern sorgt auch dafür, dass der Server sich umgekehrt beim Client ausweist. Damit Server und Client keinem Hochstapler aufsitzen, verbürgt der Kerberos-Dienst auf ähnliche Weise bei beiden seine Identität. Man-in-the-Middle-Attacken lassen sich damit sicher unterbinden, allerdings benötigt das Verfahren sehr viel Aufwand beim Einrichten. Neben der Authentifizierung sorgt Kerberos auch für die nötige Verschlüsselung des NFS-Datentransfers. NFSv4 verbindet sich über RPCSEC_GSS-Authentifizierung respektive über das Generic Security Service Application Program Interface (GSS-API, RFC 2743) mit Kerberos 5.
Hummingbirds NFS-Client beherrscht NFSv4, wenn es in den Systemeinstellungen des Clients aktiviert wurde.
NFSv3-Server und -Client wissen nur wenig über ihre Aktionen wie Lesen, Schreiben und das Setzen von Dateisperren, sodass bei falscher Einrichtung schnell einmal Daten verlorengehen können oder sich das Protokoll bei den Dateisperren verhaspelt. Die Folge sind beispielsweise nicht startende Programme oder Abstürze, die sich nur schwer erklären lassen. Trotz aller Zusätze wie lockd ist eine NFSv3-Verbindung zustandslos. Erst unter NFSv4 melden sich Clients beim Server an und erhalten von ihm eine Client-ID, die der Server nach einer gewissen Zeit (lease time) verwirft, falls der Client sie nicht regelmäßig auffrischt. Öffnet ein NFSv4-Client eine Datei auf dem Server, erhält diese eine Zustands-ID (Stateid), die Auskunft über ihre aktuelle Nutzung gibt.
Übertrug NFS früher jeden Systemaufruf einzeln, bündelt NFSv4 nun bestimmte Befehlsfolgen in einer einzigen Anfrage. Will beispielsweise ein NFSv4-Client aus einer Datei lesen, so verbindet er die Befehle Lookup, Open und Read in einem Compound Remote Procedure Call, was Netzwerkverkehr spart. Diesen Kombi-RPC arbeitet der Server der Reihe nach ab – bei Fehlern bricht die Verarbeitung einfach ab und der Server informiert den Client.
Ein NFSv4-Server kann Dateioperationen an einen Client delegieren. Ein Client verändert oder löscht eine delegierte Datei damit im eigenen Cache und spart wiederum Netzwerkverkehr. Erkennt der Server, dass andere Clients auf die Datei zugreifen wollen, widerruft er die Datei-Delegation und der Client schickt seine Änderungen zum Server. Solche Rücknahmen bewerkstelligt NFSv4 über Callback-RPCs. Da Firewalls die Rückrufe blockieren könnten, testen NFSv4-Server beim Verbindungsaufbau die Fähigkeiten der Clients und passen ihr Verhalten dem Ergebnis an.
NFSv4 vereinheitlicht die Interpretation und die Anwendung von (erweiterten) Dateisystem-Zugriffsrechten (ACLs) zwischen POSIX-Betriebssystemen wie Solaris, BSD oder Linux auf der einen und Windows auf der anderen Seite. Es beherrscht benannte Dateiattribute, in denen Anwendungen eigene Angaben hinterlegen können.
Die Benutzer- und Gruppeninformationen überträgt NFSv4 als Klartext, nicht mehr als numerische Kennung. NFSv4 setzt Kennungen und die Namen der Benutzer und Gruppen mittels des idmap-Dienstes um. Die Inhalte dieser Zugriffskennungen kodiert es in UTF-8 und kennt damit auch exotische Schriftzeichen. Zusätzlich verbessern diese Neuerungen die Zusammenarbeit mit anderen Netzwerkdateisystemen wie CIFS unter Windows oder Samba.
Auf der nächsten Seite: Was bisher geschah
Mehr zum Thema Netzwerk Dateisystem