Guida al montaggio di condivisioni Unix con un client NFS Windows
Nov 18, 2022
Le organizzazioni moderne tipicamente utilizzano una varietà di sistemi operativi, inclusi Unix, Linux, Windows e macOS. Network File System (NFS) è un protocollo aperto client/server che permette alle organizzazioni di centralizzare la loro memorizzazione dei dati su uno o più server e abilitare la condivisione di file senza interruzioni tra i loro vari sistemi operativi.
Questo blog spiega come montare client NFS Windows in modo che gli utenti possano accedere ai file condivisi sulla rete come se fossero memorizzati localmente. Fornisce inoltre le migliori pratiche per ottimizzare sia la sicurezza che le prestazioni.
Configurazione di NFS su Windows: Guida passo dopo passo
Per consentire a un utente di accedere ai file NFS remoti, segui questi passaggi per configurare il mount NFS di Windows.
Passaggio 1: Installare la funzionalità ‘Client for NFS’ sul proprio computer Windows per configurare il client NFS per Windows.
In Windows 10 o Windows 11, apri Pannello di controllo e vai su Windows Features. Espandi Services for NFS e seleziona la casella accanto a Client for NFS, come mostrato di seguito.
Per Windows Server 2012 e versioni successive, eseguire la procedura guidata Ruoli e funzionalità e selezionare Client for NFS, come mostrato di seguito.
In alternativa, puoi utilizzare una sessione di Windows PowerShell con privilegi elevati per installare il client NFS di Windows:
- Per Windows 10 o Windows 11, il comando è:
Enable-WindowsOptionalFeature -Online -FeatureName ServicesForNFS-ClientOnly
- Per Windows Server, il comando è:
Install-WindowsFeature -Name NFS-Client
Passo 2: Verificare il cliente e la connettività.
Verificate che il servizio NFS Client sia in esecuzione sulla vostra macchina, come mostrato di seguito.
Naturalmente, devi avere connettività al server NFS designato. Per un montaggio NFS Windows di successo, assicurati che il servizio Client NFS sia in esecuzione e che il firewall consenta il traffico NFS. La porta predefinita è 2049.
Passaggio 3: Eseguire il mapping delle identità.
Per consentire agli utenti Windows di autenticarsi su un server Unix che fornisce esportazioni NFS, dobbiamo mappare gli utenti Windows agli identificatori utente (UID) e agli identificatori di gruppo (GID) utilizzati dai sistemi operativi simili a Unix. Questa mappatura permette al server Unix di determinare quale utente ha effettuato la richiesta per l'esportazione NFS.
Il mapping dell'identità può essere eseguito utilizzando uno dei seguenti metodi:
- Active Directory (se integrato con l'ambiente NFS)
- File di mappatura degli utenti locali
- Impostazioni del Registro di sistema di Windows
La prima opzione è preferibile per motivi di sicurezza e scalabilità.
Metodo A (Preferito): Eseguire il Mapping delle Identità in Active Directory (AD)
Se sia il server NFS Unix che il client NFS Windows sono uniti allo stesso dominio di Active Directory, allora possiamo utilizzare il mapping delle identità in Active Directory. Questo è il metodo preferito ogni volta che è possibile.
Per impostazione predefinita, un client NFS non eseguirà la ricerca del mapping dell'identità in Active Directory. Tuttavia, possiamo modificare questo comportamento eseguendo il seguente comando in una sessione PowerShell elevata sul client NFS:
Set-NfsMappingStore -EnableADLookup $True -ADDomainName “yourdomain.com”
Puoi aggiungere queste opzioni LDAP per specificare i tuoi domain controllers:
Set-NfsMappingStore -LdapServers “dc1.yourdomain.com”,”dc2.yourdomain.com”
Riavvia il servizio client NFS.
Successivamente, dobbiamo configurare il nostro mapping delle identità. Possiamo farlo in Active Directory Users and Computers nel seguente modo:
- Attiva le Funzioni Avanzate disponibili nel menu a discesa Visualizza, come mostrato di seguito.
- Fare clic con il pulsante destro del mouse sull'oggetto che si desidera visualizzare e selezionare Properties.
- Nella scheda Editor di attributi, selezionare l'attributo uidNumber o gidNumber e fare clic su Modifica.
- Inserisci un valore e fai clic su OK per salvare le modifiche.
In alternativa, puoi utilizzare il seguente comando PowerShell:
Set-ADUser -Identity <UserPrincipalName> -Add @{uidNumber=”<user_unix_uid>”;gidNumber=”<user_unix_gid>”}
Sostituire quanto segue:
- UserPrincipalName — L'utente da modificare (ad esempio, user@domain.com)
- @{ … } — Una tabella hash contenente i nuovi attributi da aggiungere
- uidNumber — L'ID utente Unix (UID) per l'utente
- gidNumber — L'ID di gruppo Unix (GID) per il gruppo primario dell'utente
Per eseguire automaticamente questo compito, crea un file CSV contenente i dati degli utenti e cicla attraverso di esso.
Metodo B: Eseguire il Mapping delle Identità utilizzando File di Configurazione Locali
Utilizzare file di mappatura degli utenti locali è un approccio diretto per stabilire una corrispondenza tra gli utenti Windows e gli UID/GID Unix senza dipendere da Active Directory. Questo metodo utilizza due file di configurazione principali:
- passwd — Associa gli utenti Windows agli UID Unix
- group — Associa i gruppi Windows ai GID Unix
Entrambi i file si trovano tipicamente nella directory C:\Windows\system32\drivers\etc\. Seguono un formato specifico, con ogni riga che rappresenta una mappatura di utente o gruppo. Quando un utente Windows tenta di accedere a una risorsa NFS, il servizio NFS consulta questi file per cercare il nome dell'account Windows dell'utente e recuperare l'UID e il GID corrispondenti, che sono poi utilizzati per le operazioni NFS.
Questo metodo è semplice da configurare e gestire in piccoli ambienti ed è particolarmente utile per server autonomi o gruppi di lavoro. Tuttavia, poiché richiede la manutenzione manuale dei file di mappatura, non è ben scalabile per ambienti di grandi dimensioni. Inoltre, sebbene offra una soluzione per ambienti in cui l'integrazione con Active Directory non è fattibile, è importante considerare le implicazioni di sicurezza e controllare regolarmente le mappature per assicurarsi che rimangano accurate e sicure.
Metodo C: Eseguire il Mapping dell'Identity utilizzando le Impostazioni del Registro di Windows
Questo metodo prevede l'impostazione di valori del registro per specificare un UID e un GID predefiniti che il client NFS di Windows utilizzerà quando accede alle condivisioni NFS. È particolarmente utile quando si desidera che tutto l'accesso NFS dal client Windows appaia come un determinato utente Unix, indipendentemente dall'account utente Windows.
Per implementare questa mappatura, utilizzare i seguenti comandi PowerShell:
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”
È necessario riavviare per applicare le nuove impostazioni. Questa mappatura sarà valida per tutti i montaggi NFS effettuati dal client Windows. Dopo aver eseguito il mapping dell'identità, è possibile montare NFS in Windows utilizzando il prompt dei comandi.
Si noti che questo metodo applica lo stesso UID/GID a tutti gli accessi NFS dal client Windows, il che potrebbe non fornire un controllo degli accessi sufficiente in ambienti multi-utente. Inoltre, la modifica del registro richiede privilegi amministrativi, il che potrebbe essere una preoccupazione per la sicurezza. Per questi e altri motivi, questo metodo è considerato un approccio insicuro e non è raccomandato.
Passaggio 4: Montare NFS Share Windows
Montare in NFS significa collegare un file system remoto (esportato da un server NFS) a una directory nel file system locale di una macchina client. Quando un client monta una condivisione NFS, si connette al file system remoto e lo fa apparire come se la condivisione NFS fosse parte della struttura di directory locale.
Per montare NFS su Windows, mappalo su una lettera di unità disponibile utilizzando il prompt dei comandi, come segue:
monta \\<nfs_server_ip_address>\<pathtonfsexport> Z:
Sostituire quanto segue:
- <nfs_server_ip_address> — L'indirizzo IP del tuo server NFS
- <pathtonfsexport> — Il percorso di esportazione sul server
- Z — La lettera di unità alla quale verrà montata la condivisione NFS sul tuo computer Windows.
È possibile aggiungere opzioni aggiuntive; per esempio, mount -o anon indica che la connessione deve essere effettuata in modo anonimo, e mount -o nolock sovrascrive il blocco file predefinito utilizzato da NFS.
Dopo aver eseguito il comando mount o mount o , verifica se la condivisione NFS è stata montata con successo eseguendo il comando net use per visualizzare tutte le unità di rete mappate.
Suggerimenti per la risoluzione dei problemi
Ecco alcuni errori che possono insorgere durante il processo di montaggio e le loro tipiche cause sottostanti:
- Permesso negato — Impostazioni di esportazione errate sul server NFS o regola NFS che blocca
- Accesso negato dal server — UID/GID non corrispondenti tra client e server
- Incompatibilità di versione — Client e server utilizzano versioni NFS incompatibili
- Punto di montaggio già in uso — Tentativo di montaggio su una directory che è già utilizzata come punto di montaggio
- Nessun file o directory — Il percorso di esportazione sul server non esiste
Migliori pratiche per il montaggio NFS su Windows
Le seguenti best practice possono aiutarti a ottimizzare la sicurezza e le prestazioni quando utilizzi il montaggio NFS su Windows.
Sicurezza
- Utilizza protocolli di autenticazione robusti come Kerberos.
- Configurate i firewall per segmentare la rete e limitare l'accesso NFS dalle reti non affidabili, consentendo solo le porte necessarie (porta TCP e UDP 2049).
- Cifrare i dati in transito utilizzando protocolli sicuri per proteggerli contro l'intercettazione e la manomissione.
- Limitare i permessi di esportazione NFS concedendo l'accesso minimo richiesto e restringendo le connessioni client a specifici indirizzi IP o hostname.
- Aggiornate e applicate regolarmente le patch sia al client Windows che al server NFS per proteggervi dalle vulnerabilità note.
- Abilita la registrazione dettagliata sul server NFS e monitora per attività sospette.
- Utilizza misure di sicurezza di rete aggiuntive come le VPN per l'accesso remoto.
Prestazione
- Se possibile, utilizzare NFSv4 o NFSv4.1 piuttosto che NFSv3.
- Abilita la cache in lettura e scrittura sul lato client per migliorare le prestazioni dei dati accessi frequentemente. Puoi farlo utilizzando il seguente comando: mount –o readcache,writecache.
- Se la sicurezza non è una preoccupazione nel tuo ambiente, considera l'utilizzo dell'opzione nolock per disabilitare il blocco dei file.
- Mantieni aggiornato il software client NFS di Windows per beneficiare degli ultimi miglioramenti delle prestazioni e delle correzioni di bug.
Monitora le modifiche alle condivisioni Unix con Netwrix
Netwrix Change Tracker garantisce la sicurezza monitorando le modifiche dei file e mantenendo una traccia di verifica
FAQ
Windows 11 supporta i client NFS?
Sì, Windows 11 supporta i client NFS.
Come posso utilizzare NFS in Windows?
Ecco alcuni modi in cui puoi utilizzare NFS in Windows:
- È possibile fornire l'accesso allo stesso file share utilizzando sia i protocolli SMB che NFS tramite un server di file NFS Windows.
- È possibile distribuire un sistema operativo non Windows per fornire condivisioni di file NFS accessibili a client non Windows tramite il protocollo NFS.
- Per consentire alle applicazioni di essere migrate da un sistema operativo all'altro, è possibile memorizzare i dati su condivisioni di file accessibili utilizzando sia i protocolli SMB che NFS.
Quali miglioramenti sono inclusi nella versione 4.1 di NFS?
Per tutti i dettagli, visita la pagina Microsoft NFS page. I miglioramenti chiave nella versione 4.1 includono:
- Infrastruttura di trasporto Remote Procedure Call (RPC)/External Data Representation (XDR), che offre un migliore supporto e garantisce una maggiore scalabilità
- Multiplexer della porta RPC
- Cache e pool di thread auto-regolati
- Nuova implementazione della privacy Kerberos e opzioni di autenticazione
Come faccio ad aggiungere il servizio di ruolo per il server NFS?
In Server Manager o Windows Admin Center, utilizzare la procedura guidata Aggiungi ruoli e funzionalità.
Quali strumenti di amministrazione da riga di comando di Windows contiene Server for NFS?
- Mount fornisce un mount NFS su client Windows che mappa su un'unità locale.
- Nfsadmin manages configuration settings of the Server for NFS and Client for NFS components.
- Nfsshare configura le impostazioni di condivisione NFS per le cartelle condivise tramite Server per NFS.
- Nfsstat visualizza o azzera le statistiche sulle chiamate ricevute da Server for NFS.
- Showmount elenca i file system che sono stati esportati da Server per NFS.
Condividi su
Scopri di più
Informazioni sull'autore
Joe Dibley
Ricercatore di sicurezza
Ricercatore di sicurezza presso Netwrix e membro del Netwrix Security Research Team. Joe è un esperto in Active Directory, Windows e una vasta gamma di piattaforme software aziendali e tecnologie, Joe ricerca nuovi rischi per la sicurezza, tecniche di attacco complesse e relative mitigazioni e rilevamenti.
Scopri di più su questo argomento
Powershell Elimina il file se esiste
PowerShell Write to File: "Out-File" e Tecniche di Output del File
Come creare nuovi utenti di Active Directory con PowerShell
Come eseguire uno script PowerShell
Cos'è PowerShell? Una guida completa alle sue funzionalità e utilizzi