Descriverò in dettaglio la creazione di NFS Mount Point su un client Windows 10 nella parte 2 di questa serie. Per ora concentriamoci su un server Ubuntu che offre archiviazione NFS e un client Ubuntu che cerca di connettersi ad esso.
Il set up
Il mio server NFS si baserà su Ubuntu 18.04 LTS. Puoi usare la tua distro Linux preferita o FreeBSD o qualsiasi altro sistema operativo che supporta OpenZFS. La mia ragione per usare Ubuntu 18.04 è che è abbastanza popolare e ridurrebbe considerevolmente la barriera dell'ingresso.
L'NFS dovrebbe essere disponibile solo sulla mia LAN che ha la sottorete di 255.255.255.0 e 192.168.0.1 come il suo gateway predefinito. In un inglese semplice, ciò significa che tutti i dispositivi collegati alla mia rete domestica (WiFi ed Ethernet, et al) avranno indirizzi IP che vanno da 192.168.0.2 a 192.168.0.254.
Il server NFS sarà configurato per consentire solo ai dispositivi con l'indirizzo IP di cui sopra di avere accesso al server NFS. Ciò garantirebbe che solo i dispositivi che si sono collegati alla mia LAN accedono ai miei file e il mondo esterno non possano accedervi. Se hai una configurazione "aperta wifi" o se la sicurezza sull'endpoint del router è dubbia, ciò non garantirebbe alcuna sicurezza.
Non consiglierei di eseguire NFS su Internet pubblico senza ulteriore misura di sicurezza.
Infine, i comandi che vengono eseguiti sul server NFS hanno il prompt, il server $ e i comandi da eseguire sul lato client hanno il client prompt $
Creazione di un pool OpenZFS e set di dati
Se hai già uno ZPool attivo e funzionante, salta questo passaggio. Sul mio server NFS, che esegue Ubuntu 18.04 LTS Server, instavo prima OpenZFS.
Server $ sudo apt Installa zfsutils-linuxSuccessivamente elencheremo tutti i dispositivi di blocco disponibili, per vedere i nuovi dischi (e le partizioni) in attesa di essere formattati con ZFS.
$ lsblkUn esempio tipico è mostrato sopra, ma la tua convenzione di denominazione potrebbe essere selvaggiamente diversa. Dovrai usare il tuo giudizio e fare molta attenzione. Non vuoi formattare accidentalmente il disco del sistema operativo. Ad esempio, la partizione SDA1 ha chiaramente il filesystem di root come punto di montaggio, quindi non è saggio toccarlo. Se stai usando nuovi dischi, è probabile che non abbiano un punto di montaggio o alcun tipo di partizionamento.
Una volta che conosci il nome dei tuoi dispositivi, utilizzeremo il comando ZPOOL Crea per formattare un paio di questi dispositivi di blocco (chiamati SDB e SDC) in uno ZPool con un singolo VDEV composto da due disco a specchio.
Server $ sudo zpool Crea serbatoio SDB SDCAndando avanti, è possibile aggiungere dischi in set di due (chiamati VDEV) per far crescere le dimensioni di questo Zpool, i nuovi dischi verranno visualizzati come Mirror-1, Mirror-2 ecc. Non devi creare il tuo zpool come ho fatto io, puoi usare il mirroring con più dischi, puoi usare lo striping senza ridondanza ma prestazioni migliori o puoi usare raidz. Alla fine della giornata, ciò che conta è che abbiamo creato uno Zpool chiamato Tank. Su cui vivrà gli NF condivisi. Creiamo un set di dati che verrà condiviso. Per prima cosa assicurati che la piscina, chiamata "Tank", sia montata. Il punto di montaggio predefinito è '/serbatoio' .
server $ sudo zfs mount serbatoioImpostazione delle autorizzazioni
Quando si condividono una directory NFS, il superutente sul sistema client non ha accesso a nulla sulla condivisione. Mentre il superutente sul lato client è in grado di fare qualsiasi cosa sulla macchina client, il supporto NFS non è tecnicamente parte del computer client. Pertanto, consentire le operazioni per conto del superutente lato client mappato come superutente lato server potrebbe comportare problemi di sicurezza. Per impostazione predefinita, NFS mappa le azioni del superutente lato client a nessuno: utente e gruppo di utenti di Nogroup. Se si intende accedere ai file montati come root, anche il set di dati sul nostro server NFS dovrebbe avere le stesse autorizzazioni,
server $ sudo chown nessuno: nogroup /tank /nfsshareIl server NFS eseguirà qualsiasi azione tramite il root lato client come utente nessuno, quindi l'autorizzazione di cui sopra consentirà alle operazioni di passare.
Se si utilizza un nome utente diverso (normale), è spesso conveniente avere un utente con lo stesso nome utente esatto su entrambi i lati.
Creazione della condivisione NFS
Una volta creato ZPool, è necessario installare il pacchetto server NFS dal gestore dei pacchetti:
Server $ sudo apt Installa nfs-kernel-serverTradizionalmente, il server NFS utilizza /ecc /esporta il file per ottenere come elenco di client approvati e i file a cui avranno accesso. Tuttavia, useremo la funzione integrata di ZFS per ottenere lo stesso.
Usa semplicemente il comando:
server $ sudo zfs imposta sharenfs = "on" /tank /nfsshareIn precedenza, ho accennato a dare solo ad alcuni IP l'accesso. Puoi farlo come segue:
server $ sudo zfs imposta sharenfs = "rw [email protected]/24 "Tank/NFSSHARELa "RW" sta per le autorizzazioni di scrittura di lettura, e che è seguito dalla gamma di IPS. Assicurati che il numero di porta 111 e 2049 sia aperto sul tuo firewall. Se stai usando UFW, puoi verificarlo eseguendo:
Server $ UFW StatoPrendi nota dell'IP del tuo server sulla LAN, utilizzando il comando ifconfig o ip addr. Chiamiamolo server.IP
Montaggio lato client
Una volta creata la condivisione, è possibile montare sulla macchina client, eseguendo il comando:
Client $ Mount -t Server NFS.IP:/Tank/NFSSHARE/MNTQuesto monterà la cartella NFS Condividi sulla /MNT ma potresti aver scelto altrettanto facilmente qualsiasi altro punto di montaggio a tua scelta.
La condivisione dei file è probabilmente l'aspetto più importante dell'amministrazione del sistema. Sta migliorando la tua comprensione dello stack di archiviazione, del networking, delle autorizzazioni utente e dei privilegi. Renderai rapidamente l'importanza del principio del minimo privilegio - vale a dire, dare a un utente solo l'accesso possibile possibile al suo lavoro.
Imparerai anche l'interoperabilità tra diversi sistemi operativi. Gli utenti di Windows possono accedere ai file NFS, quindi possono gli utenti Mac e BSD. Non puoi limitarti a un sistema operativo quando hai a che fare con una rete di macchine che hanno tutte le proprie convenzioni e vernacolari. Quindi vai avanti e sperimenta con la tua condivisione NFS. Spero che tu abbia imparato qualcosa.