TL;DR

En meget kortere guide er tilgængelig i Ubuntu Server Guide, Hvis du har brug for mere info, kan du læse nedenfor.

introduktion

NFS (Net .ork File System) giver dig mulighed for at ‘dele’ en mappe placeret på en netværkscomputer med andre computere / enheder på det pågældende netværk. Computeren, hvor mappen placeret kaldes serveren og computere eller enheder, der forbinder til denne server kaldes klienter. Kunder normalt ‘montere’ den delte mappe for at gøre det til en del af deres egen mappestruktur.,

NFS er perfekt til at skabe NAS (Networked Attached Storage) på Linux/Unix miljø. Det er en indbygget Linu./Uni. – protokol i modsætning til Samba, der bruger SMB-protokollen udviklet af Microsoft. Apple OS har god støtte til NFS. Windowsindo .s 7 har en vis støtte til NFS.

NFS er måske bedst til flere ‘permanente’ netværksmonterede mapper som / home-mapper eller regelmæssigt adgang til delte ressourcer. Hvis du vil have en netværksdeling, som gæstebrugere nemt kan oprette forbindelse til, er Samba mere velegnet., Dette skyldes, at værktøjer findes lettere på tværs af gamle og proprietære operativsystemer til midlertidigt at montere og løsne fra Samba-aktier.

Ubuntu Før implementering af NFS du bør være bekendt med:

  • Linux fil-og mappe tilladelser
  • Montering og aftagning (afmontering) af filsystemer

Denne HowTo gør Ubuntu server NFSv4 klar.

NFS quickuick start

Hvis du forstår, hvad du laver, skal du bruge denne korte gennemgang til at konfigurere en NFSv4-server på Ubuntu (uden godkendelsessikkerhed). Monter derefter aktien på en Ubuntu-klient., Det er blevet testet på Ubuntu 14.04.

NFS-server

for at kontrollere, at NFS-serveren ikke er installeret, kan du gøre det…

  • $ dpkg -l | grep nfs-kernel-server

Installer de krævede pakker…

  • # apt-get install nfs-kernel-server

For nemmere vedligeholdelse vi vil isolere alle NFS-eksport i en enkelt mappe, hvor de rigtige mapper vil blive monteret med –binde mulighed.

  • lad os sige, at vi vil eksportere vores brugers hjemmekataloger i/home / users., Først skal vi oprette eksport filsystem:

    # mkdir -p /export/users 

    Det er vigtigt, at /eksport-og /eksport/brugere har 777 tilladelser som vi vil være adgang til de NFS-deling fra klienten uden LDAP/NIS-godkendelse. Dette gælder ikke, hvis du bruger godkendelse (se nedenfor)., Monter nu den virkelige brugere bibliotek med:

    # mount --bind /home/users /export/users

    for At frelse os fra genindtastning dette efter hver genstart vi tilføje følgende:

    linje til /etc/fstab

    /home/users /export/users none bind 0 0

  • Den eneste vigtig mulighed i /etc/default/nfs-kernel-server for nu er NEED_SVCGSSD. Det er som standard indstillet til “nej”, hvilket er fint, fordi vi ikke aktiverer NFSv4-sikkerhed denne gang.

for at ID-Navne automatisk skal kortlægges, kræver både klient og server/etc / idmapd.,conf-fil for at have det samme indhold med de korrekte domænenavne. Desuden, denne fil skal have følgende linjer i Kortlægning afsnit:

  • Nobody-User = nobodyNobody-Group = nogroup

    Men, kunden kan have forskellige krav til Ingen-Bruger, og Ingen-Gruppen. For eksempel på RedHat-varianter er det nfsnobody for begge. cat/etc /pass .d og cat/etc / group skal vise “ingen” konti.

på denne måde behøver server og klient ikke brugerne at dele samme UID / GUID.,

for dem, der bruger LDAP-baseret godkendelse, skal du tilføje følgende linjer til din klients idmapd.conf:

Method = nsswitch

Dette vil medføre, at idmapd ved at se på NSS .itch.conf for at bestemme, hvor det skal kigge efter legitimationsoplysninger (og hvis du allerede har LDAP-godkendelse, skal NSS .itch ikke kræve yderligere forklaring).

for At eksportere vores mapper til en lokal netværket 192.168.1.0/24 vi tilføje følgende to linjer til /etc/exports

Portmap Lockdown

valgfri

Tilføj den følgende linie til /etc/hosts.,Afvis:

