NFS è molto utile per condividere in modo traparente, interi filesystem con un gran numero di host conosciuti. Molti utenti che accedono a dei file via NFS possono non essere a conoscenza del fatto che il filesystem che stanno usando non è il filesystem locale per il loro sistema. Comunque, al di là della facilità d'uso, esistono numerosi potenziali problemi di sicurezza.
Dovete tenere in considerazione i seguenti punti quando esportate filesystem 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.
NFS controlla chi può montare un filesystem esportato in base all'host che effettua la richiesta di montaggio, non in base all'utente che utilizza il filesystem. Occorre fornire agli host dei diritti specifici perché possano montare il filesystem esportato. Il controllo degli accessi non è possibile per gli utenti, a differenza dei permessi di file e directory. In altre parole, quando esportate un filesystem via NFS state anche permettendo a tutti gli utenti che hanno il permesso di accedere a quell'host di utilizzarlo. È comunque possibile tenere sotto controllo questo rischio, per esempio esclusivamente montaggi in modalità di sola lettura e limitando il potere degli utenti e dei gruppi tramite l'opzione squash. Ma 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 filesystem 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 nome utente e password mirate ad aumentare la sicurezza del montaggio. Gli stessi rischi valgono anche per i server NIS compromessi, se i gruppi di rete NIS vengono utilizzati per consentire a determinati host di montare una condivisione NFS. Invece, usando degli indirizzi IP in /etc/exports, questo attacchi di questo genere sono molto più difficili da effettuare.
I caratteri jolly vanno usati con cautela quando si sta concedendo l'accesso a una condivisione NFS. Il loro raggio di azione potrebbe raggiungere anche sistemi di cui non conoscete l'esistenza e cui non dovrebbe essere dato il il permesso di montare il filesystem.
Per maggiori informazioni, consultate il capitolo intitolato Sicurazza del server nel Red Hat Linux Security Guide.
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 Linux System Administration Primer.
Il modo di operare di default, quando si esporta un filesystem via NFS è il root squashing che imposta l'ID utente di chiunque acceda alla condivisione NFS come utente di root sulla propria macchina locale su un valore di UID anonimo, o "nobody". È altamente sconsigliabile disabilitare questa opzione.
Se accordate agli utenti permessi di sola lettura per i file cui accedono mediante la condivisione NFS, dovreste usare anche l'opzione all_squash, che attribuisce un UID anonimo a chiunque acceda al vostro filesystem esportato.