NFS è molto utile per condividere in modo traparente, interi file system con un gran numero di host conosciuti. Comunque, al di là della facilità d'uso, esistono numerosi potenziali problemi di sicurezza.
Dovete tenere in considerazione i seguenti punti quando esportate file system NFS su un server o li montate su un client. così potrete ridurre al minimo i rischi legati alla sicurezza di NFS e sarete in grado di proteggere meglio i vostri dati.
Per un elenco abbreviato sulle fasi che un amministratore può intraprendere per rendere sicuri i server NFS, consultate il capitolo Sicurazza del server nella Red Hat Enterprise Linux Security Guide.
NFS controlla chi può montare un file system esportato in base all'host che effettua la richiesta di montaggio, non in base all'utente che utilizza il file system. Occorre fornire agli host dei diritti specifici perché possano montare il file system esportato. Il controllo degli accessi non è possibile per gli utenti, a differenza dei permessi di file e directory. In altre parole, quando esportate un file system tramite NFS state anche permettendo a tutti gli utenti su qualsiasi host remoto collegato al server NFS, di accedere ai dati condivisi. Per limitare i rischi potenziali, gli amministratori possono sempre abilitare un accesso di sola lettura e limitando il potere degli utenti e dei gruppi ID tramite l'opzione squash. Sfortunatamente, queste soluzioni possono intaccare l'uso originario della condivisione NFS.
Inoltre, se un aggressore assume il controllo del server DNS utilizzato dal sistema che esporta il file system NFS, il sistema associato a un particolare hostname o a un nome di dominio completamente qualificato può essere indirizzato verso una macchina non autorizzata. A questo punto, tale macchina non autorizzata è il sistema che ha il permesso di montare la condivisione NFS, dal momento che non vengono scambiate informazioni di sorta relative a username e password mirate ad aumentare la sicurezza del montaggio NFS.
Le wildcard vanno usate con cautela quando si esegue una esportazione di directory tramite NFS, in quanto è possibile raggiungere anche sistemi di cui non conoscete l'esistenza.
È possibile altresì limitare l'accesso al servizio portmap tramite i wrapper TCP. L'accesso alle prote usate da portmap, rpc.mountd, e rpc.nfsd, può essere limitato creando delle regole per il firewall con iptables.
Per informazioni su come rendere sicuro NFS e portmap, consultate il capitolo intitolato Sicurazza del server nella Red Hat Enterprise Linux Security Guide. Informazioni aggiuntive sui firewall sono disponibili su Capitolo 17.
Una volta che il filesystem NFS è stato montato in modalità lettura/scrittura da un host remoto, la protezione per ciascuno dei file condivisi é rappresentata dai propri permessi. Se due utenti che condividono lo stesso valore di ID utente montano lo stesso filesystem NFS, l'uno sarà in grado di modificare i file dell'altro e viceversa. Inoltre, chiunque si colleghi come root sul sistema client pò utilizzare il comando su - per assicurarsi i permessi per accedere a determinati file attraverso la condivisione NFS. Per maggiori informazioni sui conflitti userid e NFS, consultare il capitolo intitolato Gestione degli account e dei Gruppi in Red Hat Enterprise Linux Introduzione al System Administration.
Per default, le access control lists (ACL) sono supportate da NFS sotto Red Hat Enterprise Linux. Non è consigliato disabilitare questa caratteristica. Per maggiori informazioni, consultare il capitolo Network File System (NFS) nella Red Hat Enterprise Linux System Administration Guide.
Il modo di operare di default, quando si esporta un filesystem tramite NFS è il root squashing che imposta l'ID utente di chiunque acceda alla condivisione NFS come utente root sulla propria macchina locale su un valore di un account del server nfsnobody. È altamente sconsigliabile disabilitare questa opzione.
Se esportate una condivisione NFS di solo lettura, dovreste usare anche l'opzione all_squash, che attribuisce un user ID dell'utente nfsnobody a chiunque acceda al vostro file system esportato.