rpcbind mountd nfsd statd lockd rquotad : ALL

Ved at blokere alle klienter først, kun klienter i/etc / hosts.Tillad nedenfor vil få adgang til serveren.

Tilføj nu følgende linje til/etc / hosts.Tillad:

rpcbind mountd nfsd statd lockd rquotad : list of IP addresses

hvor strengen “liste over IP-adresser” er, skal du lave en liste over IP-adresser, der består af serveren og alle klienter. Disse skal være IP-adresser på grund af en begrænsning i portmap (det kan ikke lide værtsnavne). Bemærk, at hvis du har oprettet NIS, skal du blot tilføje disse til den samme linje., Bemærk: Sørg for, at listen over autoriserede IP-adresser indeholder localhost-adressen (127.0.0.1), da startscripts i nyere versioner af Ubuntu bruger kommandoen rpcinfo til at opdage nfsv3-support, og dette deaktiveres, hvis localhost ikke kan oprette forbindelse.,unt den komplette eksport af træ med én kommando:

Vi kan også montere en eksporteret undertræ med:

  • # mount -t nfs -o proto=tcp,port=2049 <nfs-server-IP>:/users /home/users

for At frelse os fra genindtastning dette efter hver genstart vi tilføje den følgende linje til /etc/fstab:

  • <nfs-server-IP>:/ /mnt nfs auto 0 0

    Hvis du efter montering, er trådt i /proc/mounts vises som <nfs-server-IP>:// (med to skråstreger), så er du muligvis nødt til at angive to skråstreger i /etc/fstab ellers umount kan klage over, at det ikke kan finde ud af bjerget.,

    indstillingen auto monteres ved opstart. Dette fungerer dog ikke, hvis din klient bruger en connectionifi-forbindelse, der administreres på brugerniveau (efter login), fordi netværket ikke vil være tilgængeligt ved opstart. I Ubuntu 12.04 LTS og senere styres wifi-forbindelser som standard på systemniveau, så automatisk montering af NFS-aktier ved opstart skal fungere fint.

Ubuntu Server kommer ikke med nogen init.d / netfs eller andre scripts til at gøre dette for dig.

Portmap Lockdo .n

valgfri

tilføj følgende linje til/etc / hosts.,Afvis:

rpcbind : ALL

Ved at blokere alle klienter først, kun klienter i/etc / hosts.Tillad nedenfor vil få adgang til serveren.

Tilføj nu følgende linje til/etc / hosts.Tillad:

rpcbind : NFS server IP address

hvor “NFS server IP-adresse” er serverens IP-adresse. Det må være numerisk! Sådan fungerer portmap.

NFS-Server

opsætning af forudinstallation

ingen af følgende forudinstallationstrin er strengt nødvendige.

brugertilladelser

NFS brugertilladelser er baseret på user ID (UID)., Uid ‘ er for alle brugere på klienten skal matche dem på serveren for at brugerne skal have adgang. Den typiske måder at gøre dette på er:

  • Manuel password fil synkronisering
  • Brug af LDAP

  • Brug af NIS

Det er også vigtigt at bemærke, at du er nødt til at være forsigtig på systemer, hvor den primære bruger er root-adgang – der kan brugeren ændre UID ‘ er på systemet for at give sig selv adgang til alle filer. Denne side antager, at det administrative team er den eneste gruppe med root-adgang, og at de alle er betroede., Alt andet repræsenterer en mere avanceret konfiguration, og vil ikke blive behandlet her.

Gruppetilladelser

med NFS bestemmes en brugers adgang til filer af hans / hendes medlemskab af grupper på klienten, ikke på serveren. Der er dog en vigtig begrænsning: maksimalt 16 grupper overføres fra klienten til serveren, og hvis en bruger er medlem af mere end 16 grupper på klienten, kan nogle filer eller mapper uventet være utilgængelige.

værtsnavne

valgfrit, hvis du bruger DNS

Tilføj ethvert Klientnavn og IP-adresser til/etc / hosts. Den virkelige (ikke 127.,0.0.1) serverens IP-adresse skal allerede være her. Dette sikrer, at NFS stadig fungerer, selvom DNS går ned. Du kan stole på DNS, hvis du ville, det er op til dig.

NIS

valgfrit – udfør kun trin, hvis du bruger NIS

