Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
Sommario
Sommario............................................................................................................................................. 2
Network File System............................................................................................................................ 2
In breve................................................................................................................................................. 2
Lato server............................................................................................................................................ 3
Lato client............................................................................................................................................. 4
Comandi di amministrazione ...............................................................................................................5
Problemi di sicurezza .......................................................................................................................... 5
In breve
Solitamente, sul sistema GNU/Linux del quale si vogliono condividere delle directory sufficiente
inserire queste nel file /etc/exports. I client potranno accedere ad esse attraverso un semplice
mount. Ovviamente ci potr avvenire solo se il sistema supporta questo protocollo e dopo che i
necessari servizi di rete saranno stati avviati.
Per poter condividere file attraverso NFS, sia come client che come server, occorre includere il
supporto al file system NFS nel kernel. Nella maggior parte delle distribuzioni (e nelle RedHat in
particolare) i kernel sono precompilati col questo supporto NFS attivato. Per controllare che questo
supporto esista, sufficiente leggere il contenuto del file /proc/filesystems. L'esempio seguente
rappresenta una situazione in cui possibile accedere a file system NFS ( la riga nodev nfs a
rivelarlo)
nodev
nodev
nodev
nodev
ext2
proc
nfs
iso9660
autofs
devpts
reiserfs
vfat
Inoltre, sia sul server che sui client, dovranno essere attivati gli opportuni servizi. Senza scendere
troppo nel dettaglio su cosa fa ciascuno di questi servizi, vediamo cosa attivare nel server e nei
client, supponendo che il nostro sistema sia un Linux RedHat.
- Pag. 2 di 6 -
Lato server
Perch NFS possa funzionare, il servizio portmap deve essere attivo sul server. Con RedHat linux
lo possiamo eventualmente attivare in questo modo:
service portmap start
Un altro servizio da attivare sul server (e come vedremo anche sul client) il nfslock (che in realt
consiste di due parti: lockd e statd). Anche in questo caso con RedHat basta eseguire:
service nfslock start
Infine va lanciato il demone NFS vero e proprio (partiranno nfsd, mountd e quotad):
service nfs start
Verranno condivise le directory elencate nel file /etc/exports. La sintassi di questo file di
configurazione piuttosto semplice. E composto da diverse righe del tipo:
<percorso_dir> <host_o_rete1>(opzioni1) <host_o_rete2>(opzioni2)
E possibile indicare intere sottoreti sia tramite la notazione classica (192.168.199.0/24) che
tramite luso di wildcard1 (*.miodominio.com). Praticamente per ogni directory si intende
condividere possibile specificare la lista di chi pu accedere e le modalit di accesso per ognuno.
Vediamo velocemente quali sono le opzioni di esportazione:
ro
rw
secure
insecure
Sync
async
Caratteri jolly
- Pag. 3 di 6 -
wdelay
Questo comando provoca la chiusura di eventuali condivisioni rimosse, lapertura di quelle nuove a
la variazione delle modalit di accesso per le righe modificate. Per altre opzioni rimandiamo alla
documentazione on-line (man exportfs).
Lato client
Sul lato client occorre che sia in funzione, come sul server, il servizio nfslock:
service nfslock start
Non occorre altro, se non montare la condivisione remota su un mount-point esistente, col
comando:
mount t nfs indirizzo_server:/condivisione /mount/point/valido
Tutto qui. Ecco un esempio di montaggio riferito alla tabella di esportazione del paragrafo
precedente:
mount t nfs 192.168.199.1:/home /home o rsize=65536,wsize=65536
Sono state specificate alcune opzioni di mount. Queste possono avere un impatto notevole sulla
performance. Vediamo le pi importanti:
- Pag. 4 di 6 -
rsize
wsize
hard
soft
timeo
Comandi di amministrazione
Oltre al gi citato exportfs, un comodo comando che ci permette di ricavare informazioni su
esportazioni e connessioni stabilite showmount.
showmount a server
showmount d server
showmount e server
Mostra quali client stiano montando delle partizioni NFS del server
specificato. Vengono elencati il nome/indirizzo del client e la directory
montata.
Elenco delle directory montate da qualche client
Elenco delle directory che il server esporta (montate o meno da
qualche server)
Problemi di sicurezza
Perch sia possibile montare le condivisioni del server essenziale che eventuali firewall o
protezioni via tcp-wrapper lascino ai nostri client libero accesso a certe porte TCP/UDP. Daltra
parte anche necessario che gli host non autorizzati non possano in alcun modo accedere a tali
risorse.
Le impostazioni fatte nel file /etc/exports hanno un carattere puramente pratico. Come sistema di
sicurezza sono un filtro blando e facilmente aggirabile. Per avere un livello di sicurezza un po pi
elevato, NFS di solito compilato con il supporto per il tcp-wrapper2. Non questa la sede per
2
Anche la protezione offerta dal tcp-wrapper, per quanto molto superiore rispetto alle impostazioni di /etc/exports,
comunque relativa. E sempre meglio avere anche quella di un solido firewall tipo IPCHAINS o IPTABLES.
- Pag. 5 di 6 -
spiegare il funzionamento di tale supporto. Basti dire che con questo sistema la verifica degli
accessi a una porta TCP o UDP avviene tramite due file: /etc/hosts.deny e /etc/hosts.allow.
Il deny ha precedenza rispetto allallow. In questi file possibile specificare rispettivamente a quali
servizi si nega e a quali si garantisce laccesso (e in entrambi i casi a chi).
E prassi comune prima negare tutto a tutti in /etc/hosts.deny con:
ALL: ALL
Il primo ALL indica tutti i servizi, quello dopo i due punti indica tutti gli host. Poi si garantisce
laccesso a chi si desidera per certi servizi nel file /etc/hosts.allow. Nel nostro caso
aggiungiamo le linee:
portmap: 127.0.0.1, host1_address, host2_address,
mountd: 127.0.0.1, host1_address, host2_address,
Concediamo cio laccesso a quelle porte ai soli host specificati (pi il localhost). Possiamo
specificare singolarmente gli indirizzi degli host che vogliamo abilitare o eventualmente tutta la
sottorete locale (qualcosa tipo: 192.168.1. ).
Nel (malaugurato) caso che in /etc/hosts.deny ci siano impostazioni dettagliate (e non ALL:
ALL), dobbiamo aggiungere le righe:
portmap: ALL
mountd: ALL
per blocchiamo qualunque tentativo di accesso alle porte specificate. Le modifiche al file allow
saranno le stesse del caso precedente.
- Pag. 6 di 6 -