TL; DR
Un ghid mult mai scurt este disponibil în Ghidul serverului Ubuntu dacă aveți nevoie de mai multe informații, citiți mai jos. NFS (sistem de fișiere de rețea) vă permite să „partajați” un director situat pe un computer în rețea cu alte computere/dispozitive din acea rețea. Computerul în care se află directorul se numește server și computerele sau dispozitivele care se conectează la acel server se numesc clienți. De obicei, clienții „montează” directorul partajat pentru a-l face parte din propria structură de directoare., NFS este perfect pentru crearea NAS (Networkworked Attached Storage) în mediul Linux/Unix. Este un protocol nativ Linux/Unix, spre deosebire de Samba, care utilizează protocolul SMB dezvoltat de Microsoft. Sistemul de operare Apple are un suport bun pentru NFS. Windows 7 are un suport pentru NFS.
NFS este probabil cel mai bun pentru mai multe directoare montate în rețea „permanente”, cum ar fi directoarele / home sau resursele partajate accesate în mod regulat. Dacă doriți o partajare de rețea la care utilizatorii oaspeți se pot conecta cu ușurință, Samba este mai potrivită., Acest lucru se datorează faptului că instrumentele există mai ușor în sistemele de operare vechi și proprietare pentru a se monta și detașa temporar de acțiunile Samba.
Ubuntu Înainte de implementarea NFS ar trebui să fie familiarizat cu:
- fișiere Linux și permisiunile directorului
- Montarea si detasarea (demontare) sisteme de fișiere
Acest Ghid face Ubuntu server NFSv4 gata.
NFS quick start
dacă înțelegeți ce faceți, utilizați această scurtă trecere pentru a configura un server Nfsv4 pe Ubuntu (fără securitate de autentificare). Apoi montați cota pe un client Ubuntu., Acesta a fost testat pe Ubuntu 14.04.
NFS server
pentru a verifica serverul NFS nu este instalat, puteți face…
-
$ dpkg -l | grep nfs-kernel-server
Instala pachetele necesare…
-
# apt-get install nfs-kernel-server
Pentru o întreținere mai ușoară ne va izola toate NFS exporturilor într-un singur director, în cazul în care real directoare vor fi montate cu … leaga opțiune.
-
să spunem că vrem să exportăm directoarele de acasă ale utilizatorilor noștri în /home/users., În primul rând vom crea exportul de fișiere:
# mkdir -p /export/users
este important ca /export și /export/utilizatorii au permisiuni 777 ca vom fi accesarea NFS cota de client fără LDAP/NIS autentificare. Acest lucru nu se va aplica dacă se utilizează autentificarea (vezi mai jos)., Acum monta utilizatori reali director cu:
# mount --bind /home/users /export/users
Pentru a ne salva de la dactilografiate această după fiecare repornire vom adăuga următoarele
linie în /etc/fstab
/home/users /export/users none bind 0 0
-
singura opțiune importantă în /etc/default/nfs-kernel-server pentru acum este NEED_SVCGSSD. Este setat la „nu” în mod implicit, ceea ce este bine, deoarece nu activăm securitatea NFSv4 de data aceasta.
pentru ca numele ID-urilor să fie mapate automat, atât clientul cât și serverul necesită /etc/idmapd.,conf fișier să aibă același conținut cu numele de domeniu corecte. În plus, acest dosar ar trebui să aibă următoarele linii în Cartografiere secțiune:
-
Nobody-User = nobodyNobody-Group = nogroup
cu toate Acestea, clientul poate avea cerințe diferite pentru Nimeni nu-Utilizator și Nimeni nu-Grup. De exemplu, pe variantele RedHat, este nfsnomen pentru ambele. cat / etc / passwd și cat / etc / group ar trebui să arate conturile „nimeni”. în acest fel, serverul și clientul nu au nevoie ca utilizatorii să partajeze același UID/GUID., pentru cei care folosesc autentificarea bazată pe LDAP, adăugați următoarele linii la idmapd-ul clientului.conf:
Method = nsswitch
Acest lucru va provoca idmapd să știi să te uiți la nsswitch.conf pentru a determina unde ar trebui să caute informații de Acreditare (și dacă aveți autentificare LDAP deja de lucru, nsswitch nu ar trebui să solicite explicații suplimentare). pentru a exporta directoarele noastre într-o rețea locală 192.168.1.0/24 adăugăm următoarele două linii La /etc/exports
Portmap Lockdown
opțional
adăugați următoarea linie la /etc/hosts.,deny:
rpcbind mountd nfsd statd lockd rquotad : ALL
prin blocarea tuturor clienților în primul rând, numai clienții din /etc/hosts.permiteți mai jos va fi permis să acceseze serverul.
Acum adăugați următoarea linie la/etc / hosts.permite:
rpcbind mountd nfsd statd lockd rquotad : list of IP addresses
unde este șirul” lista adreselor IP”, trebuie să faceți o listă de adrese IP care constă din server și toți clienții. Acestea trebuie să fie adrese IP din cauza unei limitări în portmap (nu-i plac numele de gazdă). Rețineți că, dacă ați configurat NIS, adăugați-le la aceeași linie.,
Notă: Asigurați-vă că lista de autorizat adrese IP include adresa localhost (127.0.0.1) ca script-urile de pornire în ultimele versiuni de Ubuntu folosesc rpcinfo comandă pentru a descoperi NFSv3 de sprijin, iar acest lucru va fi dezactivat în cazul în care localhost nu este în măsură să se conecteze.,unt complet de export copac cu o singură comandă:
de asemenea, putem monta o exportate subarbore cu:
-
# mount -t nfs -o proto=tcp,port=2049 <nfs-server-IP>:/users /home/users
Pentru a ne salva de la dactilografiate această după fiecare repornire adăugăm următoarea linie în /etc/fstab:
-
<nfs-server-IP>:/ /mnt nfs auto 0 0
Dacă după montare, la intrarea în /proc/mounts apare ca <nfs-server-IP>:// (cu două slash-uri), atunci s-ar putea nevoie pentru a specifica două linii oblice în /etc/fstab, sau altceva umount s-ar putea plânge că nu poate să găsească muntele.,
opțiunea auto se montează la pornire. Totuși, acest lucru nu va funcționa dacă clientul dvs. utilizează o conexiune wifi gestionată la nivel de utilizator (după conectare), deoarece rețeaua nu va fi disponibilă la momentul încărcării. În Ubuntu 12.04 LTS și versiunile ulterioare, conexiunile wifi sunt gestionate implicit la nivel de sistem, astfel încât montarea automată a acțiunilor NFS la momentul încărcării ar trebui să funcționeze bine.
Ubuntu Server nu vine cu nici o init.d / netfs sau alte scripturi pentru a face acest lucru pentru tine.
Portmap Lockdown
opțional
adăugați următoarea linie la/etc / hosts.,deny:
rpcbind : ALL
blocând mai întâi toți clienții, numai clienții din /etc/hosts.permiteți mai jos va fi permis să acceseze serverul.
Acum adăugați următoarea linie la/etc / hosts.permite:
rpcbind : NFS server IP address
unde” adresa IP a serverului NFS ” este adresa IP a serverului. Trebuie să fie numeric! Așa funcționează portmap-ul.
NFS Server
configurare preinstalare
niciunul dintre următorii pași de preinstalare nu este strict necesar.
permisiuni de utilizator
permisiunile de utilizator NFS se bazează pe ID-ul de utilizator (UID)., Uid-urile oricărui utilizator de pe client trebuie să se potrivească cu cele de pe server pentru ca utilizatorii să aibă acces. Tipic moduri de a face acest lucru sunt:
- Manual parola fișier de sincronizare
-
Utilizarea LDAP
-
Utilizarea NIS
este de asemenea important să rețineți că trebuie să fii atent pe sisteme în cazul în care utilizatorul principal are acces root – care utilizatorul poate schimba UID-ul e pe sistem pentru a se permite accesul la fișiere. Această pagină presupune că echipa administrativă este singurul grup cu acces root și că toate sunt de încredere., Orice altceva reprezintă o configurație mai avansată, și nu vor fi abordate aici.
permisiuni de grup
cu NFS, accesul unui utilizator la fișiere este determinat de apartenența sa la grupuri pe client, nu pe server. Cu toate acestea, există o limitare importantă: un maxim de 16 grupuri sunt transmise de la client la server și, dacă un utilizator este membru al mai mult de 16 grupuri pe client, unele fișiere sau directoare ar putea fi inaccesibile în mod neașteptat.
Host Names
opțional dacă utilizați DNS
adăugați orice nume de client și adrese IP la/etc / hosts. Real (nu 127.,0.0.1) adresa IP a serverului ar trebui să fie deja aici. Acest lucru asigură că NFS va funcționa în continuare, chiar dacă DNS se duce în jos. Te-ai putea baza pe DNS dacă vrei, depinde de tine.
NIS
opțional-efectuați pași numai dacă utilizați NIS
Notă: Aceasta funcționează numai dacă utilizați NIS. În caz contrar, nu puteți utiliza netgroups și ar trebui să specificați IP-uri individuale sau nume de gazdă în /etc/exports. Citiți secțiunea bug-uri în man netgroup.
Editați / etc / netgroup și adăugați o linie pentru a vă clasifica clienții. (Acest pas nu este necesar, dar este pentru comoditate).,
myclients (client1,,) (client2,,)
evident, pot fi adăugați mai mulți clienți. myclients poate fi orice vă place; acesta este un nume netgroup.
rulați această comandă pentru a reconstrui baza de date YP:
sudo make -C /var/yp
Portmap Lockdown
opțional
adăugați următoarea linie la/etc / hosts.deny:
rpcbind mountd nfsd statd lockd rquotad : ALL
prin blocarea tuturor clienților în primul rând, numai clienții din /etc/hosts.permiteți mai jos va fi permis să acceseze serverul.
Acum adăugați următoarea linie la/etc / hosts.,permite:
rpcbind mountd nfsd statd lockd rquotad : list of IP addresses
unde este șirul” lista adreselor IP”, trebuie să faceți o listă de adrese IP care constă din server și toți clienții. Acestea trebuie să fie adrese IP din cauza unei limitări în portmap (nu-i plac numele de gazdă). Rețineți că, dacă ați configurat NIS, adăugați-le la aceeași linie.,
Instalare si Configurare
Instalare NFS Server
sudo apt-get install rpcbind nfs-kernel-server
Acțiuni
Editați /etc/exports și se adaugă acțiuni:
/home @myclients(rw,sync,no_subtree_check)/usr/local @myclients(rw,sync,no_subtree_check)
mai sus de acțiuni /home si /usr/local pentru toti clientii din myclients netgroup.
acțiunile de mai sus /acasă și/usr / local la doi clienți cu adrese ip fixe. Cel mai bine utilizat numai cu mașini care au adrese IP statice.
/home 192.168.0.0/255.255.255.0(rw,sync,no_subtree_check)/usr/local 192.168.0.0/255.255.255.0(rw,sync,no_subtree_check)
acțiunile de mai sus /home și/usr / local pentru toți clienții din rețeaua privată care se încadrează în intervalul de adrese ip desemnate.,
rw face ca acțiunea să fie citită / scrisă, iar sync necesită ca serverul să răspundă la solicitări numai după ce modificările au fost șterse pe disc. Aceasta este cea mai sigură opțiune (asincron este mai rapid, dar periculos. Este recomandat să citiți exporturile omului.
după configurarea/etc / exports, exportați acțiunile:
sudo exportfs -ra
veți dori să faceți această comandă ori de câte ori/etc / exports este modificat.,
Restart Servicii
Daca /etc/default/portmap a fost schimbat, portmap va trebui să fie repornit:
sudo service portmap restart
NFS kernel-server, de asemenea, va necesita o repornire:
sudo service nfs-kernel-server restart
Security Notă
în Afară de UID problemele discutate mai sus, ar trebui remarcat faptul că un atacator ar putea să treacă drept o mașină care este permis să hartă cota, care le permite să creeze arbitrare Lichide pentru a accesa fișierele. O soluție potențială în acest sens este IPSec, a se vedea, de asemenea, secțiunea NFS și IPSec de mai jos., Puteți configura toți membrii domeniului dvs. să vorbească numai între ei prin IPSec, ceea ce va autentifica în mod eficient că clientul dvs. este cine spune că este. IPSec funcționează prin criptarea traficului către server cu cheia serverului, iar serverul trimite înapoi toate răspunsurile criptate cu cheia clientului. Traficul este decriptat cu tastele respective. Dacă clientul nu are cheile pe care clientul ar trebui să le aibă, nu poate trimite sau primi date. o alternativă la IPSec este rețelele separate fizic., Acest lucru necesită un comutator de rețea separat și carduri ethernet separate și securitatea fizică a rețelei respective.
NFS Client
Instalare
sudo apt-get install rpcbind nfs-common
Portmap Închidere
opțional
Adăugați următoarea linie în /etc/hosts.deny:
rpcbind : ALL
blocând mai întâi toți clienții, numai clienții din /etc/hosts.permiteți mai jos va fi permis să acceseze serverul.
Acum adăugați următoarea linie la/etc / hosts.permite:
rpcbind : NFS server IP address
unde” adresa IP a serverului NFS ” este adresa IP a serverului. Trebuie să fie numeric!, Așa funcționează portmap-ul.
nume de gazde
opțional dacă utilizați DNS
adăugați numele serverului la/etc / hosts. Acest lucru asigură NFS mounts va funcționa în continuare, chiar dacă DNS se duce în jos. Te-ai putea baza pe DNS dacă vrei, depinde de tine.
monturi
verificați dacă totul funcționează
ar trebui să încercați să îl montați acum., Modelul de bază va folosi este:
sudo mount ServerIP:/folder/already/setup/to/be/shared /home/username/folder/in/your/local/computer
de exemplu:
sudo mount 192.168.1.42:/home/music /home/poningru/music
Mount la pornire
NFS poate fi montat automat atunci când este accesat folosind autofs sau poate fi instalat cu static monteaza folosind intrări în /etc/fstab. Ambele sunt explicate mai jos.
Automounter
Instalare autofs:
sudo apt-get install autofs
următorul exemplu de configurare stabilește acasă directoare pentru automount de pe un server NFS la logare. Alte directoare pot fi de configurare pentru a automount la acces, de asemenea.,
adăugați următoarea linie la sfârșitul / etc / auto.master:
/home /etc/auto.home
acum creați/etc / auto.acasă și introduceți următoarele:
* solarisbox1.company.com.au,solarisbox2.company.com.au:/export/home/&
Restart autofs permite să configurare:
sudo service autofs start
Static Monteaza
Înainte de înființarea monteaza, asigurați-vă că directoarele care va acționa ca mountpoints sunt deja create.
în/etc / fstab, adăugați linii pentru acțiuni, cum ar fi:
servername:dir /mntpoint nfs rw,hard,intr 0 0
rw montează citit/scrie., Evident, dacă serverul îl Partajează doar în citire, clientul nu va putea să-l monteze ca ceva mai mult decât atât. Hard-ul montează cota astfel încât, dacă serverul devine indisponibil, programul va aștepta până când este disponibil. Alternativa este moale. intr vă permite să întrerupeți / ucideți procesul. În caz contrar, te va ignora. Documentația pentru acestea poate fi găsită în secțiunea Mount options for NFS din man mount.
sistemele de fișiere pot fi acum montate cu mount / mountpoint, sau mount-a pentru a monta tot ceea ce ar trebui să fie montat la boot.,
Note
NFS minimalist înființat
pașii de mai sus sunt foarte cuprinzătoare. Numărul minim de pași necesari pentru a configura NFS sunt listate aici:
http://www.ubuntuforums.org/showthread.php?t=249889
Folosind Grupuri cu NFS
atunci Când se utilizează grupuri de pe NFS (NFSv2 sau NFSv3), păstrați în minte că acest lucru ar putea să nu funcționeze dacă un utilizator este un membru al mai mult de 16 grupuri. Acest lucru se datorează limitărilor din Protocolul NFS., Puteți găsi mai multe informații despre Launchpad („Permisiune refuzată atunci când utilizatorul aparține grupului care deține directoarele Group writable sau setgid montate prin nfs”) și în acest articol: „care este afacerea cu limitarea ID-ului grupului 16 în NFS?”
Note IPSec
Dacă utilizați IPSec, ordinea de închidere implicită în Breezy / Dapper determină clientul să stea în timp ce este închis, deoarece IPSec coboară înainte de NFS., Pentru a remedia problema, face:
sudo update-rc.d -f setkey removesudo update-rc.d setkey start 37 0 6 S .
Un bug a fost depus aici: https://launchpad.net/distros/ubuntu/+source/ipsec-tools/+bug/37536
Depanare
de Montare NFS acțiuni în criptate de acasă nu se va lucra la boot
Montarea unei NFS accesul în interiorul unui criptate directorul home va funcționa doar după ce ați conectat cu succes și casa ta este decriptat. Aceasta înseamnă că utilizarea/etc / fstab pentru a monta acțiuni NFS la pornire nu va funcționa – deoarece casa dvs. nu a fost decriptată în momentul montării., Există un mod simplu în jurul valorii de acest lucru, folosind link-uri Simbolice:
- de a Crea o alternativă director pentru a monta NFS acțiuni în:
$ sudo mkdir /nfs$ sudo mkdir /nfs/music
-
Editați /etc/fstab pentru a monta NFS împărtășească în care directorul:
nfsServer:muzica /nfs/muzica nfs auto 0 0
- de a Crea o legătură simbolică în interiorul casa ta, arătând spre real muntele locație (în cazul nostru șterge „Muzica” directorul cu firme deja existente acolo primul):
$ rmdir /home/user/Music$ ln -s /nfs/music/ /home/user/Music
-