Bemærk: Dette fungerer kun, hvis du bruger NIS. Ellers kan du ikke bruge netgroups og skal angive individuelle IP ‘ er eller værtsnavne i / etc / e .ports. Læs afsnittet BUGS i man netgroup. rediger / etc / netgroup og tilføj en linje for at klassificere dine klienter. (Dette trin er ikke nødvendigt, men er for nemheds skyld).,

myclients (client1,,) (client2,,)

det er klart, at flere klienter kan tilføjes. myklienter kan være noget du kan lide; dette er et netgroup navn.

Kør denne kommando til at genopbygge YP database:

sudo make -C /var/yp

Portmap Lockdown

valgfri

Tilføj den følgende linie til /etc/hosts.Afvis:

rpcbind mountd nfsd statd lockd rquotad : ALL

Ved at blokere alle klienter først, kun klienter i/etc / hosts.Tillad nedenfor vil få adgang til serveren.

Tilføj nu følgende linje til/etc / hosts.,Tillad:

rpcbind mountd nfsd statd lockd rquotad : list of IP addresses

hvor strengen “liste over IP-adresser” er, skal du lave en liste over IP-adresser, der består af serveren og alle klienter. Disse skal være IP-adresser på grund af en begrænsning i portmap (det kan ikke lide værtsnavne). Bemærk, at hvis du har oprettet NIS, skal du blot tilføje disse til den samme linje.,

Installation og Konfiguration

Install NFS-Server

sudo apt-get install rpcbind nfs-kernel-server

Aktier

for at Redigere /etc/exports og tilføje aktier:

/home @myclients(rw,sync,no_subtree_check)/usr/local @myclients(rw,sync,no_subtree_check)

ovenstående aktier /home /usr/local at alle kunder i myclients netgroup.

ovennævnte aktier /home og/usr / lokal til to klienter med faste ip-adresser. Bedst bruges kun med maskiner, der har statiske ip-adresser.

/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)

ovennævnte aktier /home og/usr / lokal til alle kunder i det private netværk, der falder inden for det udpegede ip-adresseområde.,

