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