Anleitung zum Einbinden von Unix-Freigaben mit einem Windows NFS-Client
Nov 18, 2022
Moderne Organisationen verwenden typischerweise eine Mischung aus Betriebssystemen, einschließlich Unix, Linux, Windows und macOS. Network File System (NFS) ist ein offenes Client/Server-Protokoll, das Organisationen ermöglicht, ihre Datenspeicherung auf einem oder mehreren Servern zu zentralisieren und eine nahtlose Dateifreigabe zwischen ihren verschiedenen Betriebssystemen zu ermöglichen.
Dieser Blog erklärt, wie man NFS Windows-Clients einbindet, damit Benutzer gemeinsam genutzte Dateien über das Netzwerk zugreifen können, als wären sie lokal gespeichert. Es werden auch bewährte Methoden vorgestellt, um sowohl die Sicherheit als auch die Leistung zu optimieren.
Konfigurieren von NFS unter Windows: Schritt-für-Schritt-Anleitung
Um einem Benutzer den Zugriff auf entfernte NFS-Dateien zu ermöglichen, befolgen Sie diese Schritte, um Windows für das Einbinden von NFS zu konfigurieren.
Schritt 1: Installieren Sie das ‘Client for NFS’-Feature auf Ihrem Windows-Gerät, um den NFS-Client für Windows einzurichten.
In Windows 10 oder Windows 11 öffnen Sie die Systemsteuerung und gehen Sie zu Windows Features. Erweitern Sie Services for NFS und aktivieren Sie das Kontrollkästchen neben Client for NFS, wie unten gezeigt.
Für Windows Server 2012 und höher, führen Sie den Assistenten für Rollen und Features aus und wählen Sie Client for NFS, wie unten gezeigt.
Alternativ können Sie eine erhöhte Windows PowerShell-Sitzung verwenden, um den NFS-Client Windows zu installieren:
- Für Windows 10 oder Windows 11 lautet der Befehl:
Enable-WindowsOptionalFeature -Online -FeatureName ServicesForNFS-ClientOnly
- Für Windows Server lautet der Befehl:
Install-WindowsFeature -Name NFS-Client
Schritt 2: Überprüfen Sie den Client und die Konnektivität.
Stellen Sie sicher, dass der NFS Client-Dienst auf Ihrem Gerät läuft, wie unten gezeigt.
Natürlich müssen Sie eine Verbindung zum vorgesehenen NFS-Server haben. Für ein erfolgreiches Windows NFS-Mount stellen Sie sicher, dass der NFS-Client-Dienst läuft und die Firewall NFS-Verkehr zulässt. Der Standardport ist 2049.
Schritt 3: Führen Sie das Identity Mapping durch.
Um Windows-Benutzern die Authentifizierung an einem Unix-Server zu ermöglichen, der NFS-Exporte bereitstellt, müssen wir Windows-Benutzer auf die von Unix-ähnlichen Betriebssystemen verwendeten Benutzerkennungen (UIDs) und Gruppenkennungen (GIDs) abbilden. Diese Zuordnung erlaubt es dem Unix-Server zu bestimmen, welcher Benutzer die Anfrage für den NFS-Export gestellt hat.
Die Zuordnung von Identitäten kann mit einer der folgenden Methoden durchgeführt werden:
- Active Directory (wenn in die NFS-Umgebung integriert)
- Lokale Benutzerzuordnungsdateien
- Windows-Registrierungseinstellungen
Die erste Option wird aus Sicherheits- und Skalierbarkeitsgründen bevorzugt.
Methode A (bevorzugt): Führen Sie Identity Mapping in Active Directory (AD) durch
Wenn sowohl der Unix NFS-Server als auch der Windows NFS-Client derselben Active Directory domain angehören, dann können wir Identitätszuordnung in Active Directory verwenden. Dies ist die bevorzugte Methode, wann immer möglich.
Standardmäßig führt ein NFS-Client keine Identitätszuordnung in Active Directory durch. Wir können das jedoch ändern, indem wir den folgenden Befehl in einer PowerShell-Sitzung mit erhöhten Rechten auf dem NFS-Client ausführen:
Set-NfsMappingStore -EnableADLookup $True -ADDomainName “yourdomain.com”
Sie können diese LDAP-Optionen hinzufügen, um Ihre Domänencontroller zu spezifizieren:
Set-NfsMappingStore -LdapServers “dc1.yourdomain.com”,“dc2.yourdomain.com”
Starten Sie den NFS-Client-Dienst neu.
Als Nächstes müssen wir unser Identity Mapping konfigurieren. Das können wir in Active Directory Users and Computers wie folgt tun:
- Aktivieren Sie Erweiterte Funktionen im Dropdown-Menü Ansicht, wie unten gezeigt.
- Klicken Sie mit der rechten Maustaste auf das Objekt, das Sie anzeigen möchten, und wählen Sie Eigenschaften aus.
- Im Registerkarte Attribut-Editor wählen Sie das Attribut uidNumber oder gidNumber aus und klicken auf Bearbeiten.
- Geben Sie einen Wert ein und klicken Sie auf OK um Ihre Änderungen zu speichern.
Alternativ können Sie den folgenden PowerShell-Befehl verwenden:
Set-ADUser -Identity <UserPrincipalName> -Add @{uidNumber=”<user_unix_uid>”;gidNumber=”<user_unix_gid>”}
Ersetzen Sie Folgendes:
- UserPrincipalName — Der zu ändernde Benutzer (z. B. user@domain.com)
- @{ … } — Eine Hashtabelle, die die neuen hinzuzufügenden Attribute enthält
- uidNumber — Die Unix-Benutzer-ID (UID) für den Benutzer
- gidNumber — Die Unix-Gruppen-ID (GID) für die primäre Gruppe des Benutzers
Um diese Aufgabe automatisch durchzuführen, erstellen Sie eine CSV-Datei mit Benutzerdaten und durchlaufen Sie diese.
Methode B: Identity Mapping mithilfe lokaler Konfigurationsdateien durchführen
Die Verwendung lokaler Benutzerzuordnungsdateien ist ein unkomplizierter Ansatz, um eine Zuordnung zwischen Windows-Benutzern und Unix-UIDs/GIDs herzustellen, ohne auf Active Directory angewiesen zu sein. Diese Methode verwendet zwei Hauptkonfigurationsdateien:
- passwd — Ordnet Windows-Benutzern Unix-UIDs zu
- Gruppe — Ordnet Windows-Gruppen Unix-GIDs zu
Beide Dateien befinden sich typischerweise im Verzeichnis C:\Windows\system32\drivers\etc\. Sie folgen einem spezifischen Format, wobei jede Zeile einer Benutzer- oder Gruppenzuordnung entspricht. Wenn ein Windows-Benutzer versucht, auf eine NFS-Ressource zuzugreifen, konsultiert der NFS-Dienst diese Dateien, um den Windows-Kontonamen des Benutzers zu ermitteln und die entsprechende UID und GID abzurufen, die dann für NFS-Operationen verwendet werden.
Diese Methode ist einfach einzurichten und zu verwalten in kleinen Umgebungen und ist besonders nützlich für eigenständige Server oder Arbeitsgruppen. Allerdings erfordert sie manuelle Wartung der Zuordnungsdateien, weshalb sie sich nicht gut für große Umgebungen skaliert. Zusätzlich, obwohl sie eine Lösung für Umgebungen bietet, in denen eine Active Directory-Integration nicht machbar ist, ist es wichtig, die Sicherheitsimplikationen zu bedenken und regelmäßig die Zuordnungen zu prüfen, um sicherzustellen, dass sie genau und sicher bleiben.
Methode C: Identity Mapping mithilfe von Windows-Registrierungseinstellungen durchführen
Diese Methode beinhaltet das Festlegen von Registrierungswerten, um eine Standard-UID und GID zu spezifizieren, die der Windows NFS-Client verwenden wird, wenn er auf NFS-Freigaben zugreift. Sie ist besonders nützlich, wenn Sie möchten, dass der gesamte NFS-Zugriff vom Windows-Client als ein bestimmter Unix-Benutzer erscheint, unabhängig vom Windows-Benutzerkonto.
Um diese Zuordnung zu implementieren, verwenden Sie die folgenden PowerShell-Befehle:
New-ItemProperty “HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default” -Name AnonymousUID -Value <unix_export_owner_uid> -PropertyType “DWord”
New-ItemProperty “HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default” -Name AnonymousGID -Value <unix_export_owner_gid> -PropertyType “DWord”
Sie müssen neu starten, damit die neuen Einstellungen wirksam werden. Diese Zuordnung gilt für alle NFS-Mounts, die vom Windows-Client ausgeführt werden. Nachdem Sie die Identitätszuordnung durchgeführt haben, können Sie NFS in Windows über die Eingabeaufforderung mounten.
Beachten Sie, dass diese Methode dieselbe UID/GID auf alle NFS-Zugriffe vom Windows-Client anwendet, was in Multi-User-Umgebungen möglicherweise nicht ausreichende Zugriffskontrolle bietet. Darüber hinaus erfordert das Ändern der Registry administrative Privilegien, was ein Sicherheitsrisiko darstellen könnte. Aus diesen und anderen Gründen gilt diese Methode als unsicherer Ansatz und wird nicht empfohlen.
Schritt 4: NFS-Freigabe unter Windows einbinden
Das Einbinden in NFS bedeutet, dass ein entferntes Dateisystem (freigegeben von einem NFS-Server) an ein Verzeichnis im lokalen Dateisystem einer Client-Maschine angehängt wird. Wenn ein Client ein NFS-Freigabe einbindet, stellt er eine Verbindung zum entfernten Dateisystem her und lässt es erscheinen, als ob die NFS-Freigabe Teil der lokalen Verzeichnisstruktur wäre.
Um NFS unter Windows einzubinden, weisen Sie es mithilfe der Eingabeaufforderung einem verfügbaren Laufwerksbuchstaben zu, wie folgt:
mount \\<nfs_server_ip_address>\<pathtonfsexport> Z:
Ersetzen Sie Folgendes:
- <nfs_server_ip_address> — Die IP-Adresse Ihres NFS-Servers
- <pathtonfsexport> — Der Exportpfad auf dem Server
- Z — Der Laufwerksbuchstabe, dem der NFS-Freigabe auf Ihrem Windows-Computer zugeordnet wird.
Sie können zusätzliche Optionen hinzufügen; zum Beispiel, mount -o anon gibt an, dass die Verbindung anonym hergestellt werden soll, und mount -o nolock überschreibt die standardmäßige Dateisperre, die von NFS verwendet wird.
Nachdem der Befehl mount oder mount o ausgeführt wurde, überprüfen Sie, ob das NFS-Freigabe erfolgreich eingebunden wurde, indem Sie den Befehl net use ausführen, um alle zugeordneten Netzlaufwerke anzuzeigen.
Tipps zur Fehlerbehebung
Hier sind einige Fehler, die während des Montageprozesses auftreten können und ihre typischen zugrunde liegenden Ursachen:
- Zugriff verweigert — Falsche Exporteinstellungen auf dem NFS-Server oder NFS-Regel blockiert
- Zugriff vom Server verweigert — Nicht übereinstimmende UID/GID zwischen Client und Server
- Versionsinkompatibilität — Client und Server verwenden inkompatible NFS-Versionen
- Mount point bereits in Verwendung — Versuch, ein Verzeichnis zu mounten, das bereits als Mount point verwendet wird
- Datei oder Verzeichnis nicht gefunden — Der Exportpfad auf dem Server existiert nicht
Best Practices für das Einbinden von NFS auf Windows
Die folgenden bewährten Methoden können Ihnen helfen, Sicherheit und Leistung zu optimieren, wenn Sie NFS-Mounting unter Windows verwenden.
Sicherheit
- Verwenden Sie starke Authentifizierungsprotokolle wie Kerberos.
- Konfigurieren Sie Firewalls, um das Netzwerk zu segmentieren und den NFS-Zugriff von nicht vertrauenswürdigen Netzwerken zu beschränken, wobei nur die notwendigen Ports (TCP- und UDP-Port 2049) zugelassen werden.
- Verschlüsseln Sie Daten während der Übertragung mit sicheren Protokollen, um sie vor Lauschangriffen und Manipulationen zu schützen.
- Beschränken Sie NFS-Exportberechtigungen, indem Sie den minimal erforderlichen Zugriff gewähren und Clientverbindungen auf bestimmte IP-Adressen oder Hostnamen einschränken.
- Aktualisieren und patchen Sie regelmäßig sowohl den Windows-Client als auch den NFS-Server, um sich gegen bekannte Schwachstellen zu schützen.
- Aktivieren Sie detailliertes Logging auf dem NFS-Server und überwachen Sie auf verdächtige Aktivitäten.
- Verwenden Sie zusätzliche Netzwerksicherheitsmaßnahmen wie VPNs für den Fernzugriff.
Leistung
- Wenn möglich, verwenden Sie NFSv4 oder NFSv4.1 anstelle von NFSv3.
- Aktivieren Sie das Lesen und Schreiben von Zwischenspeicherung auf der Clientseite, um die Leistung für häufig zugegriffene Daten zu verbessern. Sie können dies mit dem folgenden Befehl tun: mount –o readcache,writecache.
- Wenn Sicherheit in Ihrer Umgebung kein Anliegen ist, erwägen Sie die Verwendung der Option nolock, um die Dateisperre zu deaktivieren.
- Halten Sie die Windows NFS-Client-Software aktuell, um von den neuesten Leistungsverbesserungen und Fehlerbehebungen zu profitieren.
Überwachen Sie Änderungen an Unix-Freigaben mit Netwrix
Netwrix Change Tracker gewährleistet Sicherheit, indem es Dateiänderungen überwacht und eine Audit-Trail aufrechterhält
FAQ
Unterstützt Windows 11 NFS-Clients?
Ja, Windows 11 unterstützt NFS-Clients.
Wie kann ich NFS in Windows verwenden?
Hier sind einige Möglichkeiten, wie Sie NFS in Windows verwenden können:
- Sie können den Zugriff auf dieselbe Dateifreigabe sowohl über die SMB- als auch die NFS-Protokolle ermöglichen, indem Sie einen Windows NFS-Dateiserver verwenden.
- Sie können ein Nicht-Windows-Betriebssystem bereitstellen, um NFS-Dateifreigaben über das NFS-Protokoll für Nicht-Windows-Clients zugänglich zu machen.
- Um Anwendungen von einem Betriebssystem auf ein anderes zu migrieren, können Sie Daten auf Dateifreigaben speichern, die sowohl über das SMB- als auch das NFS-Protokoll zugänglich sind.
Welche Verbesserungen sind in NFS Version 4.1 enthalten?
Für vollständige Details besuchen Sie die Microsoft NFS page. Wichtige Verbesserungen in Version 4.1 umfassen:
- Remote Procedure Call (RPC)/External Data Representation (XDR) Transportinfrastruktur, die bessere Unterstützung bietet und eine verbesserte Skalierbarkeit gewährleistet
- RPC-Port-Multiplexer
- Automatisch abgestimmte Caches und Thread-Pools
- Neue Kerberos-Datenschutzimplementierung und Authentifizierungsoptionen
Wie füge ich den Server für den NFS-Rolldienst hinzu?
Im Server-Manager oder Windows Admin Center, verwenden Sie den Assistenten zum Hinzufügen von Rollen und Features.
Welche Befehlszeilen-Verwaltungstools für Windows enthält Server für NFS?
- Mount stellt auf Windows-Clients einen NFS-Mount bereit, der einem lokalen Laufwerk zugeordnet wird.
- Nfsadmin manages configuration settings of the Server for NFS and Client for NFS components.
- Nfsshare richtet NFS-Freigabeeinstellungen für Ordner ein, die über Server für NFS freigegeben sind.
- Nfsstat zeigt Statistiken zu Aufrufen an, die vom Server für NFS empfangen oder zurückgesetzt wurden.
- Showmount listet die Dateisysteme auf, die vom Server für NFS exportiert wurden.
Teilen auf
Erfahren Sie mehr
Über den Autor
Joe Dibley
Sicherheitsforscher
Security Researcher bei Netwrix und Mitglied des Netwrix Security Research Teams. Joe ist ein Experte für Active Directory, Windows und eine Vielzahl von Unternehmenssoftwareplattformen und -technologien. Joe erforscht neue Sicherheitsrisiken, komplexe Angriffstechniken sowie zugehörige Milderungs- und Erkennungsmaßnahmen.
Erfahren Sie mehr zu diesem Thema
Powershell Delete File If Exists
PowerShell Write to File: "Out-File" und Dateiausgabetechniken
So erstellen Sie neue Active Directory-Benutzer mit PowerShell
So führen Sie ein PowerShell-Skript aus
Was ist PowerShell? Ein kompletter Leitfaden zu seinen Funktionen & Anwendungen