r.gør delingen læse / skrive, og synkronisering kræver, at serveren kun svarer på anmodninger, når eventuelle ændringer er blevet skyllet til disk. Dette er den sikreste løsning (async er hurtigere, men farlig. Det anbefales kraftigt, at du læser man e .ports.

Efter opsætning /etc/eksport, export aktier:

sudo exportfs -ra

Du vil få lyst til at gøre denne kommando, når /etc/eksport er ændret.,

Genstart Service

Hvis /etc/default/portmap blev ændret, portmap skal genstartes:

sudo service portmap restart

NFS-kernel-server vil også kræve en genstart:

sudo service nfs-kernel-server restart

Sikkerhed Bemærk

Bortset fra det UID spørgsmål, der er drøftet ovenfor, det skal bemærkes, at en angriber kunne potentielt maskerade som en maskine, der er tilladt at kortlægge de dele, som giver dem mulighed for at oprette vilkårlige Uid ‘ er for at få adgang til dine filer. En potentiel løsning på dette er IPSec, se også afsnittet NFS og IPSec nedenfor., Du kan konfigurere alle dine domænemedlemmer til kun at tale med hinanden via IPSec, hvilket effektivt autentificerer, at din klient er den, den siger, at den er. IPSec fungerer ved at kryptere trafik til serveren med serverens nøgle, og serveren sender alle svar, der er krypteret med klientens nøgle, tilbage. Trafikken dekrypteres med de respektive nøgler. Hvis klienten ikke har de nøgler, som klienten skal have, kan den ikke sende eller modtage data.

et alternativ til IPSec er fysisk separate netværk., Dette kræver en separat netværkskontakt og separate Ethernet-kort og fysisk sikkerhed for det pågældende netværk.

NFS-Client

Installation

sudo apt-get install rpcbind nfs-common

Portmap Lockdown

valgfri

Tilføj den følgende linie til /etc/hosts.Afvis:

rpcbind : ALL

Ved at blokere alle klienter først, kun klienter i/etc / hosts.Tillad nedenfor vil få adgang til serveren.

Tilføj nu følgende linje til/etc / hosts.Tillad:

rpcbind : NFS server IP address

hvor “NFS server IP-adresse” er serverens IP-adresse. Det må være numerisk!, Sådan fungerer portmap.

værtsnavne

valgfrit, hvis du bruger DNS

Tilføj servernavnet til/etc / hosts. Dette sikrer, at NFS-monteringerne stadig fungerer, selvom DNS går ned. Du kan stole på DNS, hvis du ville, det er op til dig.

monteringer

Kontroller, om alt fungerer

Du skal prøve at montere det nu., Den grundlæggende skabelon, du vil bruge, er:

sudo mount ServerIP:/folder/already/setup/to/be/shared /home/username/folder/in/your/local/computer

for eksempel:

sudo mount 192.168.1.42:/home/music /home/poningru/music

Montere ved start

NFS-monteres enten kan være monteret automatisk, når de åbnes ved hjælp af autofs, eller det kan være setup med statisk monteres ved hjælp af poster i /etc/fstab. Begge er forklaret nedenfor.

Automounter

Installer autofs:

sudo apt-get install autofs

følgende konfigurationseksempel opsætter hjemmekataloger til automatisk at slukke for en NFS-server, når du logger ind. Andre mapper kan være setup til automount ved adgang samt.,

tilføj følgende linje til slutningen af/etc / auto.master:

 /home /etc/auto.home

Opret nu/etc / auto.hjem og indsæt følgende:

 * solarisbox1.company.com.au,solarisbox2.company.com.au:/export/home/&

Genstart autofs til at sætte konfiguration:

sudo service autofs start

Statisk Mounts

Før opsætning af den monteres, sørg for, at de mapper, der vil fungere som mountpoints er allerede oprettet.

i/etc/fstab, tilføj linjer for aktier som:

servername:dir /mntpoint nfs rw,hard,intr 0 0

r.monterer den læse / skrive., Selvfølgelig, hvis serveren deler det skrivebeskyttet, klienten vil ikke være i stand til at montere det som noget mere end det. Den hårde monterer aktien sådan, at hvis serveren bliver utilgængelig, vil programmet vente, indtil det er tilgængeligt. Alternativet er blødt. intr giver dig mulighed for at afbryde/dræbe processen. Ellers vil det ignorere dig. Dokumentation for disse kan findes i Mount muligheder for NFS sektion af man mount.

filsystemerne kan nu monteres med mount / mountpoint eller mount-a for at montere alt, hvad der skal monteres ved boot.,

noter

minimalistisk NFS-opsætning

ovenstående trin er meget omfattende. Det mindste antal trin, der kræves for at konfigurere NFS er vist her:

http://www.ubuntuforums.org/showthread.php?t=249889

Bruger-Grupper med NFS

Når du bruger grupper på NFS (NFSv2 eller NFSv3), huske på, at dette måske ikke fungere, hvis en bruger er medlem af mere end 16 grupper. Dette skyldes begrænsninger i NFS-protokollen., Du kan finde mere information om Launchpad (“Tilladelse nægtet, når brugeren tilhører gruppe, der ejer gruppe skrivbare eller setgid mapper monteret via nfs”) og i denne artikel: “Hvad er handlen på 16 gruppe-id begrænsning i NFS?”

IPSec-noter

Hvis du bruger IPSec, får standardafbrydelsesordren i Bree .y/Dapper klienten til at hænge, da den lukkes, fordi IPSec går ned, før NFS gør det., For at ordne det, skal du gøre:

sudo update-rc.d -f setkey removesudo update-rc.d setkey start 37 0 6 S .

En fejl er blevet gemt her: https://launchpad.net/distros/ubuntu/+source/ipsec-tools/+bug/37536

Fejlfinding

NFS-Montering aktier i krypteret hjem vil ikke arbejde på boot

Montering af en NFS-deling inde i en krypteret hjemmemappe, vil kun fungere, efter at du er logget ind og dit hjem er dekrypteret. Dette betyder, at brug af / etc / fstab til at montere NFS – aktier på boot ikke fungerer-fordi dit hjem ikke er dekrypteret på monteringstidspunktet., Der er en enkel måde at omgå dette ved hjælp af Symbolske links:

  • Skabe et alternativ bibliotek til at montere NFS-aktier i:
$ sudo mkdir /nfs$ sudo mkdir /nfs/music
  • for at Redigere /etc/fstab til at montere NFS-delingen i den pågældende mappe i stedet:

nfsServer:musik /nfs/musik nfs auto 0 0

  • Oprette et symbolsk link til inde i dit hjem, der peger på den faktiske mount placering (i vores tilfælde slet ‘Musik’ – mappen allerede eksisterende der først):
$ rmdir /home/user/Music$ ln -s /nfs/music/ /home/user/Music