TL;DR
En mye kortere guide er tilgjengelig i Ubuntu Server Guide Hvis du trenger mer informasjon, kan du lese nedenfor.
Innledning
NFS (Network File System) gir deg mulighet til å «dele» en katalog som ligger på en nettverkstilkoblet datamaskin med andre datamaskiner/enheter på nettverket. Datamaskinen der katalogen ligger kalles server og datamaskiner eller enheter å koble til serveren kalles klienter. Klienter vanligvis er «montere» den delte katalogen for å gjøre det til en del av sin egen katalog struktur.,
NFS er perfekt for å lage NAS (Nettverkstilkoblet Attached Storage) i Linux/Unix-miljø. Det er en Linux/Unix-protokollen i motsetning til Samba som bruker SMB-protokollen er utviklet av Microsoft. Apple OS har god støtte for NFS. Windows 7 har noen støtte for NFS.
NFS er kanskje best for mer «permanent» nettverk montert kataloger, for eksempel /home-kataloger eller regelmessig tilgang til delte ressurser. Hvis du ønsker en nettverksressurs som gjest kan brukere enkelt koble til, Samba er mer egnet., Dette er fordi verktøyene finnes mer lett på tvers av gamle og proprietære operativsystemer for å midlertidig montere og koble fra Samba-aksjer.
Ubuntu Før distribusjon NFS du bør være kjent med:
- Linux fil og mappe tillatelser
- Montering og løsne (fra) filsystemer
Denne HowTo gjør Ubuntu server NFSv4 klar.
NFS quick start
Gir du forstår hva du gjør, kan du bruke denne kort spasertur gjennom å sette opp en NFSv4 server på Ubuntu (med ingen godkjenning sikkerhet). Deretter montere dele på en Ubuntu-klient., Det har blitt testet på Ubuntu-14.04.
NFS-server
for Å sjekke NFS server er installert, kan du gjøre…
-
$ dpkg -l | grep nfs-kernel-server
Installere de nødvendige pakkene…
-
# apt-get install nfs-kernel-server
For enklere vedlikehold vil vi isolere alle NFS eksport i én katalog, hvor den virkelige mapper vil bli montert med –bind alternativ.
-
La oss si at vi ønsker å eksportere våre brukere hjem kataloger i /home/brukere., Først skal vi lage eksport filsystem:
# mkdir -p /export/users
Det er viktig at /eksport og /eksport/brukere har 777 tillatelser som vi vil være tilgang til NFS dele fra klienten uten LDAP/NIS-godkjenning. Dette gjelder ikke hvis du bruker godkjenning (se nedenfor)., Nå monterer den virkelige brukere katalog med:
# mount --bind /home/users /export/users
for Å redde oss fra å skrive dette etter hver omstart vi legge til følgende
linje i /etc/fstab
/home/users /export/users none bind 0 0
-
bare viktig alternativ i /etc/default/nfs-kernel-server for nå er NEED_SVCGSSD. Det er satt til «ingen» som standard, noe som er fint, fordi vi er ikke aktivere NFSv4 sikkerhet denne gangen.
for at ID-navn for å automatisk bli kartlagt, både klient og server krever at /etc/idmapd.,conf-fil for å ha samme innhold med riktig domenenavn. Videre bør denne filen ha følgende linjer i Kartlegging avsnittet:
-
Nobody-User = nobodyNobody-Group = nogroup
Imidlertid kan klienten har ulike krav for Ingen-Bruker og Ingen-Gruppen. For eksempel på RedHat varianter, det er nfsnobody for begge. cat /etc/passwd og cat /etc/group bør vise «ingen» kontoer.
Denne måten, server og klient trenger ikke brukerne å dele samme UID/GUID.,
For de som bruker LDAP-basert autentisering, legge til følgende linjer til kundens idmapd.conf:
Method = nsswitch
Dette vil føre til idmapd å vite for å se på nsswitch.conf å finne ut hvor den skal lete etter bevis informasjon (og hvis du har LDAP-autentisering allerede arbeider, nsswitch bør ikke krever ytterligere forklaring).
for Å eksportere våre kataloger til et lokalt nettverk 192.168.1.0/24 vi legge til følgende to linjer i /etc/exports
Portmap Lockdown
valgfritt
Legg til følgende linje i /etc/hosts.,nekter:
rpcbind mountd nfsd statd lockd rquotad : ALL
Ved å blokkere alle klienter første, bare klienter i /etc/hosts.la nedenfor vil få lov til å få tilgang til serveren.
Nå kan du legge til følgende linje i /etc/hosts.tillat:
rpcbind mountd nfsd statd lockd rquotad : list of IP addresses
Hvor «liste over IP-adresser» streng er, du trenger for å lage en liste over IP-adresser som består av navnet på serveren og alle kunder. Disse må være IP-adresser på grunn av en begrensning i portmap (det liker ikke vertsnavn). Vær oppmerksom på at hvis du har NIS satt opp, kan du legge disse til samme linje.,
Merk: Kontroller at listen over godkjente IP-adresser som inneholder adressen localhost (127.0.0.1) som oppstartsskript i de nyeste versjonene av Ubuntu bruk rpcinfo-kommandoen til å oppdage NFSv3 støtte, og dette vil bli deaktivert hvis localhost er i stand til å koble til.,unt komplett eksport av tre med én kommando:
Vi kan også montere en eksportert undertreet med:
-
# mount -t nfs -o proto=tcp,port=2049 <nfs-server-IP>:/users /home/users
for Å redde oss fra å skrive dette etter hver omstart vi legge til følgende linje i /etc/fstab:
-
<nfs-server-IP>:/ /mnt nfs auto 0 0
Hvis du etter montering, oppføring i /proc/mounts vises som <nfs-server-IP>:// (med to skråstreker), så du må kanskje angi to skråstreker i /etc/fstab, ellers umount kan klage på at det ikke kan finne fjellet.,
auto-alternativet monteres på oppstart. Men dette vil ikke fungere hvis kunden bruker en wi-fi-tilkobling klarte på brukernivå (etter innlogging), fordi nettverket ikke vil være tilgjengelig ved oppstart. I Ubuntu 12.04 LTS og senere, wifi-tilkoblinger er klart på systemnivå som standard, slik at auto-montering av NFS-monteringer ved oppstart skal fungere fint.
Ubuntu Server kommer ikke med noen init.d/netfs eller andre skript til å gjøre dette for deg.
Portmap Lockdown
valgfritt
Legg til følgende linje i /etc/hosts.,nekter:
rpcbind : ALL
Ved å blokkere alle klienter første, bare klienter i /etc/hosts.la nedenfor vil få lov til å få tilgang til serveren.
Nå kan du legge til følgende linje i /etc/hosts.tillat:
rpcbind : NFS server IP address
Hvor «NFS server IP-adresse» er IP-adressen til serveren. Denne må være i numerisk! Det er slik portmap fungerer.
NFS-Server
Pre-Installasjonen
Ingen av disse pre-installasjon trinn er strengt nødvendig.
brukertillatelser
NFS bruker tillatelser er basert på bruker-ID (UID)., Gjelder væskene av alle brukere på klienten må matche dem på serveren for at brukere skal ha tilgang. Den typiske måter å gjøre dette på er:
- Manuell passordbeskyttet fil synkronisering
-
Bruk av LDAP –
– >
-
Bruk av NIS –
– >
Det er også viktig å merke seg at du må være forsiktig på systemer der den viktigste brukeren har root – tilgang, noe som brukeren kan endre VÆSKEN er på systemet for å tillate seg selv å få tilgang til alle filer. Denne siden forutsetter at administrative team er den eneste gruppen med root-tilgang, og at de er pålitelige., Noe annet representerer en mer avansert konfigurering, og vil ikke bli omtalt her.
Gruppe Tillatelser
Med NFS, en brukers tilgang til filer som er bestemt av hans/hennes medlemskap i grupper på klienten, ikke på serveren. Det er imidlertid en viktig begrensning: et maksimalt 16 grupper sendes fra klienten til serveren, og hvis en bruker er medlem av mer enn 16 grupper på klienten, noen filer eller kataloger som kan være uventet utilgjengelige.
Host-Navn
ekstra hvis du bruker DNS
Legg til enhver klient navn og IP-adresser i /etc/hosts. Den virkelige (ikke 127.,0.0.1) IP-adressen til serveren skal allerede være her. Dette sikrer at NFS vil fortsatt fungere selv om DNS går ned. Du kan stole på DNS, hvis du ønsket, det er opp til deg.
NIS
valgfritt – utfør fremgangsmåten bare hvis du bruker NIS
Merk: Dette fungerer bare hvis du bruker NIS. Ellers, du kan ikke bruke netgroups, og bør spesifisere individuelle IP-adresser eller vertsnavn i /etc/exports. Les BUGS delen i mennesket netgroup.
Rediger /etc/netgroup og legg til en linje for å klassifisere kundene dine. (Dette trinnet er ikke nødvendig, men er for enkelhets skyld).,
myclients (client1,,) (client2,,)
Selvfølgelig, flere klienter kan bli lagt til. myclients kan være noe du liker, og dette er en netgroup navn.
Kjør denne kommandoen for å gjenoppbygge YP-database:
sudo make -C /var/yp
Portmap Lockdown
valgfritt
Legg til følgende linje i /etc/hosts.nekter:
rpcbind mountd nfsd statd lockd rquotad : ALL
Ved å blokkere alle klienter første, bare klienter i /etc/hosts.la nedenfor vil få lov til å få tilgang til serveren.
Nå kan du legge til følgende linje i /etc/hosts.,tillat:
rpcbind mountd nfsd statd lockd rquotad : list of IP addresses
Hvor «liste over IP-adresser» streng er, du trenger for å lage en liste over IP-adresser som består av navnet på serveren og alle kunder. Disse må være IP-adresser på grunn av en begrensning i portmap (det liker ikke vertsnavn). Vær oppmerksom på at hvis du har NIS satt opp, kan du legge disse til samme linje.,
Installasjon og Konfigurasjon
Installer NFS-Server
sudo apt-get install rpcbind nfs-kernel-server
Aksjer
Rediger /etc/eksport og legge til aksjene:
/home @myclients(rw,sync,no_subtree_check)/usr/local @myclients(rw,sync,no_subtree_check)
De ovennevnte aksjer /home og /usr/local til alle kunder i myclients netgroup.
De ovennevnte aksjer /home og /usr/local to klienter med faste ip-adresser. Best brukt bare med maskiner som har statisk 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)
De ovennevnte aksjer /home og /usr/local til alle klientene i det private nettverket som faller innenfor det angitte ip-adresse rekkevidde.,
rw gjør dele lese/skrive, og sync krever at serveren skal bare svare på forespørsler om når eventuelle endringer som har blitt skylt på disk. Dette er det sikreste alternativet (asynkron er raskere, men farlig. Det anbefales sterkt at du leser mann eksport.
Etter at du har stilt opp /etc/eksport, eksport aksjene:
sudo exportfs -ra
vil Du ønsker å gjøre denne kommandoen når /etc/exports er endret.,
Start på nytt Tjenester
Hvis i /etc/default/portmap ble endret, portmap må startes på nytt:
sudo service portmap restart
NFS-kernel-server vil også kreve en omstart:
sudo service nfs-kernel-server restart
Sikkerhet Obs!
Bortsett fra VÆSKEN problemer som er diskutert ovenfor, det bør bemerkes at en angriper kan potensielt masquerade som en maskin som er tillatt å map share, som tillater dem å lage vilkårlig gjelder væskene til å få tilgang til filene dine. En mulig løsning på dette er IPSec, se også NFS-og IPSec-delen nedenfor., Du kan sette opp alle dine domenenavn medlemmer til å snakke bare til hverandre over IPSec, som vil effektivt kunne verifisere at din klient er som den sier den er.
IPSec fungerer ved å kryptere trafikk til serveren med serveren er viktige, og tjeneren sender tilbake alle svar kryptert med klientens-tasten. Trafikken er dekrypteres med den respektive tastene. Hvis klienten ikke har nøklene at klienten er ment å ha, det kan du ikke sende eller motta data.
Et alternativ til IPSec er fysisk separate nettverk., Dette krever et eget nettverk switch og separat ethernet-kort, og den fysiske sikkerheten på nettverket.
NFS Klient
Installasjon
sudo apt-get install rpcbind nfs-common
Portmap Lockdown
valgfritt
Legg til følgende linje i /etc/hosts.nekter:
rpcbind : ALL
Ved å blokkere alle klienter første, bare klienter i /etc/hosts.la nedenfor vil få lov til å få tilgang til serveren.
Nå kan du legge til følgende linje i /etc/hosts.tillat:
rpcbind : NFS server IP address
Hvor «NFS server IP-adresse» er IP-adressen til serveren. Denne må være i numerisk!, Det er slik portmap fungerer.
Host-Navn
ekstra hvis du bruker DNS
Legg til server-navnet i /etc/hosts. Dette sikrer NFS-monteringer, vil fortsatt fungere selv om DNS går ned. Du kan stole på DNS, hvis du ønsket, det er opp til deg.
Mounts
Sjekk for å se om alt fungerer
Du bør prøve og montere det nå., Den grunnleggende mal du vil bruke er:
sudo mount ServerIP:/folder/already/setup/to/be/shared /home/username/folder/in/your/local/computer
så, for eksempel slik:
sudo mount 192.168.1.42:/home/music /home/poningru/music
Mount ved oppstart
NFS-monteringer kan enten være montert automatisk når den åpnes ved hjelp av autofs eller kan bli satt opp med statisk monteres ved hjelp av oppføringer i /etc/fstab. Begge er forklart nedenfor.
Automounter
Installer autofs:
sudo apt-get install autofs
følgende konfigurasjon eksempel setter opp hjemmekataloger til automount av en NFS-server ved å logge deg inn. Andre kataloger kan være setup for å automount ved tilgang så vel.,
Legg til følgende linje til slutten av /etc/auto.master:
/home /etc/auto.home
Nå opprette /etc/auto.hjem og sett inn følgende:
* solarisbox1.company.com.au,solarisbox2.company.com.au:/export/home/&
Start på nytt autofs for å aktivere konfigurasjon:
sudo service autofs start
Statisk Mounts
Før å sette opp mounts, sørg for at den kataloger som vil fungere som mountpoints er allerede opprettet.
I /etc/fstab, legg til linjer for aksjer som:
servername:dir /mntpoint nfs rw,hard,intr 0 0
rw-mounts det lese/skrive., Selvfølgelig, hvis serveren er å dele det bare lese, klienten vil ikke være i stand til å montere det som noe mer enn det. Den harde mounts dele slik at hvis serveren blir utilgjengelig, programmet vil vente til det er tilgjengelig. Alternativet er myk. intr gir deg mulighet til å avbryte/drepe prosessen. Ellers, det vil ignorere deg. Dokumentasjonen for disse kan bli funnet i Mount valg for nfs delen av mennesket fjellet.
filsystemer kan nå monteres med mount /mountpoint, eller mount-en til å montere alt som skal være montert på en støvel.,
Notater
Minimalistisk NFS Satt Opp
trinnene ovenfor er svært omfattende. Minimum antall trinn som kreves for å sette opp NFS er listet opp her:
http://www.ubuntuforums.org/showthread.php?t=249889
ved Hjelp av Grupper med NFS-monteringer
Ved hjelp av grupper på NFS-monteringer (NFSv2 eller NFSv3), husk at dette fungerer kanskje ikke hvis en bruker er medlem av mer enn 16 grupper. Dette er på grunn av begrensninger i NFS-protokollen., Du kan finne mer informasjon på Launchpad («Tillatelse nektes når brukeren tilhører gruppen som eier konsernet skrivbare eller setgid kataloger montert via nfs») og i denne artikkelen: «Hva er det du tilbyr på 16 gruppe-id-en begrensning i NFS?»
IPSec Notater
Hvis du bruker IPSec, standard avslutning for i Breezy/Dapper årsaker klienten til å henge så det er stengt ned på grunn IPSec går ned før NFS gjør., For å fikse det, gjør du:
sudo update-rc.d -f setkey removesudo update-rc.d setkey start 37 0 6 S .
En feil har blitt arkivert her: https://launchpad.net/distros/ubuntu/+source/ipsec-tools/+bug/37536
Feilsøking
Montere NFS-monteringer i kryptert hjem vil ikke fungere på boot
Montere NFS-share inne i en kryptert hjem katalogen vil bare fungere når du er logget inn og ditt hjem er dekryptert. Dette betyr at det å bruke /etc/fstab å montere NFS-monteringer på boot vil ikke fungere – fordi hjemmet ikke har vært dekryptert på tidspunktet for montering., Det er en enkel måte å omgå dette ved hjelp av Symbolske lenker:
- Opprette en alternativ katalog for å montere NFS-monteringer i:
$ sudo mkdir /nfs$ sudo mkdir /nfs/music
-
Rediger /etc/fstab å montere NFS dele inn i denne katalogen, i stedet:
nfsServer:musikk /nfs/musikk nfs auto 0 0
- Lage en symbolsk link inne i ditt hjem, som peker til den faktiske mount sted (i vårt tilfelle slette ‘Musikk’ katalog allerede eksisterende det første):
$ rmdir /home/user/Music$ ln -s /nfs/music/ /home/user/Music